⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 immap_83xx.h

📁 U-boot源码 ARM7启动代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * (C) Copyright 2004-2006 Freescale Semiconductor, Inc. * * MPC83xx Internal Memory Map * * Contributors: *	Dave Liu <daveliu@freescale.com> *	Tanya Jiang <tanya.jiang@freescale.com> *	Mandy Lavi <mandy.lavi@freescale.com> *	Eran Liberty <liberty@freescale.com> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * */#ifndef __IMMAP_83xx__#define __IMMAP_83xx__#include <asm/types.h>#include <asm/fsl_i2c.h>/* * Local Access Window */typedef struct law83xx {	u32 bar;		/* LBIU local access window base address register */	u32 ar;			/* LBIU local access window attribute register */} law83xx_t;/* * System configuration registers */typedef struct sysconf83xx {	u32 immrbar;		/* Internal memory map base address register */	u8 res0[0x04];	u32 altcbar;		/* Alternate configuration base address register */	u8 res1[0x14];	law83xx_t lblaw[4];	/* LBIU local access window */	u8 res2[0x20];	law83xx_t pcilaw[2];	/* PCI local access window */	u8 res3[0x30];	law83xx_t ddrlaw[2];	/* DDR local access window */	u8 res4[0x50];	u32 sgprl;		/* System General Purpose Register Low */	u32 sgprh;		/* System General Purpose Register High */	u32 spridr;		/* System Part and Revision ID Register */	u8 res5[0x04];	u32 spcr;		/* System Priority Configuration Register */	u32 sicrl;		/* System I/O Configuration Register Low */	u32 sicrh;		/* System I/O Configuration Register High */	u8 res6[0x0C];	u32 ddrcdr;		/* DDR Control Driver Register */	u32 ddrdsr;		/* DDR Debug Status Register */	u8 res7[0xD0];} sysconf83xx_t;/* * Watch Dog Timer (WDT) Registers */typedef struct wdt83xx {	u8 res0[4];	u32 swcrr;		/* System watchdog control register */	u32 swcnr;		/* System watchdog count register */	u8 res1[2];	u16 swsrr;		/* System watchdog service register */	u8 res2[0xF0];} wdt83xx_t;/* * RTC/PIT Module Registers */typedef struct rtclk83xx {	u32 cnr;		/* control register */	u32 ldr;		/* load register */	u32 psr;		/* prescale register */	u32 ctr;		/* counter value field register */	u32 evr;		/* event register */	u32 alr;		/* alarm register */	u8 res0[0xE8];} rtclk83xx_t;/* * Global timer module */typedef struct gtm83xx {	u8 cfr1;		/* Timer1/2 Configuration */	u8 res0[3];	u8 cfr2;		/* Timer3/4 Configuration */	u8 res1[10];	u16 mdr1;		/* Timer1 Mode Register */	u16 mdr2;		/* Timer2 Mode Register */	u16 rfr1;		/* Timer1 Reference Register */	u16 rfr2;		/* Timer2 Reference Register */	u16 cpr1;		/* Timer1 Capture Register */	u16 cpr2;		/* Timer2 Capture Register */	u16 cnr1;		/* Timer1 Counter Register */	u16 cnr2;		/* Timer2 Counter Register */	u16 mdr3;		/* Timer3 Mode Register */	u16 mdr4;		/* Timer4 Mode Register */	u16 rfr3;		/* Timer3 Reference Register */	u16 rfr4;		/* Timer4 Reference Register */	u16 cpr3;		/* Timer3 Capture Register */	u16 cpr4;		/* Timer4 Capture Register */	u16 cnr3;		/* Timer3 Counter Register */	u16 cnr4;		/* Timer4 Counter Register */	u16 evr1;		/* Timer1 Event Register */	u16 evr2;		/* Timer2 Event Register */	u16 evr3;		/* Timer3 Event Register */	u16 evr4;		/* Timer4 Event Register */	u16 psr1;		/* Timer1 Prescaler Register */	u16 psr2;		/* Timer2 Prescaler Register */	u16 psr3;		/* Timer3 Prescaler Register */	u16 psr4;		/* Timer4 Prescaler Register */	u8 res[0xC0];} gtm83xx_t;/* * Integrated Programmable Interrupt Controller */typedef struct ipic83xx {	u32 sicfr;		/* System Global Interrupt Configuration Register */	u32 sivcr;		/* System Global Interrupt Vector Register */	u32 sipnr_h;		/* System Internal Interrupt Pending Register - High */	u32 sipnr_l;		/* System Internal Interrupt Pending Register - Low */	u32 siprr_a;		/* System Internal Interrupt Group A Priority Register */	u8 res0[8];	u32 siprr_d;		/* System Internal Interrupt Group D Priority Register */	u32 simsr_h;		/* System Internal Interrupt Mask Register - High */	u32 simsr_l;		/* System Internal Interrupt Mask Register - Low */	u8 res1[4];	u32 sepnr;		/* System External Interrupt Pending Register */	u32 smprr_a;		/* System Mixed Interrupt Group A Priority Register */	u32 smprr_b;		/* System Mixed Interrupt Group B Priority Register */	u32 semsr;		/* System External Interrupt Mask Register */	u32 secnr;		/* System External Interrupt Control Register */	u32 sersr;		/* System Error Status Register */	u32 sermr;		/* System Error Mask Register */	u32 sercr;		/* System Error Control Register */	u8 res2[4];	u32 sifcr_h;		/* System Internal Interrupt Force Register - High */	u32 sifcr_l;		/* System Internal Interrupt Force Register - Low */	u32 sefcr;		/* System External Interrupt Force Register */	u32 serfr;		/* System Error Force Register */	u32 scvcr;		/* System Critical Interrupt Vector Register */	u32 smvcr;		/* System Management Interrupt Vector Register */	u8 res3[0x98];} ipic83xx_t;/* * System Arbiter Registers */typedef struct arbiter83xx {	u32 acr;		/* Arbiter Configuration Register */	u32 atr;		/* Arbiter Timers Register */	u8 res[4];	u32 aer;		/* Arbiter Event Register */	u32 aidr;		/* Arbiter Interrupt Definition Register */	u32 amr;		/* Arbiter Mask Register */	u32 aeatr;		/* Arbiter Event Attributes Register */	u32 aeadr;		/* Arbiter Event Address Register */	u32 aerr;		/* Arbiter Event Response Register */	u8 res1[0xDC];} arbiter83xx_t;/* * Reset Module */typedef struct reset83xx {	u32 rcwl;		/* Reset Configuration Word Low Register */	u32 rcwh;		/* Reset Configuration Word High Register */	u8 res0[8];	u32 rsr;		/* Reset Status Register */	u32 rmr;		/* Reset Mode Register */	u32 rpr;		/* Reset protection Register */	u32 rcr;		/* Reset Control Register */	u32 rcer;		/* Reset Control Enable Register */	u8 res1[0xDC];} reset83xx_t;/* * Clock Module */typedef struct clk83xx {	u32 spmr;		/* system PLL mode Register */	u32 occr;		/* output clock control Register */	u32 sccr;		/* system clock control Register */	u8 res0[0xF4];} clk83xx_t;/* * Power Management Control Module */typedef struct pmc83xx {	u32 pmccr;		/* PMC Configuration Register */	u32 pmcer;		/* PMC Event Register */	u32 pmcmr;		/* PMC Mask Register */	u32 pmccr1;		/* PMC Configuration Register 1 */	u32 pmccr2;		/* PMC Configuration Register 2 */	u8 res0[0xEC];} pmc83xx_t;/* * General purpose I/O module */typedef struct gpio83xx {	u32 dir;		/* direction register */	u32 odr;		/* open drain register */	u32 dat;		/* data register */	u32 ier;		/* interrupt event register */	u32 imr;		/* interrupt mask register */	u32 icr;		/* external interrupt control register */	u8 res0[0xE8];} gpio83xx_t;/* * QE Ports Interrupts Registers */typedef struct qepi83xx {	u8 res0[0xC];	u32 qepier;		/* QE Ports Interrupt Event Register */	u32 qepimr;		/* QE Ports Interrupt Mask Register */	u32 qepicr;		/* QE Ports Interrupt Control Register */	u8 res1[0xE8];} qepi83xx_t;/* * QE Parallel I/O Ports */typedef struct gpio_n {	u32 podr;		/* Open Drain Register */	u32 pdat;		/* Data Register */	u32 dir1;		/* direction register 1 */	u32 dir2;		/* direction register 2 */	u32 ppar1;		/* Pin Assignment Register 1 */	u32 ppar2;		/* Pin Assignment Register 2 */} gpio_n_t;typedef struct qegpio83xx {	gpio_n_t ioport[0x7];	u8 res0[0x358];} qepio83xx_t;/* * QE Secondary Bus Access Windows */typedef struct qesba83xx {	u32 lbmcsar;		/* Local bus memory controller start address */	u32 sdmcsar;		/* Secondary DDR memory controller start address */	u8 res0[0x38];	u32 lbmcear;		/* Local bus memory controller end address */	u32 sdmcear;		/* Secondary DDR memory controller end address */	u8 res1[0x38];	u32 lbmcar;		/* Local bus memory controller attributes */	u32 sdmcar;		/* Secondary DDR memory controller attributes */	u8 res2[0x378];} qesba83xx_t;/* * DDR Memory Controller Memory Map */typedef struct ddr_cs_bnds {	u32 csbnds;	u8 res0[4];} ddr_cs_bnds_t;typedef struct ddr83xx {	ddr_cs_bnds_t csbnds[4];/* Chip Select x Memory Bounds */	u8 res0[0x60];	u32 cs_config[4];	/* Chip Select x Configuration */	u8 res1[0x70];	u32 timing_cfg_3;	/* SDRAM Timing Configuration 3 */	u32 timing_cfg_0;	/* SDRAM Timing Configuration 0 */	u32 timing_cfg_1;	/* SDRAM Timing Configuration 1 */	u32 timing_cfg_2;	/* SDRAM Timing Configuration 2 */	u32 sdram_cfg;		/* SDRAM Control Configuration */	u32 sdram_cfg2;		/* SDRAM Control Configuration 2 */	u32 sdram_mode;		/* SDRAM Mode Configuration */	u32 sdram_mode2;	/* SDRAM Mode Configuration 2 */	u32 sdram_md_cntl;	/* SDRAM Mode Control */	u32 sdram_interval;	/* SDRAM Interval Configuration */	u32 ddr_data_init;	/* SDRAM Data Initialization */	u8 res2[4];	u32 sdram_clk_cntl;	/* SDRAM Clock Control */	u8 res3[0x14];	u32 ddr_init_addr;	/* DDR training initialization address */	u32 ddr_init_ext_addr;	/* DDR training initialization extended address */	u8 res4[0xAA8];	u32 ddr_ip_rev1;	/* DDR IP block revision 1 */	u32 ddr_ip_rev2;	/* DDR IP block revision 2 */	u8 res5[0x200];	u32 data_err_inject_hi;	/* Memory Data Path Error Injection Mask High */	u32 data_err_inject_lo;	/* Memory Data Path Error Injection Mask Low */	u32 ecc_err_inject;	/* Memory Data Path Error Injection Mask ECC */	u8 res6[0x14];	u32 capture_data_hi;	/* Memory Data Path Read Capture High */	u32 capture_data_lo;	/* Memory Data Path Read Capture Low */	u32 capture_ecc;	/* Memory Data Path Read Capture ECC */	u8 res7[0x14];	u32 err_detect;		/* Memory Error Detect */	u32 err_disable;	/* Memory Error Disable */	u32 err_int_en;		/* Memory Error Interrupt Enable */	u32 capture_attributes;	/* Memory Error Attributes Capture */	u32 capture_address;	/* Memory Error Address Capture */	u32 capture_ext_address;/* Memory Error Extended Address Capture */	u32 err_sbe;		/* Memory Single-Bit ECC Error Management */	u8 res8[0xA4];	u32 debug_reg;	u8 res9[0xFC];} ddr83xx_t;/* * DUART */typedef struct duart83xx {	u8 urbr_ulcr_udlb;	/* combined register for URBR, UTHR and UDLB */	u8 uier_udmb;		/* combined register for UIER and UDMB */	u8 uiir_ufcr_uafr;	/* combined register for UIIR, UFCR and UAFR */	u8 ulcr;		/* line control register */	u8 umcr;		/* MODEM control register */	u8 ulsr;		/* line status register */	u8 umsr;		/* MODEM status register */	u8 uscr;		/* scratch register */	u8 res0[8];	u8 udsr;		/* DMA status register */	u8 res1[3];	u8 res2[0xEC];} duart83xx_t;/* * Local Bus Controller Registers */typedef struct lbus_bank {	u32 br;			/* Base Register */	u32 or;			/* Option Register */} lbus_bank_t;typedef struct lbus83xx {	lbus_bank_t bank[8];	u8 res0[0x28];	u32 mar;		/* UPM Address Register */	u8 res1[0x4];	u32 mamr;		/* UPMA Mode Register */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -