📄 immap_83xx.h
字号:
u32 simsr_l; /* System Internal Interrupt Mask Register - Low (SIIL) */ u8 res1[4]; u32 sepnr; /* System External Interrupt Pending Register (SEI) */ u32 smprr_a; /* System Mixed Interrupt Group A Priority Register (PRR) */ u32 smprr_b; /* System Mixed Interrupt Group B Priority Register (PRR) */#define PRR_0 0xe0000000 /* Priority Register, Position 0 programming */#define PRR_1 0x1c000000 /* Priority Register, Position 1 programming */#define PRR_2 0x03800000 /* Priority Register, Position 2 programming */#define PRR_3 0x00700000 /* Priority Register, Position 3 programming */#define PRR_4 0x0000e000 /* Priority Register, Position 4 programming */#define PRR_5 0x00001c00 /* Priority Register, Position 5 programming */#define PRR_6 0x00000380 /* Priority Register, Position 6 programming */#define PRR_7 0x00000070 /* Priority Register, Position 7 programming */#define PRR_RES ~(PRR_0|PRR_1|PRR_2|PRR_3|PRR_4|PRR_5|PRR_6|PRR_7) u32 semsr; /* System External Interrupt Mask Register (SEI) */#define SEI_IRQ0 0x80000000 /* IRQ0 external interrupt */#define SEI_IRQ1 0x40000000 /* IRQ1 external interrupt */#define SEI_IRQ2 0x20000000 /* IRQ2 external interrupt */#define SEI_IRQ3 0x10000000 /* IRQ3 external interrupt */#define SEI_IRQ4 0x08000000 /* IRQ4 external interrupt */#define SEI_IRQ5 0x04000000 /* IRQ5 external interrupt */#define SEI_IRQ6 0x02000000 /* IRQ6 external interrupt */#define SEI_IRQ7 0x01000000 /* IRQ7 external interrupt */#define SEI_SIRQ0 0x00008000 /* SIRQ0 external interrupt */#define SEI_RES ~( SEI_IRQ0 | SEI_IRQ1 | SEI_IRQ2 | SEI_IRQ3 \ | SEI_IRQ4 | SEI_IRQ5 | SEI_IRQ6 | SEI_IRQ7 \ | SEI_SIRQ0) u32 secnr; /* System External Interrupt Control Register (SECNR) */#define SECNR_MIXB0T 0xc0000000 /* MIXB0 priority position IPIC output interrupt type */#define SECNR_MIXB1T 0x30000000 /* MIXB1 priority position IPIC output interrupt type */#define SECNR_MIXA0T 0x00c00000 /* MIXA0 priority position IPIC output interrupt type */#define SECNR_SYSA1T 0x00300000 /* MIXA1 priority position IPIC output interrupt type */#define SECNR_EDI0 0x00008000 /* IRQ0 external interrupt edge/level detect */#define SECNR_EDI1 0x00004000 /* IRQ1 external interrupt edge/level detect */#define SECNR_EDI2 0x00002000 /* IRQ2 external interrupt edge/level detect */#define SECNR_EDI3 0x00001000 /* IRQ3 external interrupt edge/level detect */#define SECNR_EDI4 0x00000800 /* IRQ4 external interrupt edge/level detect */#define SECNR_EDI5 0x00000400 /* IRQ5 external interrupt edge/level detect */#define SECNR_EDI6 0x00000200 /* IRQ6 external interrupt edge/level detect */#define SECNR_EDI7 0x00000100 /* IRQ7 external interrupt edge/level detect */#define SECNR_RES ~( SECNR_MIXB0T | SECNR_MIXB1T | SECNR_MIXA0T \ | SECNR_SYSA1T | SECNR_EDI0 | SECNR_EDI1 \ | SECNR_EDI2 | SECNR_EDI3 | SECNR_EDI4 \ | SECNR_EDI5 | SECNR_EDI6 | SECNR_EDI7) u32 sersr; /* System Error Status Register (SERR) */ u32 sermr; /* System Error Mask Register (SERR) */#define SERR_IRQ0 0x80000000 /* IRQ0 MCP request */#define SERR_WDT 0x40000000 /* WDT MCP request */#define SERR_SBA 0x20000000 /* SBA MCP request */#define SERR_DDR 0x10000000 /* DDR MCP request */#define SERR_LBC 0x08000000 /* LBC MCP request */#define SERR_PCI1 0x04000000 /* PCI1 MCP request */#define SERR_PCI2 0x02000000 /* PCI2 MCP request */#define SERR_MU 0x01000000 /* MU MCP request */#define SERR_RNC 0x00010000 /* MU MCP request (!!! Non-visible for users !!!) */#define SERR_RES ~( SERR_IRQ0 | SERR_WDT | SERR_SBA | SERR_DDR \ |SERR_LBC | SERR_PCI1 | SERR_PCI2 | SERR_MU \ |SERR_RNC ) u32 sercr; /* System Error Control Register (SERCR) */#define SERCR_MCPR 0x00000001 /* MCP Route */#define SERCR_RES ~(SERCR_MCPR) u8 res2[4]; u32 sifcr_h; /* System Internal Interrupt Force Register - High (SIIH) */ u32 sifcr_l; /* System Internal Interrupt Force Register - Low (SIIL) */ u32 sefcr; /* System External Interrupt Force Register (SEI) */ u32 serfr; /* System Error Force Register (SERR) */ u8 res3[0xA0];} ipic8349_t;/* * System Arbiter Registers */typedef struct arbiter8349 { u32 acr; /* Arbiter Configuration Register */#define ACR_COREDIS 0x10000000 /* Core disable. */#define ACR_PIPE_DEP 0x00070000 /* Pipeline depth (number of outstanding transactions). */#define ACR_PCI_RPTCNT 0x00007000 /* PCI repeat count. */#define ACR_RPTCNT 0x00000700 /* Repeat count. */#define ACR_APARK 0x00000030 /* Address parking. */#define ACR_PARKM 0x0000000F /* Parking master. */#define ACR_RES ~(ACR_COREDIS|ACR_PIPE_DEP|ACR_PCI_RPTCNT|ACR_RPTCNT|ACR_APARK|ACR_PARKM) u32 atr; /* Arbiter Timers Register */#define ATR_DTO 0x00FF0000 /* Data time out. */#define ATR_ATO 0x000000FF /* Address time out. */#define ATR_RES ~(ATR_DTO|ATR_ATO) u8 res[4]; u32 aer; /* Arbiter Event Register (AE)*/ u32 aidr; /* Arbiter Interrupt Definition Register (AE) */ u32 amr; /* Arbiter Mask Register (AE) */ u32 aeatr; /* Arbiter Event Attributes Register */#define AEATR_EVENT 0x07000000 /* Event type. */#define AEATR_MSTR_ID 0x001F0000 /* Master Id. */#define AEATR_TBST 0x00000800 /* Transfer burst. */#define AEATR_TSIZE 0x00000700 /* Transfer Size. */#define AEATR_TTYPE 0x0000001F /* Transfer Type. */#define AEATR_RES ~(AEATR_EVENT|AEATR_MSTR_ID|AEATR_TBST|AEATR_TSIZE|AEATR_TTYPE) u32 aeadr; /* Arbiter Event Address Register */ u32 aerr; /* Arbiter Event Response Register (AE)*/#define AE_ETEA 0x00000020 /* Transfer error. */#define AE_RES_ 0x00000010 /* Reserved transfer type. */#define AE_ECW 0x00000008 /* External control word transfer type. */#define AE_AO 0x00000004 /* Address Only transfer type. */#define AE_DTO 0x00000002 /* Data time out. */#define AE_ATO 0x00000001 /* Address time out. */#define AE_RSRV ~(AE_ETEA|AE_RES_|AE_ECW|AE_AO|AE_DTO|AE_ATO) u8 res1[0xDC];} arbiter8349_t;/* * Reset Module */typedef struct reset8349 { u32 rcwl; /* RCWL Register */#define RCWL_LBIUCM 0x80000000 /* LBIUCM */#define RCWL_LBIUCM_SHIFT 31#define RCWL_DDRCM 0x40000000 /* DDRCM */#define RCWL_DDRCM_SHIFT 30#define RCWL_SVCOD 0x30000000 /* SVCOD */#define RCWL_SPMF 0x0f000000 /* SPMF */#define RCWL_SPMF_SHIFT 24#define RCWL_COREPLL 0x007F0000 /* COREPLL */#define RCWL_COREPLL_SHIFT 16#define RCWL_CEVCOD 0x000000C0 /* CEVCOD */#define RCWL_CEPDF 0x00000020 /* CEPDF */#define RCWL_CEPMF 0x0000001F /* CEPMF */#define RCWL_RES ~(RCWL_BIUCM|RCWL_DDRCM|RCWL_SVCOD|RCWL_SPMF|RCWL_COREPLL|RCWL_CEVCOD|RCWL_CEPDF|RCWL_CEPMF) u32 rcwh; /* RCHL Register */#define RCWH_PCIHOST 0x80000000 /* PCIHOST */#define RCWH_PCIHOST_SHIFT 31#define RCWH_PCI64 0x40000000 /* PCI64 */#define RCWH_PCI1ARB 0x20000000 /* PCI1ARB */#define RCWH_PCI2ARB 0x10000000 /* PCI2ARB */#define RCWH_COREDIS 0x08000000 /* COREDIS */#define RCWH_BMS 0x04000000 /* BMS */#define RCWH_BOOTSEQ 0x03000000 /* BOOTSEQ */#define RCWH_SWEN 0x00800000 /* SWEN */#define RCWH_ROMLOC 0x00700000 /* ROMLOC */#define RCWH_TSEC1M 0x0000c000 /* TSEC1M */#define RCWH_TSEC2M 0x00003000 /* TSEC2M */#define RCWH_TPR 0x00000100 /* TPR */#define RCWH_TLE 0x00000008 /* TLE */#define RCWH_LALE 0x00000004 /* LALE */#define RCWH_RES ~(RCWH_PCIHOST | RCWH_PCI64 | RCWH_PCI1ARB \ | RCWH_PCI2ARB | RCWH_COREDIS | RCWH_BMS \ | RCWH_BOOTSEQ | RCWH_SWEN | RCWH_ROMLOC \ | RCWH_TSEC1M | RCWH_TSEC2M | RCWH_TPR \ | RCWH_TLE | RCWH_LALE) u8 res0[8]; u32 rsr; /* Reset status Register */#define RSR_RSTSRC 0xE0000000 /* Reset source */#define RSR_RSTSRC_SHIFT 29#define RSR_BSF 0x00010000 /* Boot seq. fail */#define RSR_BSF_SHIFT 16#define RSR_SWSR 0x00002000 /* software soft reset */#define RSR_SWSR_SHIFT 13#define RSR_SWHR 0x00001000 /* software hard reset */#define RSR_SWHR_SHIFT 12#define RSR_JHRS 0x00000200 /* jtag hreset */#define RSR_JHRS_SHIFT 9#define RSR_JSRS 0x00000100 /* jtag sreset status */#define RSR_JSRS_SHIFT 8#define RSR_CSHR 0x00000010 /* checkstop reset status */#define RSR_CSHR_SHIFT 4#define RSR_SWRS 0x00000008 /* software watchdog reset status */#define RSR_SWRS_SHIFT 3#define RSR_BMRS 0x00000004 /* bus monitop reset status */#define RSR_BMRS_SHIFT 2#define RSR_SRS 0x00000002 /* soft reset status */#define RSR_SRS_SHIFT 1#define RSR_HRS 0x00000001 /* hard reset status */#define RSR_HRS_SHIFT 0#define RSR_RES ~(RSR_RSTSRC | RSR_BSF | RSR_SWSR | RSR_SWHR | RSR_JHRS | RSR_JSRS | RSR_CSHR | RSR_SWRS | RSR_BMRS | RSR_SRS | RSR_HRS) u32 rmr; /* Reset mode Register */#define RMR_CSRE 0x00000001 /* checkstop reset enable */#define RMR_CSRE_SHIFT 0#define RMR_RES ~(RMR_CSRE) u32 rpr; /* Reset protection Register */ u32 rcr; /* Reset Control Register */#define RCR_SWHR 0x00000002 /* software hard reset */#define RCR_SWSR 0x00000001 /* software soft reset */#define RCR_RES ~(RCR_SWHR | RCR_SWSR) u32 rcer; /* Reset Control Enable Register */#define RCER_CRE 0x00000001 /* software hard reset */#define RCER_RES ~(RCER_CRE) u8 res1[0xDC];} reset8349_t;typedef struct clk8349 { u32 spmr; /* system PLL mode Register */#define SPMR_LBIUCM 0x80000000 /* LBIUCM */#define SPMR_DDRCM 0x40000000 /* DDRCM */#define SPMR_SVCOD 0x30000000 /* SVCOD */#define SPMR_SPMF 0x0F000000 /* SPMF */#define SPMR_CKID 0x00800000 /* CKID */#define SPMR_CKID_SHIFT 23#define SPMR_COREPLL 0x007F0000 /* COREPLL */#define SPMR_CEVCOD 0x000000C0 /* CEVCOD */#define SPMR_CEPDF 0x00000020 /* CEPDF */#define SPMR_CEPMF 0x0000001F /* CEPMF */#define SPMR_RES ~(SPMR_LBIUCM | SPMR_DDRCM | SPMR_SVCOD \ | SPMR_SPMF | SPMR_CKID | SPMR_COREPLL \ | SPMR_CEVCOD | SPMR_CEPDF | SPMR_CEPMF) u32 occr; /* output clock control Register */#define OCCR_PCICOE0 0x80000000 /* PCICOE0 */#define OCCR_PCICOE1 0x40000000 /* PCICOE1 */#define OCCR_PCICOE2 0x20000000 /* PCICOE2 */#define OCCR_PCICOE3 0x10000000 /* PCICOE3 */#define OCCR_PCICOE4 0x08000000 /* PCICOE4 */#define OCCR_PCICOE5 0x04000000 /* PCICOE5 */#define OCCR_PCICOE6 0x02000000 /* PCICOE6 */#define OCCR_PCICOE7 0x01000000 /* PCICOE7 */#define OCCR_PCICD0 0x00800000 /* PCICD0 */#define OCCR_PCICD1 0x00400000 /* PCICD1 */#define OCCR_PCICD2 0x00200000 /* PCICD2 */#define OCCR_PCICD3 0x00100000 /* PCICD3 */#define OCCR_PCICD4 0x00080000 /* PCICD4 */#define OCCR_PCICD5 0x00040000 /* PCICD5 */#define OCCR_PCICD6 0x00020000 /* PCICD6 */#define OCCR_PCICD7 0x00010000 /* PCICD7 */#define OCCR_PCI1CR 0x00000002 /* PCI1CR */#define OCCR_PCI2CR 0x00000001 /* PCI2CR */#define OCCR_RES ~(OCCR_PCICOE0 | OCCR_PCICOE1 | OCCR_PCICOE2 \ | OCCR_PCICOE3 | OCCR_PCICOE4 | OCCR_PCICOE5 \ | OCCR_PCICOE6 | OCCR_PCICOE7 | OCCR_PCICD0 \ | OCCR_PCICD1 | OCCR_PCICD2 | OCCR_PCICD3 \ | OCCR_PCICD4 | OCCR_PCICD5 | OCCR_PCICD6 \ | OCCR_PCICD7 | OCCR_PCI1CR | OCCR_PCI2CR ) u32 sccr; /* system clock control Register */#define SCCR_TSEC1CM 0xc0000000 /* TSEC1CM */#define SCCR_TSEC1CM_SHIFT 30#define SCCR_TSEC2CM 0x30000000 /* TSEC2CM */#define SCCR_TSEC2CM_SHIFT 28#define SCCR_ENCCM 0x03000000 /* ENCCM */#define SCCR_ENCCM_SHIFT 24#define SCCR_USBMPHCM 0x00c00000 /* USBMPHCM */#define SCCR_USBMPHCM_SHIFT 22#define SCCR_USBDRCM 0x00300000 /* USBDRCM */#define SCCR_USBDRCM_SHIFT 20#define SCCR_PCICM 0x00010000 /* PCICM */#define SCCR_RES ~( SCCR_TSEC1CM | SCCR_TSEC2CM | SCCR_ENCCM \ | SCCR_USBMPHCM | SCCR_USBDRCM | SCCR_PCICM) u8 res0[0xF4];} clk8349_t;/* * Power Management Control Module */typedef struct pmc8349 { u32 pmccr; /* PMC Configuration Register */#define PMCCR_SLPEN 0x00000001 /* System Low Power Enable */#define PMCCR_DLPEN 0x00000002 /* DDR SDRAM Low Power Enable */#define PMCCR_RES ~(PMCCR_SLPEN | PMCCR_DLPEN) u32 pmcer; /* PMC Event Register */#define PMCER_PMCI 0x00000001 /* PMC Interrupt */#define PMCER_RES ~(PMCER_PMCI) u32 pmcmr; /* PMC Mask Register */#define PMCMR_PMCIE 0x0001 /* PMC Interrupt Enable */#define PMCMR_RES ~(PMCMR_PMCIE) u8 res0[0xF4];} pmc8349_t;/* * general purpose I/O module */typedef struct gpio8349 { 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];} gpio8349_t;/* * DDR Memory Controller Memory Map */typedef struct ddr_cs_bnds{ u32 csbnds;#define CSBNDS_SA 0x00FF0000#define CSBNDS_SA_SHIFT 8#define CSBNDS_EA 0x000000FF#define CSBNDS_EA_SHIFT 24 u8 res0[4];} ddr_cs_bnds_t;typedef struct ddr8349{ ddr_cs_bnds_t csbnds[4]; /**< Chip Select x Memory Bounds */ u8 res0[0x60]; u32 cs_config[4]; /**< Chip Select x Configuration */#define CSCONFIG_EN 0x80000000#define CSCONFIG_AP 0x00800000#define CSCONFIG_ROW_BIT 0x00000700#define CSCONFIG_ROW_BIT_12 0x00000000#define CSCONFIG_ROW_BIT_13 0x00000100#define CSCONFIG_ROW_BIT_14 0x00000200
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -