1 /* 2 * MCF547x_8x Internal Memory Map 3 * 4 * Copyright (C) 2004-2007 Freescale Semiconductor, Inc. 5 * TsiChung Liew (Tsi-Chung.Liew@freescale.com) 6 * 7 * SPDX-License-Identifier: GPL-2.0+ 8 */ 9 10 #ifndef __IMMAP_547x_8x__ 11 #define __IMMAP_547x_8x__ 12 13 #define MMAP_SIU (CONFIG_SYS_MBAR + 0x00000000) 14 #define MMAP_SDRAM (CONFIG_SYS_MBAR + 0x00000100) 15 #define MMAP_XARB (CONFIG_SYS_MBAR + 0x00000240) 16 #define MMAP_FBCS (CONFIG_SYS_MBAR + 0x00000500) 17 #define MMAP_INTC0 (CONFIG_SYS_MBAR + 0x00000700) 18 #define MMAP_GPTMR (CONFIG_SYS_MBAR + 0x00000800) 19 #define MMAP_SLT0 (CONFIG_SYS_MBAR + 0x00000900) 20 #define MMAP_SLT1 (CONFIG_SYS_MBAR + 0x00000910) 21 #define MMAP_GPIO (CONFIG_SYS_MBAR + 0x00000A00) 22 #define MMAP_PCI (CONFIG_SYS_MBAR + 0x00000B00) 23 #define MMAP_PCIARB (CONFIG_SYS_MBAR + 0x00000C00) 24 #define MMAP_EXTDMA (CONFIG_SYS_MBAR + 0x00000D00) 25 #define MMAP_EPORT (CONFIG_SYS_MBAR + 0x00000F00) 26 #define MMAP_CTM (CONFIG_SYS_MBAR + 0x00007F00) 27 #define MMAP_MCDMA (CONFIG_SYS_MBAR + 0x00008000) 28 #define MMAP_SCPCI (CONFIG_SYS_MBAR + 0x00008400) 29 #define MMAP_UART0 (CONFIG_SYS_MBAR + 0x00008600) 30 #define MMAP_UART1 (CONFIG_SYS_MBAR + 0x00008700) 31 #define MMAP_UART2 (CONFIG_SYS_MBAR + 0x00008800) 32 #define MMAP_UART3 (CONFIG_SYS_MBAR + 0x00008900) 33 #define MMAP_DSPI (CONFIG_SYS_MBAR + 0x00008A00) 34 #define MMAP_I2C (CONFIG_SYS_MBAR + 0x00008F00) 35 #define MMAP_FEC0 (CONFIG_SYS_MBAR + 0x00009000) 36 #define MMAP_FEC1 (CONFIG_SYS_MBAR + 0x00009800) 37 #define MMAP_CAN0 (CONFIG_SYS_MBAR + 0x0000A000) 38 #define MMAP_CAN1 (CONFIG_SYS_MBAR + 0x0000A800) 39 #define MMAP_USBD (CONFIG_SYS_MBAR + 0x0000B000) 40 #define MMAP_SRAM (CONFIG_SYS_MBAR + 0x00010000) 41 #define MMAP_SRAMCFG (CONFIG_SYS_MBAR + 0x0001FF00) 42 #define MMAP_SEC (CONFIG_SYS_MBAR + 0x00020000) 43 44 #include <asm/coldfire/dspi.h> 45 #include <asm/coldfire/eport.h> 46 #include <asm/coldfire/flexbus.h> 47 #include <asm/coldfire/flexcan.h> 48 #include <asm/coldfire/intctrl.h> 49 50 typedef struct siu { 51 u32 mbar; /* 0x00 */ 52 u32 drv; /* 0x04 */ 53 u32 rsvd1[2]; /* 0x08 - 0x1F */ 54 u32 sbcr; /* 0x10 */ 55 u32 rsvd2[3]; /* 0x14 - 0x1F */ 56 u32 cs0cfg; /* 0x20 */ 57 u32 cs1cfg; /* 0x24 */ 58 u32 cs2cfg; /* 0x28 */ 59 u32 cs3cfg; /* 0x2C */ 60 u32 rsvd3[2]; /* 0x30 - 0x37 */ 61 u32 secsacr; /* 0x38 */ 62 u32 rsvd4[2]; /* 0x3C - 0x43 */ 63 u32 rsr; /* 0x44 */ 64 u32 rsvd5[2]; /* 0x48 - 0x4F */ 65 u32 jtagid; /* 0x50 */ 66 } siu_t; 67 68 typedef struct sdram { 69 u32 mode; /* 0x00 */ 70 u32 ctrl; /* 0x04 */ 71 u32 cfg1; /* 0x08 */ 72 u32 cfg2; /* 0x0c */ 73 } sdram_t; 74 75 typedef struct xlb_arb { 76 u32 cfg; /* 0x240 */ 77 u32 ver; /* 0x244 */ 78 u32 sr; /* 0x248 */ 79 u32 imr; /* 0x24c */ 80 u32 adrcap; /* 0x250 */ 81 u32 sigcap; /* 0x254 */ 82 u32 adrto; /* 0x258 */ 83 u32 datto; /* 0x25c */ 84 u32 busto; /* 0x260 */ 85 u32 prien; /* 0x264 */ 86 u32 pri; /* 0x268 */ 87 } xlbarb_t; 88 89 typedef struct gptmr { 90 u8 ocpw; 91 u8 octict; 92 u8 ctrl; 93 u8 mode; 94 95 u16 pre; /* Prescale */ 96 u16 cnt; 97 98 u16 pwmwidth; 99 u8 pwmop; /* Output Polarity */ 100 u8 pwmld; /* Immediate Update */ 101 102 u16 cap; /* Capture internal counter */ 103 u8 ovfpin; /* Ovf and Pin */ 104 u8 intr; /* Interrupts */ 105 } gptmr_t; 106 107 typedef struct canex_ctrl { 108 can_msg_t msg[16]; /* 0x00 Message Buffer 0-15 */ 109 } canex_t; 110 111 112 typedef struct slt { 113 u32 tcnt; /* 0x00 */ 114 u32 cr; /* 0x04 */ 115 u32 cnt; /* 0x08 */ 116 u32 sr; /* 0x0C */ 117 } slt_t; 118 119 typedef struct gpio { 120 /* Port Output Data Registers */ 121 u8 podr_fbctl; /*0x00 */ 122 u8 podr_fbcs; /*0x01 */ 123 u8 podr_dma; /*0x02 */ 124 u8 rsvd1; /*0x03 */ 125 u8 podr_fec0h; /*0x04 */ 126 u8 podr_fec0l; /*0x05 */ 127 u8 podr_fec1h; /*0x06 */ 128 u8 podr_fec1l; /*0x07 */ 129 u8 podr_feci2c; /*0x08 */ 130 u8 podr_pcibg; /*0x09 */ 131 u8 podr_pcibr; /*0x0A */ 132 u8 rsvd2; /*0x0B */ 133 u8 podr_psc3psc2; /*0x0C */ 134 u8 podr_psc1psc0; /*0x0D */ 135 u8 podr_dspi; /*0x0E */ 136 u8 rsvd3; /*0x0F */ 137 138 /* Port Data Direction Registers */ 139 u8 pddr_fbctl; /*0x10 */ 140 u8 pddr_fbcs; /*0x11 */ 141 u8 pddr_dma; /*0x12 */ 142 u8 rsvd4; /*0x13 */ 143 u8 pddr_fec0h; /*0x14 */ 144 u8 pddr_fec0l; /*0x15 */ 145 u8 pddr_fec1h; /*0x16 */ 146 u8 pddr_fec1l; /*0x17 */ 147 u8 pddr_feci2c; /*0x18 */ 148 u8 pddr_pcibg; /*0x19 */ 149 u8 pddr_pcibr; /*0x1A */ 150 u8 rsvd5; /*0x1B */ 151 u8 pddr_psc3psc2; /*0x1C */ 152 u8 pddr_psc1psc0; /*0x1D */ 153 u8 pddr_dspi; /*0x1E */ 154 u8 rsvd6; /*0x1F */ 155 156 /* Port Pin Data/Set Data Registers */ 157 u8 ppdsdr_fbctl; /*0x20 */ 158 u8 ppdsdr_fbcs; /*0x21 */ 159 u8 ppdsdr_dma; /*0x22 */ 160 u8 rsvd7; /*0x23 */ 161 u8 ppdsdr_fec0h; /*0x24 */ 162 u8 ppdsdr_fec0l; /*0x25 */ 163 u8 ppdsdr_fec1h; /*0x26 */ 164 u8 ppdsdr_fec1l; /*0x27 */ 165 u8 ppdsdr_feci2c; /*0x28 */ 166 u8 ppdsdr_pcibg; /*0x29 */ 167 u8 ppdsdr_pcibr; /*0x2A */ 168 u8 rsvd8; /*0x2B */ 169 u8 ppdsdr_psc3psc2; /*0x2C */ 170 u8 ppdsdr_psc1psc0; /*0x2D */ 171 u8 ppdsdr_dspi; /*0x2E */ 172 u8 rsvd9; /*0x2F */ 173 174 /* Port Clear Output Data Registers */ 175 u8 pclrr_fbctl; /*0x30 */ 176 u8 pclrr_fbcs; /*0x31 */ 177 u8 pclrr_dma; /*0x32 */ 178 u8 rsvd10; /*0x33 */ 179 u8 pclrr_fec0h; /*0x34 */ 180 u8 pclrr_fec0l; /*0x35 */ 181 u8 pclrr_fec1h; /*0x36 */ 182 u8 pclrr_fec1l; /*0x37 */ 183 u8 pclrr_feci2c; /*0x38 */ 184 u8 pclrr_pcibg; /*0x39 */ 185 u8 pclrr_pcibr; /*0x3A */ 186 u8 rsvd11; /*0x3B */ 187 u8 pclrr_psc3psc2; /*0x3C */ 188 u8 pclrr_psc1psc0; /*0x3D */ 189 u8 pclrr_dspi; /*0x3E */ 190 u8 rsvd12; /*0x3F */ 191 192 /* Pin Assignment Registers */ 193 u16 par_fbctl; /*0x40 */ 194 u8 par_fbcs; /*0x42 */ 195 u8 par_dma; /*0x43 */ 196 u16 par_feci2cirq; /*0x44 */ 197 u16 rsvd13; /*0x46 */ 198 u16 par_pcibg; /*0x48 */ 199 u16 par_pcibr; /*0x4A */ 200 u8 par_psc3; /*0x4C */ 201 u8 par_psc2; /*0x4D */ 202 u8 par_psc1; /*0x4E */ 203 u8 par_psc0; /*0x4F */ 204 u16 par_dspi; /*0x50 */ 205 u8 par_timer; /*0x52 */ 206 u8 rsvd14; /*0x53 */ 207 } gpio_t; 208 209 typedef struct pci { 210 u32 idr; /* 0x00 Device Id / Vendor Id */ 211 u32 scr; /* 0x04 Status / command */ 212 u32 ccrir; /* 0x08 Class Code / Revision Id */ 213 u32 cr1; /* 0x0c Configuration 1 */ 214 u32 bar0; /* 0x10 Base address register 0 */ 215 u32 bar1; /* 0x14 Base address register 1 */ 216 u32 bar2; /* 0x18 NA */ 217 u32 bar3; /* 0x1c NA */ 218 u32 bar4; /* 0x20 NA */ 219 u32 bar5; /* 0x24 NA */ 220 u32 ccpr; /* 0x28 Cardbus CIS Pointer */ 221 u32 sid; /* 0x2c Subsystem ID / Subsystem Vendor ID */ 222 u32 erbar; /* 0x30 Expansion ROM Base Address */ 223 u32 cpr; /* 0x34 Capabilities Pointer */ 224 u32 rsvd1; /* 0x38 */ 225 u32 cr2; /* 0x3c Configuration 2 */ 226 u32 rsvd2[8]; /* 0x40 - 0x5f */ 227 228 /* General control / status registers */ 229 u32 gscr; /* 0x60 Global Status / Control */ 230 u32 tbatr0a; /* 0x64 Target Base Adr Translation 0 */ 231 u32 tbatr1a; /* 0x68 Target Base Adr Translation 1 */ 232 u32 tcr1; /* 0x6c Target Control 1 Register */ 233 u32 iw0btar; /* 0x70 Initiator Win 0 Base/Translation adr */ 234 u32 iw1btar; /* 0x74 Initiator Win 1 Base/Translation adr */ 235 u32 iw2btar; /* 0x78 NA */ 236 u32 rsvd3; /* 0x7c */ 237 u32 iwcr; /* 0x80 Initiator Window Configuration */ 238 u32 icr; /* 0x84 Initiator Control */ 239 u32 isr; /* 0x88 Initiator Status */ 240 u32 tcr2; /* 0x8c NA */ 241 u32 tbatr0; /* 0x90 NA */ 242 u32 tbatr1; /* 0x94 NA */ 243 u32 tbatr2; /* 0x98 NA */ 244 u32 tbatr3; /* 0x9c NA */ 245 u32 tbatr4; /* 0xa0 NA */ 246 u32 tbatr5; /* 0xa4 NA */ 247 u32 intr; /* 0xa8 NA */ 248 u32 rsvd4[19]; /* 0xac - 0xf7 */ 249 u32 car; /* 0xf8 Configuration Address */ 250 } pci_t; 251 252 typedef struct pci_arbiter { 253 /* Pci Arbiter Registers */ 254 union { 255 u32 acr; /* Arbiter Control */ 256 u32 asr; /* Arbiter Status */ 257 }; 258 } pciarb_t; 259 #endif /* __IMMAP_547x_8x__ */ 260