📄 immap_83xx.h
字号:
u32 dmadar1; /* 0x198 DMA 1 destination address register */ u32 res11; /* 0x19C reserved */ u32 dmabcr1; /* 0x1A0 DMA 1 byte count register */ u32 dmandar1; /* 0x1A4 DMA 1 next descriptor address register */ u32 res12[0x16];/* 0x1A8-0x199 reserved */ u32 dmamr2; /* 0x200 DMA 2 mode register */ u32 dmasr2; /* 0x204 DMA 2 status register */ u32 dmacdar2; /* 0x208 DMA 2 current descriptor address register */ u32 res13; /* 0x20C reserved */ u32 dmasar2; /* 0x210 DMA 2 source address register */ u32 res14; /* 0x214 reserved */ u32 dmadar2; /* 0x218 DMA 2 destination address register */ u32 res15; /* 0x21C reserved */ u32 dmabcr2; /* 0x220 DMA 2 byte count register */ u32 dmandar2; /* 0x224 DMA 2 next descriptor address register */ u32 res16[0x16];/* 0x228-0x279 reserved */ u32 dmamr3; /* 0x280 DMA 3 mode register */ u32 dmasr3; /* 0x284 DMA 3 status register */ u32 dmacdar3; /* 0x288 DMA 3 current descriptor address register */ u32 res17; /* 0x28C reserved */ u32 dmasar3; /* 0x290 DMA 3 source address register */ u32 res18; /* 0x294 reserved */ u32 dmadar3; /* 0x298 DMA 3 destination address register */ u32 res19; /* 0x29C reserved */ u32 dmabcr3; /* 0x2A0 DMA 3 byte count register */ u32 dmandar3; /* 0x2A4 DMA 3 next descriptor address register */ u32 dmagsr; /* 0x2A8 DMA general status register */ u32 res20[0x15];/* 0x2AC-0x2FF reserved */} dma8349_t;/* DMAMRn bits */#define DMA_CHANNEL_START (0x00000001) /* Bit - DMAMRn CS */#define DMA_CHANNEL_TRANSFER_MODE_DIRECT (0x00000004) /* Bit - DMAMRn CTM */#define DMA_CHANNEL_SOURCE_ADRESSS_HOLD_EN (0x00001000) /* Bit - DMAMRn SAHE */#define DMA_CHANNEL_SOURCE_ADDRESS_HOLD_1B (0x00000000) /* 2Bit- DMAMRn SAHTS 1byte */#define DMA_CHANNEL_SOURCE_ADDRESS_HOLD_2B (0x00004000) /* 2Bit- DMAMRn SAHTS 2bytes */#define DMA_CHANNEL_SOURCE_ADDRESS_HOLD_4B (0x00008000) /* 2Bit- DMAMRn SAHTS 4bytes */#define DMA_CHANNEL_SOURCE_ADDRESS_HOLD_8B (0x0000c000) /* 2Bit- DMAMRn SAHTS 8bytes */#define DMA_CHANNEL_SNOOP (0x00010000) /* Bit - DMAMRn DMSEN *//* DMASRn bits */#define DMA_CHANNEL_BUSY (0x00000004) /* Bit - DMASRn CB */#define DMA_CHANNEL_TRANSFER_ERROR (0x00000080) /* Bit - DMASRn TE *//* * PCI Software Configuration Registers */typedef struct pciconf8349 { u32 config_address;#define PCI_CONFIG_ADDRESS_EN 0x80000000#define PCI_CONFIG_ADDRESS_BN_SHIFT 16#define PCI_CONFIG_ADDRESS_BN_MASK 0x00ff0000#define PCI_CONFIG_ADDRESS_DN_SHIFT 11#define PCI_CONFIG_ADDRESS_DN_MASK 0x0000f800#define PCI_CONFIG_ADDRESS_FN_SHIFT 8#define PCI_CONFIG_ADDRESS_FN_MASK 0x00000700#define PCI_CONFIG_ADDRESS_RN_SHIFT 0#define PCI_CONFIG_ADDRESS_RN_MASK 0x000000fc u32 config_data; u32 int_ack; u8 res[116];} pciconf8349_t;/* * PCI Outbound Translation Register */typedef struct pci_outbound_window { u32 potar; u8 res0[4]; u32 pobar; u8 res1[4]; u32 pocmr; u8 res2[4];} pot8349_t;/* * Sequencer */typedef struct ios8349 { pot8349_t pot[6];#define POTAR_TA_MASK 0x000fffff#define POBAR_BA_MASK 0x000fffff#define POCMR_EN 0x80000000#define POCMR_IO 0x40000000 /* 0--memory space 1--I/O space */#define POCMR_SE 0x20000000 /* streaming enable */#define POCMR_DST 0x10000000 /* 0--PCI1 1--PCI2*/#define POCMR_CM_MASK 0x000fffff#define POCMR_CM_4G 0x00000000#define POCMR_CM_2G 0x00080000#define POCMR_CM_1G 0x000C0000#define POCMR_CM_512M 0x000E0000#define POCMR_CM_256M 0x000F0000#define POCMR_CM_128M 0x000F8000#define POCMR_CM_64M 0x000FC000#define POCMR_CM_32M 0x000FE000#define POCMR_CM_16M 0x000FF000#define POCMR_CM_8M 0x000FF800#define POCMR_CM_4M 0x000FFC00#define POCMR_CM_2M 0x000FFE00#define POCMR_CM_1M 0x000FFF00#define POCMR_CM_512K 0x000FFF80#define POCMR_CM_256K 0x000FFFC0#define POCMR_CM_128K 0x000FFFE0#define POCMR_CM_64K 0x000FFFF0#define POCMR_CM_32K 0x000FFFF8#define POCMR_CM_16K 0x000FFFFC#define POCMR_CM_8K 0x000FFFFE#define POCMR_CM_4K 0x000FFFFF u8 res0[0x60]; u32 pmcr; u8 res1[4]; u32 dtcr; u8 res2[4];} ios8349_t;/* * PCI Controller Control and Status Registers */typedef struct pcictrl8349 { u32 esr;#define ESR_MERR 0x80000000#define ESR_APAR 0x00000400#define ESR_PCISERR 0x00000200#define ESR_MPERR 0x00000100#define ESR_TPERR 0x00000080#define ESR_NORSP 0x00000040#define ESR_TABT 0x00000020 u32 ecdr;#define ECDR_APAR 0x00000400#define ECDR_PCISERR 0x00000200#define ECDR_MPERR 0x00000100#define ECDR_TPERR 0x00000080#define ECDR_NORSP 0x00000040#define ECDR_TABT 0x00000020 u32 eer;#define EER_APAR 0x00000400#define EER_PCISERR 0x00000200#define EER_MPERR 0x00000100#define EER_TPERR 0x00000080#define EER_NORSP 0x00000040#define EER_TABT 0x00000020 u32 eatcr;#define EATCR_ERRTYPR_MASK 0x70000000#define EATCR_ERRTYPR_APR 0x00000000 /* address parity error */#define EATCR_ERRTYPR_WDPR 0x10000000 /* write data parity error */#define EATCR_ERRTYPR_RDPR 0x20000000 /* read data parity error */#define EATCR_ERRTYPR_MA 0x30000000 /* master abort */#define EATCR_ERRTYPR_TA 0x40000000 /* target abort */#define EATCR_ERRTYPR_SE 0x50000000 /* system error indication received */#define EATCR_ERRTYPR_PEA 0x60000000 /* parity error indication received on a read */#define EATCR_ERRTYPR_PEW 0x70000000 /* parity error indication received on a write */#define EATCR_BN_MASK 0x0f000000 /* beat number */#define EATCR_BN_1st 0x00000000#define EATCR_BN_2ed 0x01000000#define EATCR_BN_3rd 0x02000000#define EATCR_BN_4th 0x03000000#define EATCR_BN_5th 0x0400000#define EATCR_BN_6th 0x05000000#define EATCR_BN_7th 0x06000000#define EATCR_BN_8th 0x07000000#define EATCR_BN_9th 0x08000000#define EATCR_TS_MASK 0x00300000 /* transaction size */#define EATCR_TS_4 0x00000000#define EATCR_TS_1 0x00100000#define EATCR_TS_2 0x00200000#define EATCR_TS_3 0x00300000#define EATCR_ES_MASK 0x000f0000 /* error source */#define EATCR_ES_EM 0x00000000 /* external master */#define EATCR_ES_DMA 0x00050000#define EATCR_CMD_MASK 0x0000f000#define EATCR_HBE_MASK 0x00000f00 /* PCI high byte enable*/#define EATCR_BE_MASK 0x000000f0 /* PCI byte enable */#define EATCR_HPB 0x00000004 /* high parity bit */#define EATCR_PB 0x00000002 /* parity bit*/#define EATCR_VI 0x00000001 /* error information valid */ u32 eacr; u32 eeacr; u32 edlcr; u32 edhcr; u32 gcr; u32 ecr; u32 gsr; u8 res0[12]; u32 pitar2; u8 res1[4]; u32 pibar2; u32 piebar2; u32 piwar2; u8 res2[4]; u32 pitar1; u8 res3[4]; u32 pibar1; u32 piebar1; u32 piwar1; u8 res4[4]; u32 pitar0; u8 res5[4]; u32 pibar0; u8 res6[4]; u32 piwar0; u8 res7[132];#define PITAR_TA_MASK 0x000fffff#define PIBAR_MASK 0xffffffff#define PIEBAR_EBA_MASK 0x000fffff#define PIWAR_EN 0x80000000#define PIWAR_PF 0x20000000#define PIWAR_RTT_MASK 0x000f0000#define PIWAR_RTT_NO_SNOOP 0x00040000#define PIWAR_RTT_SNOOP 0x00050000#define PIWAR_WTT_MASK 0x0000f000#define PIWAR_WTT_NO_SNOOP 0x00004000#define PIWAR_WTT_SNOOP 0x00005000#define PIWAR_IWS_MASK 0x0000003F#define PIWAR_IWS_4K 0x0000000B#define PIWAR_IWS_8K 0x0000000C#define PIWAR_IWS_16K 0x0000000D#define PIWAR_IWS_32K 0x0000000E#define PIWAR_IWS_64K 0x0000000F#define PIWAR_IWS_128K 0x00000010#define PIWAR_IWS_256K 0x00000011#define PIWAR_IWS_512K 0x00000012#define PIWAR_IWS_1M 0x00000013#define PIWAR_IWS_2M 0x00000014#define PIWAR_IWS_4M 0x00000015#define PIWAR_IWS_8M 0x00000016#define PIWAR_IWS_16M 0x00000017#define PIWAR_IWS_32M 0x00000018#define PIWAR_IWS_64M 0x00000019#define PIWAR_IWS_128M 0x0000001A#define PIWAR_IWS_256M 0x0000001B#define PIWAR_IWS_512M 0x0000001C#define PIWAR_IWS_1G 0x0000001D#define PIWAR_IWS_2G 0x0000001E} pcictrl8349_t;/* * USB */typedef struct usb8349 { u8 fixme[0x2000];} usb8349_t;/* * TSEC */typedef struct tsec8349 { u8 fixme[0x1000];} tsec8349_t;/* * Security */typedef struct security8349 { u8 fixme[0x10000];} security8349_t;typedef struct immap { sysconf8349_t sysconf; /* System configuration */ wdt8349_t wdt; /* Watch Dog Timer (WDT) Registers */ rtclk8349_t rtc; /* Real Time Clock Module Registers */ rtclk8349_t pit; /* Periodic Interval Timer */ gtm8349_t gtm[2]; /* Global Timers Module */ ipic8349_t ipic; /* Integrated Programmable Interrupt Controller */ arbiter8349_t arbiter; /* System Arbiter Registers */ reset8349_t reset; /* Reset Module */ clk8349_t clk; /* System Clock Module */ pmc8349_t pmc; /* Power Management Control Module */ gpio8349_t pgio[2]; /* general purpose I/O module */ u8 res0[0x200]; u8 DDL_DDR[0x100]; u8 DDL_LBIU[0x100]; u8 res1[0xE00]; ddr8349_t ddr; /* DDR Memory Controller Memory */ i2c_t i2c[2]; /* I2C1 Controller */ u8 res2[0x1300]; duart8349_t duart[2];/* DUART */ u8 res3[0x900]; lbus8349_t lbus; /* Local Bus Controller Registers */ u8 res4[0x1000]; spi8349_t spi; /* Serial Peripheral Interface */ u8 res5[0xF00]; dma8349_t dma; /* DMA */ pciconf8349_t pci_conf[2]; /* PCI Software Configuration Registers */ ios8349_t ios; /* Sequencer */ pcictrl8349_t pci_ctrl[2]; /* PCI Controller Control and Status Registers */ u8 res6[0x19900]; usb8349_t usb; tsec8349_t tsec[2]; u8 res7[0xA000]; security8349_t security;} immap_t;#endif /* __IMMAP_8349__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -