1a47a12beSStefan Roese /* 2d29d17d7SYork Sun * Copyright 2004-2011 Freescale Semiconductor, Inc. 3a47a12beSStefan Roese * 4a47a12beSStefan Roese * MPC83xx Internal Memory Map 5a47a12beSStefan Roese * 6a47a12beSStefan Roese * Contributors: 7a47a12beSStefan Roese * Dave Liu <daveliu@freescale.com> 8a47a12beSStefan Roese * Tanya Jiang <tanya.jiang@freescale.com> 9a47a12beSStefan Roese * Mandy Lavi <mandy.lavi@freescale.com> 10a47a12beSStefan Roese * Eran Liberty <liberty@freescale.com> 11a47a12beSStefan Roese * 121a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 13a47a12beSStefan Roese */ 14a47a12beSStefan Roese #ifndef __IMMAP_83xx__ 15a47a12beSStefan Roese #define __IMMAP_83xx__ 16a47a12beSStefan Roese 17a47a12beSStefan Roese #include <asm/types.h> 18a47a12beSStefan Roese #include <asm/fsl_i2c.h> 19a47a12beSStefan Roese #include <asm/mpc8xxx_spi.h> 20a47a12beSStefan Roese #include <asm/fsl_lbc.h> 21a47a12beSStefan Roese #include <asm/fsl_dma.h> 22a47a12beSStefan Roese 23a47a12beSStefan Roese /* 24a47a12beSStefan Roese * Local Access Window 25a47a12beSStefan Roese */ 26a47a12beSStefan Roese typedef struct law83xx { 27a47a12beSStefan Roese u32 bar; /* LBIU local access window base address register */ 28a47a12beSStefan Roese u32 ar; /* LBIU local access window attribute register */ 29a47a12beSStefan Roese } law83xx_t; 30a47a12beSStefan Roese 31a47a12beSStefan Roese /* 32a47a12beSStefan Roese * System configuration registers 33a47a12beSStefan Roese */ 34a47a12beSStefan Roese typedef struct sysconf83xx { 35a47a12beSStefan Roese u32 immrbar; /* Internal memory map base address register */ 36a47a12beSStefan Roese u8 res0[0x04]; 37a47a12beSStefan Roese u32 altcbar; /* Alternate configuration base address register */ 38a47a12beSStefan Roese u8 res1[0x14]; 39a47a12beSStefan Roese law83xx_t lblaw[4]; /* LBIU local access window */ 40a47a12beSStefan Roese u8 res2[0x20]; 41a47a12beSStefan Roese law83xx_t pcilaw[2]; /* PCI local access window */ 42a47a12beSStefan Roese u8 res3[0x10]; 43a47a12beSStefan Roese law83xx_t pcielaw[2]; /* PCI Express local access window */ 44a47a12beSStefan Roese u8 res4[0x10]; 45a47a12beSStefan Roese law83xx_t ddrlaw[2]; /* DDR local access window */ 46a47a12beSStefan Roese u8 res5[0x50]; 47a47a12beSStefan Roese u32 sgprl; /* System General Purpose Register Low */ 48a47a12beSStefan Roese u32 sgprh; /* System General Purpose Register High */ 49a47a12beSStefan Roese u32 spridr; /* System Part and Revision ID Register */ 50a47a12beSStefan Roese u8 res6[0x04]; 51a47a12beSStefan Roese u32 spcr; /* System Priority Configuration Register */ 52a47a12beSStefan Roese u32 sicrl; /* System I/O Configuration Register Low */ 53a47a12beSStefan Roese u32 sicrh; /* System I/O Configuration Register High */ 54a47a12beSStefan Roese u8 res7[0x04]; 55a47a12beSStefan Roese u32 sidcr0; /* System I/O Delay Configuration Register 0 */ 56a47a12beSStefan Roese u32 sidcr1; /* System I/O Delay Configuration Register 1 */ 57a47a12beSStefan Roese u32 ddrcdr; /* DDR Control Driver Register */ 58a47a12beSStefan Roese u32 ddrdsr; /* DDR Debug Status Register */ 59a47a12beSStefan Roese u32 obir; /* Output Buffer Impedance Register */ 60a47a12beSStefan Roese u8 res8[0xC]; 61a47a12beSStefan Roese u32 pecr1; /* PCI Express control register 1 */ 628afad91fSGerlando Falauto #if defined(CONFIG_MPC830x) 638afad91fSGerlando Falauto u32 sdhccr; /* eSDHC Control Registers for MPC830x */ 647c619ddcSIlya Yanok #else 65a47a12beSStefan Roese u32 pecr2; /* PCI Express control register 2 */ 667c619ddcSIlya Yanok #endif 67a88731a6SGerlando Falauto #if defined(CONFIG_MPC8309) 68a88731a6SGerlando Falauto u32 can_dbg_ctrl; 69a88731a6SGerlando Falauto u32 res9a; 70a88731a6SGerlando Falauto u32 gpr1; 71a88731a6SGerlando Falauto u8 res9b[0xAC]; 72a88731a6SGerlando Falauto #else 73a47a12beSStefan Roese u8 res9[0xB8]; 74a88731a6SGerlando Falauto #endif 75a47a12beSStefan Roese } sysconf83xx_t; 76a47a12beSStefan Roese 77a47a12beSStefan Roese /* 78a47a12beSStefan Roese * Watch Dog Timer (WDT) Registers 79a47a12beSStefan Roese */ 80a47a12beSStefan Roese typedef struct wdt83xx { 81a47a12beSStefan Roese u8 res0[4]; 82a47a12beSStefan Roese u32 swcrr; /* System watchdog control register */ 83a47a12beSStefan Roese u32 swcnr; /* System watchdog count register */ 84a47a12beSStefan Roese u8 res1[2]; 85a47a12beSStefan Roese u16 swsrr; /* System watchdog service register */ 86a47a12beSStefan Roese u8 res2[0xF0]; 87a47a12beSStefan Roese } wdt83xx_t; 88a47a12beSStefan Roese 89a47a12beSStefan Roese /* 90a47a12beSStefan Roese * RTC/PIT Module Registers 91a47a12beSStefan Roese */ 92a47a12beSStefan Roese typedef struct rtclk83xx { 93a47a12beSStefan Roese u32 cnr; /* control register */ 94a47a12beSStefan Roese u32 ldr; /* load register */ 95a47a12beSStefan Roese u32 psr; /* prescale register */ 96a47a12beSStefan Roese u32 ctr; /* counter value field register */ 97a47a12beSStefan Roese u32 evr; /* event register */ 98a47a12beSStefan Roese u32 alr; /* alarm register */ 99a47a12beSStefan Roese u8 res0[0xE8]; 100a47a12beSStefan Roese } rtclk83xx_t; 101a47a12beSStefan Roese 102a47a12beSStefan Roese /* 103a47a12beSStefan Roese * Global timer module 104a47a12beSStefan Roese */ 105a47a12beSStefan Roese typedef struct gtm83xx { 106a47a12beSStefan Roese u8 cfr1; /* Timer1/2 Configuration */ 107a47a12beSStefan Roese u8 res0[3]; 108a47a12beSStefan Roese u8 cfr2; /* Timer3/4 Configuration */ 10963063cc7SKim Phillips u8 res1[11]; 110a47a12beSStefan Roese u16 mdr1; /* Timer1 Mode Register */ 111a47a12beSStefan Roese u16 mdr2; /* Timer2 Mode Register */ 112a47a12beSStefan Roese u16 rfr1; /* Timer1 Reference Register */ 113a47a12beSStefan Roese u16 rfr2; /* Timer2 Reference Register */ 114a47a12beSStefan Roese u16 cpr1; /* Timer1 Capture Register */ 115a47a12beSStefan Roese u16 cpr2; /* Timer2 Capture Register */ 116a47a12beSStefan Roese u16 cnr1; /* Timer1 Counter Register */ 117a47a12beSStefan Roese u16 cnr2; /* Timer2 Counter Register */ 118a47a12beSStefan Roese u16 mdr3; /* Timer3 Mode Register */ 119a47a12beSStefan Roese u16 mdr4; /* Timer4 Mode Register */ 120a47a12beSStefan Roese u16 rfr3; /* Timer3 Reference Register */ 121a47a12beSStefan Roese u16 rfr4; /* Timer4 Reference Register */ 122a47a12beSStefan Roese u16 cpr3; /* Timer3 Capture Register */ 123a47a12beSStefan Roese u16 cpr4; /* Timer4 Capture Register */ 124a47a12beSStefan Roese u16 cnr3; /* Timer3 Counter Register */ 125a47a12beSStefan Roese u16 cnr4; /* Timer4 Counter Register */ 126a47a12beSStefan Roese u16 evr1; /* Timer1 Event Register */ 127a47a12beSStefan Roese u16 evr2; /* Timer2 Event Register */ 128a47a12beSStefan Roese u16 evr3; /* Timer3 Event Register */ 129a47a12beSStefan Roese u16 evr4; /* Timer4 Event Register */ 130a47a12beSStefan Roese u16 psr1; /* Timer1 Prescaler Register */ 131a47a12beSStefan Roese u16 psr2; /* Timer2 Prescaler Register */ 132a47a12beSStefan Roese u16 psr3; /* Timer3 Prescaler Register */ 133a47a12beSStefan Roese u16 psr4; /* Timer4 Prescaler Register */ 134a47a12beSStefan Roese u8 res[0xC0]; 135a47a12beSStefan Roese } gtm83xx_t; 136a47a12beSStefan Roese 137a47a12beSStefan Roese /* 138a47a12beSStefan Roese * Integrated Programmable Interrupt Controller 139a47a12beSStefan Roese */ 140a47a12beSStefan Roese typedef struct ipic83xx { 141a47a12beSStefan Roese u32 sicfr; /* System Global Interrupt Configuration Register */ 142a47a12beSStefan Roese u32 sivcr; /* System Global Interrupt Vector Register */ 143a47a12beSStefan Roese u32 sipnr_h; /* System Internal Interrupt Pending Register - High */ 144a47a12beSStefan Roese u32 sipnr_l; /* System Internal Interrupt Pending Register - Low */ 145a47a12beSStefan Roese u32 siprr_a; /* System Internal Interrupt Group A Priority Register */ 1464713db66SJoe Hershberger u32 siprr_b; /* System Internal Interrupt Group B Priority Register */ 1474713db66SJoe Hershberger u32 siprr_c; /* System Internal Interrupt Group C Priority Register */ 148a47a12beSStefan Roese u32 siprr_d; /* System Internal Interrupt Group D Priority Register */ 149a47a12beSStefan Roese u32 simsr_h; /* System Internal Interrupt Mask Register - High */ 150a47a12beSStefan Roese u32 simsr_l; /* System Internal Interrupt Mask Register - Low */ 1514713db66SJoe Hershberger u32 sicnr; /* System Internal Interrupt Control Register */ 152a47a12beSStefan Roese u32 sepnr; /* System External Interrupt Pending Register */ 153a47a12beSStefan Roese u32 smprr_a; /* System Mixed Interrupt Group A Priority Register */ 154a47a12beSStefan Roese u32 smprr_b; /* System Mixed Interrupt Group B Priority Register */ 155a47a12beSStefan Roese u32 semsr; /* System External Interrupt Mask Register */ 156a47a12beSStefan Roese u32 secnr; /* System External Interrupt Control Register */ 157a47a12beSStefan Roese u32 sersr; /* System Error Status Register */ 158a47a12beSStefan Roese u32 sermr; /* System Error Mask Register */ 159a47a12beSStefan Roese u32 sercr; /* System Error Control Register */ 1604713db66SJoe Hershberger u32 sepcr; /* System External Interrupt Polarity Control Register */ 161a47a12beSStefan Roese u32 sifcr_h; /* System Internal Interrupt Force Register - High */ 162a47a12beSStefan Roese u32 sifcr_l; /* System Internal Interrupt Force Register - Low */ 163a47a12beSStefan Roese u32 sefcr; /* System External Interrupt Force Register */ 164a47a12beSStefan Roese u32 serfr; /* System Error Force Register */ 165a47a12beSStefan Roese u32 scvcr; /* System Critical Interrupt Vector Register */ 166a47a12beSStefan Roese u32 smvcr; /* System Management Interrupt Vector Register */ 1674713db66SJoe Hershberger u8 res[0x98]; 168a47a12beSStefan Roese } ipic83xx_t; 169a47a12beSStefan Roese 170a47a12beSStefan Roese /* 171a47a12beSStefan Roese * System Arbiter Registers 172a47a12beSStefan Roese */ 173a47a12beSStefan Roese typedef struct arbiter83xx { 174a47a12beSStefan Roese u32 acr; /* Arbiter Configuration Register */ 175a47a12beSStefan Roese u32 atr; /* Arbiter Timers Register */ 176a47a12beSStefan Roese u8 res[4]; 177a47a12beSStefan Roese u32 aer; /* Arbiter Event Register */ 178a47a12beSStefan Roese u32 aidr; /* Arbiter Interrupt Definition Register */ 179a47a12beSStefan Roese u32 amr; /* Arbiter Mask Register */ 180a47a12beSStefan Roese u32 aeatr; /* Arbiter Event Attributes Register */ 181a47a12beSStefan Roese u32 aeadr; /* Arbiter Event Address Register */ 182a47a12beSStefan Roese u32 aerr; /* Arbiter Event Response Register */ 183a47a12beSStefan Roese u8 res1[0xDC]; 184a47a12beSStefan Roese } arbiter83xx_t; 185a47a12beSStefan Roese 186a47a12beSStefan Roese /* 187a47a12beSStefan Roese * Reset Module 188a47a12beSStefan Roese */ 189a47a12beSStefan Roese typedef struct reset83xx { 190a47a12beSStefan Roese u32 rcwl; /* Reset Configuration Word Low Register */ 191a47a12beSStefan Roese u32 rcwh; /* Reset Configuration Word High Register */ 192a47a12beSStefan Roese u8 res0[8]; 193a47a12beSStefan Roese u32 rsr; /* Reset Status Register */ 194a47a12beSStefan Roese u32 rmr; /* Reset Mode Register */ 195a47a12beSStefan Roese u32 rpr; /* Reset protection Register */ 196a47a12beSStefan Roese u32 rcr; /* Reset Control Register */ 197a47a12beSStefan Roese u32 rcer; /* Reset Control Enable Register */ 198a47a12beSStefan Roese u8 res1[0xDC]; 199a47a12beSStefan Roese } reset83xx_t; 200a47a12beSStefan Roese 201a47a12beSStefan Roese /* 202a47a12beSStefan Roese * Clock Module 203a47a12beSStefan Roese */ 204a47a12beSStefan Roese typedef struct clk83xx { 205a47a12beSStefan Roese u32 spmr; /* system PLL mode Register */ 206a47a12beSStefan Roese u32 occr; /* output clock control Register */ 207a47a12beSStefan Roese u32 sccr; /* system clock control Register */ 208a47a12beSStefan Roese u8 res0[0xF4]; 209a47a12beSStefan Roese } clk83xx_t; 210a47a12beSStefan Roese 211a47a12beSStefan Roese /* 212a47a12beSStefan Roese * Power Management Control Module 213a47a12beSStefan Roese */ 214a47a12beSStefan Roese typedef struct pmc83xx { 215a47a12beSStefan Roese u32 pmccr; /* PMC Configuration Register */ 216a47a12beSStefan Roese u32 pmcer; /* PMC Event Register */ 217a47a12beSStefan Roese u32 pmcmr; /* PMC Mask Register */ 218a47a12beSStefan Roese u32 pmccr1; /* PMC Configuration Register 1 */ 219a47a12beSStefan Roese u32 pmccr2; /* PMC Configuration Register 2 */ 220a47a12beSStefan Roese u8 res0[0xEC]; 221a47a12beSStefan Roese } pmc83xx_t; 222a47a12beSStefan Roese 223a47a12beSStefan Roese /* 224a47a12beSStefan Roese * General purpose I/O module 225a47a12beSStefan Roese */ 226a47a12beSStefan Roese typedef struct gpio83xx { 227a47a12beSStefan Roese u32 dir; /* direction register */ 228a47a12beSStefan Roese u32 odr; /* open drain register */ 229a47a12beSStefan Roese u32 dat; /* data register */ 230a47a12beSStefan Roese u32 ier; /* interrupt event register */ 231a47a12beSStefan Roese u32 imr; /* interrupt mask register */ 232a47a12beSStefan Roese u32 icr; /* external interrupt control register */ 233a47a12beSStefan Roese u8 res0[0xE8]; 234a47a12beSStefan Roese } gpio83xx_t; 235a47a12beSStefan Roese 236a47a12beSStefan Roese /* 237a47a12beSStefan Roese * QE Ports Interrupts Registers 238a47a12beSStefan Roese */ 239a47a12beSStefan Roese typedef struct qepi83xx { 240a47a12beSStefan Roese u8 res0[0xC]; 241a47a12beSStefan Roese u32 qepier; /* QE Ports Interrupt Event Register */ 242a47a12beSStefan Roese u32 qepimr; /* QE Ports Interrupt Mask Register */ 243a47a12beSStefan Roese u32 qepicr; /* QE Ports Interrupt Control Register */ 244a47a12beSStefan Roese u8 res1[0xE8]; 245a47a12beSStefan Roese } qepi83xx_t; 246a47a12beSStefan Roese 247a47a12beSStefan Roese /* 248a47a12beSStefan Roese * QE Parallel I/O Ports 249a47a12beSStefan Roese */ 250a47a12beSStefan Roese typedef struct gpio_n { 251a47a12beSStefan Roese u32 podr; /* Open Drain Register */ 252a47a12beSStefan Roese u32 pdat; /* Data Register */ 253a47a12beSStefan Roese u32 dir1; /* direction register 1 */ 254a47a12beSStefan Roese u32 dir2; /* direction register 2 */ 255a47a12beSStefan Roese u32 ppar1; /* Pin Assignment Register 1 */ 256a47a12beSStefan Roese u32 ppar2; /* Pin Assignment Register 2 */ 257a47a12beSStefan Roese } gpio_n_t; 258a47a12beSStefan Roese 259a47a12beSStefan Roese typedef struct qegpio83xx { 260a47a12beSStefan Roese gpio_n_t ioport[0x7]; 261a47a12beSStefan Roese u8 res0[0x358]; 262a47a12beSStefan Roese } qepio83xx_t; 263a47a12beSStefan Roese 264a47a12beSStefan Roese /* 265a47a12beSStefan Roese * QE Secondary Bus Access Windows 266a47a12beSStefan Roese */ 267a47a12beSStefan Roese typedef struct qesba83xx { 268a47a12beSStefan Roese u32 lbmcsar; /* Local bus memory controller start address */ 269a47a12beSStefan Roese u32 sdmcsar; /* Secondary DDR memory controller start address */ 270a47a12beSStefan Roese u8 res0[0x38]; 271a47a12beSStefan Roese u32 lbmcear; /* Local bus memory controller end address */ 272a47a12beSStefan Roese u32 sdmcear; /* Secondary DDR memory controller end address */ 273a47a12beSStefan Roese u8 res1[0x38]; 274a47a12beSStefan Roese u32 lbmcar; /* Local bus memory controller attributes */ 275a47a12beSStefan Roese u32 sdmcar; /* Secondary DDR memory controller attributes */ 276a47a12beSStefan Roese u8 res2[0x378]; 277a47a12beSStefan Roese } qesba83xx_t; 278a47a12beSStefan Roese 279a47a12beSStefan Roese /* 280a47a12beSStefan Roese * DDR Memory Controller Memory Map 281a47a12beSStefan Roese */ 282d29d17d7SYork Sun #if defined(CONFIG_FSL_DDR2) || defined(CONFIG_FSL_DDR3) 283d29d17d7SYork Sun typedef struct ccsr_ddr { 284d29d17d7SYork Sun u32 cs0_bnds; /* Chip Select 0 Memory Bounds */ 285d29d17d7SYork Sun u8 res1[4]; 286d29d17d7SYork Sun u32 cs1_bnds; /* Chip Select 1 Memory Bounds */ 287d29d17d7SYork Sun u8 res2[4]; 288d29d17d7SYork Sun u32 cs2_bnds; /* Chip Select 2 Memory Bounds */ 289d29d17d7SYork Sun u8 res3[4]; 290d29d17d7SYork Sun u32 cs3_bnds; /* Chip Select 3 Memory Bounds */ 291d29d17d7SYork Sun u8 res4[100]; 292d29d17d7SYork Sun u32 cs0_config; /* Chip Select Configuration */ 293d29d17d7SYork Sun u32 cs1_config; /* Chip Select Configuration */ 294d29d17d7SYork Sun u32 cs2_config; /* Chip Select Configuration */ 295d29d17d7SYork Sun u32 cs3_config; /* Chip Select Configuration */ 296d29d17d7SYork Sun u8 res4a[48]; 297d29d17d7SYork Sun u32 cs0_config_2; /* Chip Select Configuration 2 */ 298d29d17d7SYork Sun u32 cs1_config_2; /* Chip Select Configuration 2 */ 299d29d17d7SYork Sun u32 cs2_config_2; /* Chip Select Configuration 2 */ 300d29d17d7SYork Sun u32 cs3_config_2; /* Chip Select Configuration 2 */ 301d29d17d7SYork Sun u8 res5[48]; 302d29d17d7SYork Sun u32 timing_cfg_3; /* SDRAM Timing Configuration 3 */ 303d29d17d7SYork Sun u32 timing_cfg_0; /* SDRAM Timing Configuration 0 */ 304d29d17d7SYork Sun u32 timing_cfg_1; /* SDRAM Timing Configuration 1 */ 305d29d17d7SYork Sun u32 timing_cfg_2; /* SDRAM Timing Configuration 2 */ 306d29d17d7SYork Sun u32 sdram_cfg; /* SDRAM Control Configuration */ 307d29d17d7SYork Sun u32 sdram_cfg_2; /* SDRAM Control Configuration 2 */ 308d29d17d7SYork Sun u32 sdram_mode; /* SDRAM Mode Configuration */ 309d29d17d7SYork Sun u32 sdram_mode_2; /* SDRAM Mode Configuration 2 */ 310d29d17d7SYork Sun u32 sdram_md_cntl; /* SDRAM Mode Control */ 311d29d17d7SYork Sun u32 sdram_interval; /* SDRAM Interval Configuration */ 312d29d17d7SYork Sun u32 sdram_data_init; /* SDRAM Data initialization */ 313d29d17d7SYork Sun u8 res6[4]; 314d29d17d7SYork Sun u32 sdram_clk_cntl; /* SDRAM Clock Control */ 315d29d17d7SYork Sun u8 res7[20]; 316d29d17d7SYork Sun u32 init_addr; /* training init addr */ 317d29d17d7SYork Sun u32 init_ext_addr; /* training init extended addr */ 318d29d17d7SYork Sun u8 res8_1[16]; 319d29d17d7SYork Sun u32 timing_cfg_4; /* SDRAM Timing Configuration 4 */ 320d29d17d7SYork Sun u32 timing_cfg_5; /* SDRAM Timing Configuration 5 */ 321d29d17d7SYork Sun u8 reg8_1a[8]; 322d29d17d7SYork Sun u32 ddr_zq_cntl; /* ZQ calibration control*/ 323d29d17d7SYork Sun u32 ddr_wrlvl_cntl; /* write leveling control*/ 324d29d17d7SYork Sun u8 reg8_1aa[4]; 325d29d17d7SYork Sun u32 ddr_sr_cntr; /* self refresh counter */ 326d29d17d7SYork Sun u32 ddr_sdram_rcw_1; /* Control Words 1 */ 327d29d17d7SYork Sun u32 ddr_sdram_rcw_2; /* Control Words 2 */ 328d29d17d7SYork Sun u8 reg_1ab[8]; 329d29d17d7SYork Sun u32 ddr_wrlvl_cntl_2; /* write leveling control 2 */ 330d29d17d7SYork Sun u32 ddr_wrlvl_cntl_3; /* write leveling control 3 */ 331d29d17d7SYork Sun u8 res8_1b[104]; 332d29d17d7SYork Sun u32 sdram_mode_3; /* SDRAM Mode Configuration 3 */ 333d29d17d7SYork Sun u32 sdram_mode_4; /* SDRAM Mode Configuration 4 */ 334d29d17d7SYork Sun u32 sdram_mode_5; /* SDRAM Mode Configuration 5 */ 335d29d17d7SYork Sun u32 sdram_mode_6; /* SDRAM Mode Configuration 6 */ 336d29d17d7SYork Sun u32 sdram_mode_7; /* SDRAM Mode Configuration 7 */ 337d29d17d7SYork Sun u32 sdram_mode_8; /* SDRAM Mode Configuration 8 */ 338d29d17d7SYork Sun u8 res8_1ba[0x908]; 339d29d17d7SYork Sun u32 ddr_dsr1; /* Debug Status 1 */ 340d29d17d7SYork Sun u32 ddr_dsr2; /* Debug Status 2 */ 341d29d17d7SYork Sun u32 ddr_cdr1; /* Control Driver 1 */ 342d29d17d7SYork Sun u32 ddr_cdr2; /* Control Driver 2 */ 343d29d17d7SYork Sun u8 res8_1c[200]; 344d29d17d7SYork Sun u32 ip_rev1; /* IP Block Revision 1 */ 345d29d17d7SYork Sun u32 ip_rev2; /* IP Block Revision 2 */ 346d29d17d7SYork Sun u32 eor; /* Enhanced Optimization Register */ 347d29d17d7SYork Sun u8 res8_2[252]; 348d29d17d7SYork Sun u32 mtcr; /* Memory Test Control Register */ 349d29d17d7SYork Sun u8 res8_3[28]; 350d29d17d7SYork Sun u32 mtp1; /* Memory Test Pattern 1 */ 351d29d17d7SYork Sun u32 mtp2; /* Memory Test Pattern 2 */ 352d29d17d7SYork Sun u32 mtp3; /* Memory Test Pattern 3 */ 353d29d17d7SYork Sun u32 mtp4; /* Memory Test Pattern 4 */ 354d29d17d7SYork Sun u32 mtp5; /* Memory Test Pattern 5 */ 355d29d17d7SYork Sun u32 mtp6; /* Memory Test Pattern 6 */ 356d29d17d7SYork Sun u32 mtp7; /* Memory Test Pattern 7 */ 357d29d17d7SYork Sun u32 mtp8; /* Memory Test Pattern 8 */ 358d29d17d7SYork Sun u32 mtp9; /* Memory Test Pattern 9 */ 359d29d17d7SYork Sun u32 mtp10; /* Memory Test Pattern 10 */ 360d29d17d7SYork Sun u8 res8_4[184]; 361d29d17d7SYork Sun u32 data_err_inject_hi; /* Data Path Err Injection Mask High */ 362d29d17d7SYork Sun u32 data_err_inject_lo; /* Data Path Err Injection Mask Low */ 363d29d17d7SYork Sun u32 ecc_err_inject; /* Data Path Err Injection Mask ECC */ 364d29d17d7SYork Sun u8 res9[20]; 365d29d17d7SYork Sun u32 capture_data_hi; /* Data Path Read Capture High */ 366d29d17d7SYork Sun u32 capture_data_lo; /* Data Path Read Capture Low */ 367d29d17d7SYork Sun u32 capture_ecc; /* Data Path Read Capture ECC */ 368d29d17d7SYork Sun u8 res10[20]; 369d29d17d7SYork Sun u32 err_detect; /* Error Detect */ 370d29d17d7SYork Sun u32 err_disable; /* Error Disable */ 371d29d17d7SYork Sun u32 err_int_en; 372d29d17d7SYork Sun u32 capture_attributes; /* Error Attrs Capture */ 373d29d17d7SYork Sun u32 capture_address; /* Error Addr Capture */ 374d29d17d7SYork Sun u32 capture_ext_address; /* Error Extended Addr Capture */ 375d29d17d7SYork Sun u32 err_sbe; /* Single-Bit ECC Error Management */ 376d29d17d7SYork Sun u8 res11[164]; 377d29d17d7SYork Sun u32 debug[32]; /* debug_1 to debug_32 */ 378d29d17d7SYork Sun u8 res12[128]; 379d29d17d7SYork Sun } ccsr_ddr_t; 380d29d17d7SYork Sun #else 381a47a12beSStefan Roese typedef struct ddr_cs_bnds { 382a47a12beSStefan Roese u32 csbnds; 383a47a12beSStefan Roese u8 res0[4]; 384a47a12beSStefan Roese } ddr_cs_bnds_t; 385a47a12beSStefan Roese 386a47a12beSStefan Roese typedef struct ddr83xx { 387a47a12beSStefan Roese ddr_cs_bnds_t csbnds[4];/* Chip Select x Memory Bounds */ 388a47a12beSStefan Roese u8 res0[0x60]; 389a47a12beSStefan Roese u32 cs_config[4]; /* Chip Select x Configuration */ 390a47a12beSStefan Roese u8 res1[0x70]; 391a47a12beSStefan Roese u32 timing_cfg_3; /* SDRAM Timing Configuration 3 */ 392a47a12beSStefan Roese u32 timing_cfg_0; /* SDRAM Timing Configuration 0 */ 393a47a12beSStefan Roese u32 timing_cfg_1; /* SDRAM Timing Configuration 1 */ 394a47a12beSStefan Roese u32 timing_cfg_2; /* SDRAM Timing Configuration 2 */ 395a47a12beSStefan Roese u32 sdram_cfg; /* SDRAM Control Configuration */ 396a47a12beSStefan Roese u32 sdram_cfg2; /* SDRAM Control Configuration 2 */ 397a47a12beSStefan Roese u32 sdram_mode; /* SDRAM Mode Configuration */ 398a47a12beSStefan Roese u32 sdram_mode2; /* SDRAM Mode Configuration 2 */ 399a47a12beSStefan Roese u32 sdram_md_cntl; /* SDRAM Mode Control */ 400a47a12beSStefan Roese u32 sdram_interval; /* SDRAM Interval Configuration */ 401a47a12beSStefan Roese u32 ddr_data_init; /* SDRAM Data Initialization */ 402a47a12beSStefan Roese u8 res2[4]; 403a47a12beSStefan Roese u32 sdram_clk_cntl; /* SDRAM Clock Control */ 404a47a12beSStefan Roese u8 res3[0x14]; 405a47a12beSStefan Roese u32 ddr_init_addr; /* DDR training initialization address */ 406a47a12beSStefan Roese u32 ddr_init_ext_addr; /* DDR training initialization extended address */ 407a47a12beSStefan Roese u8 res4[0xAA8]; 408a47a12beSStefan Roese u32 ddr_ip_rev1; /* DDR IP block revision 1 */ 409a47a12beSStefan Roese u32 ddr_ip_rev2; /* DDR IP block revision 2 */ 410a47a12beSStefan Roese u8 res5[0x200]; 411a47a12beSStefan Roese u32 data_err_inject_hi; /* Memory Data Path Error Injection Mask High */ 412a47a12beSStefan Roese u32 data_err_inject_lo; /* Memory Data Path Error Injection Mask Low */ 413a47a12beSStefan Roese u32 ecc_err_inject; /* Memory Data Path Error Injection Mask ECC */ 414a47a12beSStefan Roese u8 res6[0x14]; 415a47a12beSStefan Roese u32 capture_data_hi; /* Memory Data Path Read Capture High */ 416a47a12beSStefan Roese u32 capture_data_lo; /* Memory Data Path Read Capture Low */ 417a47a12beSStefan Roese u32 capture_ecc; /* Memory Data Path Read Capture ECC */ 418a47a12beSStefan Roese u8 res7[0x14]; 419a47a12beSStefan Roese u32 err_detect; /* Memory Error Detect */ 420a47a12beSStefan Roese u32 err_disable; /* Memory Error Disable */ 421a47a12beSStefan Roese u32 err_int_en; /* Memory Error Interrupt Enable */ 422a47a12beSStefan Roese u32 capture_attributes; /* Memory Error Attributes Capture */ 423a47a12beSStefan Roese u32 capture_address; /* Memory Error Address Capture */ 424a47a12beSStefan Roese u32 capture_ext_address;/* Memory Error Extended Address Capture */ 425a47a12beSStefan Roese u32 err_sbe; /* Memory Single-Bit ECC Error Management */ 426a47a12beSStefan Roese u8 res8[0xA4]; 427a47a12beSStefan Roese u32 debug_reg; 428a47a12beSStefan Roese u8 res9[0xFC]; 429a47a12beSStefan Roese } ddr83xx_t; 430d29d17d7SYork Sun #endif 431a47a12beSStefan Roese 432a47a12beSStefan Roese /* 433a47a12beSStefan Roese * DUART 434a47a12beSStefan Roese */ 435a47a12beSStefan Roese typedef struct duart83xx { 436a47a12beSStefan Roese u8 urbr_ulcr_udlb; /* combined register for URBR, UTHR and UDLB */ 437a47a12beSStefan Roese u8 uier_udmb; /* combined register for UIER and UDMB */ 438a47a12beSStefan Roese u8 uiir_ufcr_uafr; /* combined register for UIIR, UFCR and UAFR */ 439a47a12beSStefan Roese u8 ulcr; /* line control register */ 440a47a12beSStefan Roese u8 umcr; /* MODEM control register */ 441a47a12beSStefan Roese u8 ulsr; /* line status register */ 442a47a12beSStefan Roese u8 umsr; /* MODEM status register */ 443a47a12beSStefan Roese u8 uscr; /* scratch register */ 444a47a12beSStefan Roese u8 res0[8]; 445a47a12beSStefan Roese u8 udsr; /* DMA status register */ 446a47a12beSStefan Roese u8 res1[3]; 447a47a12beSStefan Roese u8 res2[0xEC]; 448a47a12beSStefan Roese } duart83xx_t; 449a47a12beSStefan Roese 450a47a12beSStefan Roese /* 451a47a12beSStefan Roese * DMA/Messaging Unit 452a47a12beSStefan Roese */ 453a47a12beSStefan Roese typedef struct dma83xx { 454a47a12beSStefan Roese u32 res0[0xC]; /* 0x0-0x29 reseverd */ 455a47a12beSStefan Roese u32 omisr; /* 0x30 Outbound message interrupt status register */ 456a47a12beSStefan Roese u32 omimr; /* 0x34 Outbound message interrupt mask register */ 457a47a12beSStefan Roese u32 res1[0x6]; /* 0x38-0x49 reserved */ 458a47a12beSStefan Roese u32 imr0; /* 0x50 Inbound message register 0 */ 459a47a12beSStefan Roese u32 imr1; /* 0x54 Inbound message register 1 */ 460a47a12beSStefan Roese u32 omr0; /* 0x58 Outbound message register 0 */ 461a47a12beSStefan Roese u32 omr1; /* 0x5C Outbound message register 1 */ 462a47a12beSStefan Roese u32 odr; /* 0x60 Outbound doorbell register */ 463a47a12beSStefan Roese u32 res2; /* 0x64-0x67 reserved */ 464a47a12beSStefan Roese u32 idr; /* 0x68 Inbound doorbell register */ 465a47a12beSStefan Roese u32 res3[0x5]; /* 0x6C-0x79 reserved */ 466a47a12beSStefan Roese u32 imisr; /* 0x80 Inbound message interrupt status register */ 467a47a12beSStefan Roese u32 imimr; /* 0x84 Inbound message interrupt mask register */ 468a47a12beSStefan Roese u32 res4[0x1E]; /* 0x88-0x99 reserved */ 469a47a12beSStefan Roese struct fsl_dma dma[4]; 470a47a12beSStefan Roese } dma83xx_t; 471a47a12beSStefan Roese 472a47a12beSStefan Roese /* 473a47a12beSStefan Roese * PCI Software Configuration Registers 474a47a12beSStefan Roese */ 475a47a12beSStefan Roese typedef struct pciconf83xx { 476a47a12beSStefan Roese u32 config_address; 477a47a12beSStefan Roese u32 config_data; 478a47a12beSStefan Roese u32 int_ack; 479a47a12beSStefan Roese u8 res[116]; 480a47a12beSStefan Roese } pciconf83xx_t; 481a47a12beSStefan Roese 482a47a12beSStefan Roese /* 483a47a12beSStefan Roese * PCI Outbound Translation Register 484a47a12beSStefan Roese */ 485a47a12beSStefan Roese typedef struct pci_outbound_window { 486a47a12beSStefan Roese u32 potar; 487a47a12beSStefan Roese u8 res0[4]; 488a47a12beSStefan Roese u32 pobar; 489a47a12beSStefan Roese u8 res1[4]; 490a47a12beSStefan Roese u32 pocmr; 491a47a12beSStefan Roese u8 res2[4]; 492a47a12beSStefan Roese } pot83xx_t; 493a47a12beSStefan Roese 494a47a12beSStefan Roese /* 495a47a12beSStefan Roese * Sequencer 496a47a12beSStefan Roese */ 497a47a12beSStefan Roese typedef struct ios83xx { 498a47a12beSStefan Roese pot83xx_t pot[6]; 499a47a12beSStefan Roese u8 res0[0x60]; 500a47a12beSStefan Roese u32 pmcr; 501a47a12beSStefan Roese u8 res1[4]; 502a47a12beSStefan Roese u32 dtcr; 503a47a12beSStefan Roese u8 res2[4]; 504a47a12beSStefan Roese } ios83xx_t; 505a47a12beSStefan Roese 506a47a12beSStefan Roese /* 507a47a12beSStefan Roese * PCI Controller Control and Status Registers 508a47a12beSStefan Roese */ 509a47a12beSStefan Roese typedef struct pcictrl83xx { 510a47a12beSStefan Roese u32 esr; 511a47a12beSStefan Roese u32 ecdr; 512a47a12beSStefan Roese u32 eer; 513a47a12beSStefan Roese u32 eatcr; 514a47a12beSStefan Roese u32 eacr; 515a47a12beSStefan Roese u32 eeacr; 516a47a12beSStefan Roese u32 edlcr; 517a47a12beSStefan Roese u32 edhcr; 518a47a12beSStefan Roese u32 gcr; 519a47a12beSStefan Roese u32 ecr; 520a47a12beSStefan Roese u32 gsr; 521a47a12beSStefan Roese u8 res0[12]; 522a47a12beSStefan Roese u32 pitar2; 523a47a12beSStefan Roese u8 res1[4]; 524a47a12beSStefan Roese u32 pibar2; 525a47a12beSStefan Roese u32 piebar2; 526a47a12beSStefan Roese u32 piwar2; 527a47a12beSStefan Roese u8 res2[4]; 528a47a12beSStefan Roese u32 pitar1; 529a47a12beSStefan Roese u8 res3[4]; 530a47a12beSStefan Roese u32 pibar1; 531a47a12beSStefan Roese u32 piebar1; 532a47a12beSStefan Roese u32 piwar1; 533a47a12beSStefan Roese u8 res4[4]; 534a47a12beSStefan Roese u32 pitar0; 535a47a12beSStefan Roese u8 res5[4]; 536a47a12beSStefan Roese u32 pibar0; 537a47a12beSStefan Roese u8 res6[4]; 538a47a12beSStefan Roese u32 piwar0; 539a47a12beSStefan Roese u8 res7[132]; 540a47a12beSStefan Roese } pcictrl83xx_t; 541a47a12beSStefan Roese 542a47a12beSStefan Roese /* 543a47a12beSStefan Roese * USB 544a47a12beSStefan Roese */ 545a47a12beSStefan Roese typedef struct usb83xx { 546a47a12beSStefan Roese u8 fixme[0x1000]; 547a47a12beSStefan Roese } usb83xx_t; 548a47a12beSStefan Roese 549a47a12beSStefan Roese /* 550a47a12beSStefan Roese * TSEC 551a47a12beSStefan Roese */ 552a47a12beSStefan Roese typedef struct tsec83xx { 553a47a12beSStefan Roese u8 fixme[0x1000]; 554a47a12beSStefan Roese } tsec83xx_t; 555a47a12beSStefan Roese 556a47a12beSStefan Roese /* 557a47a12beSStefan Roese * Security 558a47a12beSStefan Roese */ 559a47a12beSStefan Roese typedef struct security83xx { 560a47a12beSStefan Roese u8 fixme[0x10000]; 561a47a12beSStefan Roese } security83xx_t; 562a47a12beSStefan Roese 563a47a12beSStefan Roese /* 564a47a12beSStefan Roese * PCI Express 565a47a12beSStefan Roese */ 566a47a12beSStefan Roese struct pex_inbound_window { 567a47a12beSStefan Roese u32 ar; 568a47a12beSStefan Roese u32 tar; 569a47a12beSStefan Roese u32 barl; 570a47a12beSStefan Roese u32 barh; 571a47a12beSStefan Roese }; 572a47a12beSStefan Roese 573a47a12beSStefan Roese struct pex_outbound_window { 574a47a12beSStefan Roese u32 ar; 575a47a12beSStefan Roese u32 bar; 576a47a12beSStefan Roese u32 tarl; 577a47a12beSStefan Roese u32 tarh; 578a47a12beSStefan Roese }; 579a47a12beSStefan Roese 580a47a12beSStefan Roese struct pex_csb_bridge { 581a47a12beSStefan Roese u32 pex_csb_ver; 582a47a12beSStefan Roese u32 pex_csb_cab; 583a47a12beSStefan Roese u32 pex_csb_ctrl; 584a47a12beSStefan Roese u8 res0[8]; 585a47a12beSStefan Roese u32 pex_dms_dstmr; 586a47a12beSStefan Roese u8 res1[4]; 587a47a12beSStefan Roese u32 pex_cbs_stat; 588a47a12beSStefan Roese u8 res2[0x20]; 589a47a12beSStefan Roese u32 pex_csb_obctrl; 590a47a12beSStefan Roese u32 pex_csb_obstat; 591a47a12beSStefan Roese u8 res3[0x98]; 592a47a12beSStefan Roese u32 pex_csb_ibctrl; 593a47a12beSStefan Roese u32 pex_csb_ibstat; 594a47a12beSStefan Roese u8 res4[0xb8]; 595a47a12beSStefan Roese u32 pex_wdma_ctrl; 596a47a12beSStefan Roese u32 pex_wdma_addr; 597a47a12beSStefan Roese u32 pex_wdma_stat; 598a47a12beSStefan Roese u8 res5[0x94]; 599a47a12beSStefan Roese u32 pex_rdma_ctrl; 600a47a12beSStefan Roese u32 pex_rdma_addr; 601a47a12beSStefan Roese u32 pex_rdma_stat; 602a47a12beSStefan Roese u8 res6[0xd4]; 603a47a12beSStefan Roese u32 pex_ombcr; 604a47a12beSStefan Roese u32 pex_ombdr; 605a47a12beSStefan Roese u8 res7[0x38]; 606a47a12beSStefan Roese u32 pex_imbcr; 607a47a12beSStefan Roese u32 pex_imbdr; 608a47a12beSStefan Roese u8 res8[0x38]; 609a47a12beSStefan Roese u32 pex_int_enb; 610a47a12beSStefan Roese u32 pex_int_stat; 611a47a12beSStefan Roese u32 pex_int_apio_vec1; 612a47a12beSStefan Roese u32 pex_int_apio_vec2; 613a47a12beSStefan Roese u8 res9[0x10]; 614a47a12beSStefan Roese u32 pex_int_ppio_vec1; 615a47a12beSStefan Roese u32 pex_int_ppio_vec2; 616a47a12beSStefan Roese u32 pex_int_wdma_vec1; 617a47a12beSStefan Roese u32 pex_int_wdma_vec2; 618a47a12beSStefan Roese u32 pex_int_rdma_vec1; 619a47a12beSStefan Roese u32 pex_int_rdma_vec2; 620a47a12beSStefan Roese u32 pex_int_misc_vec; 621a47a12beSStefan Roese u8 res10[4]; 622a47a12beSStefan Roese u32 pex_int_axi_pio_enb; 623a47a12beSStefan Roese u32 pex_int_axi_wdma_enb; 624a47a12beSStefan Roese u32 pex_int_axi_rdma_enb; 625a47a12beSStefan Roese u32 pex_int_axi_misc_enb; 626a47a12beSStefan Roese u32 pex_int_axi_pio_stat; 627a47a12beSStefan Roese u32 pex_int_axi_wdma_stat; 628a47a12beSStefan Roese u32 pex_int_axi_rdma_stat; 629a47a12beSStefan Roese u32 pex_int_axi_misc_stat; 630a47a12beSStefan Roese u8 res11[0xa0]; 631a47a12beSStefan Roese struct pex_outbound_window pex_outbound_win[4]; 632a47a12beSStefan Roese u8 res12[0x100]; 633a47a12beSStefan Roese u32 pex_epiwtar0; 634a47a12beSStefan Roese u32 pex_epiwtar1; 635a47a12beSStefan Roese u32 pex_epiwtar2; 636a47a12beSStefan Roese u32 pex_epiwtar3; 637a47a12beSStefan Roese u8 res13[0x70]; 638a47a12beSStefan Roese struct pex_inbound_window pex_inbound_win[4]; 639a47a12beSStefan Roese }; 640a47a12beSStefan Roese 641a47a12beSStefan Roese typedef struct pex83xx { 642a47a12beSStefan Roese u8 pex_cfg_header[0x404]; 643a47a12beSStefan Roese u32 pex_ltssm_stat; 644a47a12beSStefan Roese u8 res0[0x30]; 645a47a12beSStefan Roese u32 pex_ack_replay_timeout; 646a47a12beSStefan Roese u8 res1[4]; 647a47a12beSStefan Roese u32 pex_gclk_ratio; 648a47a12beSStefan Roese u8 res2[0xc]; 649a47a12beSStefan Roese u32 pex_pm_timer; 650a47a12beSStefan Roese u32 pex_pme_timeout; 651a47a12beSStefan Roese u8 res3[4]; 652a47a12beSStefan Roese u32 pex_aspm_req_timer; 653a47a12beSStefan Roese u8 res4[0x18]; 654a47a12beSStefan Roese u32 pex_ssvid_update; 655a47a12beSStefan Roese u8 res5[0x34]; 656a47a12beSStefan Roese u32 pex_cfg_ready; 657a47a12beSStefan Roese u8 res6[0x24]; 658a47a12beSStefan Roese u32 pex_bar_sizel; 659a47a12beSStefan Roese u8 res7[4]; 660a47a12beSStefan Roese u32 pex_bar_sel; 661a47a12beSStefan Roese u8 res8[0x20]; 662a47a12beSStefan Roese u32 pex_bar_pf; 663a47a12beSStefan Roese u8 res9[0x88]; 664a47a12beSStefan Roese u32 pex_pme_to_ack_tor; 665a47a12beSStefan Roese u8 res10[0xc]; 666a47a12beSStefan Roese u32 pex_ss_intr_mask; 667a47a12beSStefan Roese u8 res11[0x25c]; 668a47a12beSStefan Roese struct pex_csb_bridge bridge; 669a47a12beSStefan Roese u8 res12[0x160]; 670a47a12beSStefan Roese } pex83xx_t; 671a47a12beSStefan Roese 672a47a12beSStefan Roese /* 673a47a12beSStefan Roese * SATA 674a47a12beSStefan Roese */ 675a47a12beSStefan Roese typedef struct sata83xx { 676a47a12beSStefan Roese u8 fixme[0x1000]; 677a47a12beSStefan Roese } sata83xx_t; 678a47a12beSStefan Roese 679a47a12beSStefan Roese /* 680a47a12beSStefan Roese * eSDHC 681a47a12beSStefan Roese */ 682a47a12beSStefan Roese typedef struct sdhc83xx { 683a47a12beSStefan Roese u8 fixme[0x1000]; 684a47a12beSStefan Roese } sdhc83xx_t; 685a47a12beSStefan Roese 686a47a12beSStefan Roese /* 687a47a12beSStefan Roese * SerDes 688a47a12beSStefan Roese */ 689a47a12beSStefan Roese typedef struct serdes83xx { 6907c619ddcSIlya Yanok u32 srdscr0; 6917c619ddcSIlya Yanok u32 srdscr1; 6927c619ddcSIlya Yanok u32 srdscr2; 6937c619ddcSIlya Yanok u32 srdscr3; 6947c619ddcSIlya Yanok u32 srdscr4; 6957c619ddcSIlya Yanok u8 res0[0xc]; 6967c619ddcSIlya Yanok u32 srdsrstctl; 6977c619ddcSIlya Yanok u8 res1[0xdc]; 698a47a12beSStefan Roese } serdes83xx_t; 699a47a12beSStefan Roese 700a47a12beSStefan Roese /* 701a47a12beSStefan Roese * On Chip ROM 702a47a12beSStefan Roese */ 703a47a12beSStefan Roese typedef struct rom83xx { 704a88731a6SGerlando Falauto #if defined(CONFIG_MPC8309) 705a88731a6SGerlando Falauto u8 mem[0x8000]; 706a88731a6SGerlando Falauto #else 707a47a12beSStefan Roese u8 mem[0x10000]; 708a88731a6SGerlando Falauto #endif 709a47a12beSStefan Roese } rom83xx_t; 710a47a12beSStefan Roese 711a47a12beSStefan Roese /* 712a47a12beSStefan Roese * TDM 713a47a12beSStefan Roese */ 714a47a12beSStefan Roese typedef struct tdm83xx { 715a47a12beSStefan Roese u8 fixme[0x200]; 716a47a12beSStefan Roese } tdm83xx_t; 717a47a12beSStefan Roese 718a47a12beSStefan Roese /* 719a47a12beSStefan Roese * TDM DMAC 720a47a12beSStefan Roese */ 721a47a12beSStefan Roese typedef struct tdmdmac83xx { 722a47a12beSStefan Roese u8 fixme[0x2000]; 723a47a12beSStefan Roese } tdmdmac83xx_t; 724a47a12beSStefan Roese 725a47a12beSStefan Roese #if defined(CONFIG_MPC834x) 726a47a12beSStefan Roese typedef struct immap { 727a47a12beSStefan Roese sysconf83xx_t sysconf; /* System configuration */ 728a47a12beSStefan Roese wdt83xx_t wdt; /* Watch Dog Timer (WDT) Registers */ 729a47a12beSStefan Roese rtclk83xx_t rtc; /* Real Time Clock Module Registers */ 730a47a12beSStefan Roese rtclk83xx_t pit; /* Periodic Interval Timer */ 731a47a12beSStefan Roese gtm83xx_t gtm[2]; /* Global Timers Module */ 732a47a12beSStefan Roese ipic83xx_t ipic; /* Integrated Programmable Interrupt Controller */ 733a47a12beSStefan Roese arbiter83xx_t arbiter; /* System Arbiter Registers */ 734a47a12beSStefan Roese reset83xx_t reset; /* Reset Module */ 735a47a12beSStefan Roese clk83xx_t clk; /* System Clock Module */ 736a47a12beSStefan Roese pmc83xx_t pmc; /* Power Management Control Module */ 737a47a12beSStefan Roese gpio83xx_t gpio[2]; /* General purpose I/O module */ 738a47a12beSStefan Roese u8 res0[0x200]; 739a47a12beSStefan Roese u8 dll_ddr[0x100]; 740a47a12beSStefan Roese u8 dll_lbc[0x100]; 741a47a12beSStefan Roese u8 res1[0xE00]; 742d29d17d7SYork Sun #if defined(CONFIG_FSL_DDR2) || defined(CONFIG_FSL_DDR3) 743d29d17d7SYork Sun ccsr_ddr_t ddr; /* DDR Memory Controller Memory */ 744d29d17d7SYork Sun #else 745a47a12beSStefan Roese ddr83xx_t ddr; /* DDR Memory Controller Memory */ 746d29d17d7SYork Sun #endif 747a47a12beSStefan Roese fsl_i2c_t i2c[2]; /* I2C Controllers */ 748a47a12beSStefan Roese u8 res2[0x1300]; 749a47a12beSStefan Roese duart83xx_t duart[2]; /* DUART */ 750a47a12beSStefan Roese u8 res3[0x900]; 751f51cdaf1SBecky Bruce fsl_lbc_t im_lbc; /* Local Bus Controller Regs */ 752a47a12beSStefan Roese u8 res4[0x1000]; 753a47a12beSStefan Roese spi8xxx_t spi; /* Serial Peripheral Interface */ 754a47a12beSStefan Roese dma83xx_t dma; /* DMA */ 755a47a12beSStefan Roese pciconf83xx_t pci_conf[2]; /* PCI Software Configuration Registers */ 756a47a12beSStefan Roese ios83xx_t ios; /* Sequencer */ 757a47a12beSStefan Roese pcictrl83xx_t pci_ctrl[2]; /* PCI Controller Control and Status Registers */ 758a47a12beSStefan Roese u8 res5[0x19900]; 759a47a12beSStefan Roese usb83xx_t usb[2]; 760a47a12beSStefan Roese tsec83xx_t tsec[2]; 761a47a12beSStefan Roese u8 res6[0xA000]; 762a47a12beSStefan Roese security83xx_t security; 763a47a12beSStefan Roese u8 res7[0xC0000]; 764a47a12beSStefan Roese } immap_t; 765a47a12beSStefan Roese 766*4e2e0df9Sramneek mehresh #ifndef CONFIG_MPC834x 767a47a12beSStefan Roese #ifdef CONFIG_HAS_FSL_MPH_USB 76877354e9dSramneek mehresh #define CONFIG_SYS_MPC83xx_USB1_OFFSET 0x22000 /* use the MPH controller */ 76977354e9dSramneek mehresh #define CONFIG_SYS_MPC83xx_USB2_OFFSET 0 770a47a12beSStefan Roese #else 77177354e9dSramneek mehresh #define CONFIG_SYS_MPC83xx_USB1_OFFSET 0 77277354e9dSramneek mehresh #define CONFIG_SYS_MPC83xx_USB2_OFFSET 0x23000 /* use the DR controller */ 773a47a12beSStefan Roese #endif 774*4e2e0df9Sramneek mehresh #else 775*4e2e0df9Sramneek mehresh #define CONFIG_SYS_MPC83xx_USB1_OFFSET 0x22000 776*4e2e0df9Sramneek mehresh #define CONFIG_SYS_MPC83xx_USB2_OFFSET 0x23000 777*4e2e0df9Sramneek mehresh #endif 778a47a12beSStefan Roese 779a47a12beSStefan Roese #elif defined(CONFIG_MPC8313) 780a47a12beSStefan Roese typedef struct immap { 781a47a12beSStefan Roese sysconf83xx_t sysconf; /* System configuration */ 782a47a12beSStefan Roese wdt83xx_t wdt; /* Watch Dog Timer (WDT) Registers */ 783a47a12beSStefan Roese rtclk83xx_t rtc; /* Real Time Clock Module Registers */ 784a47a12beSStefan Roese rtclk83xx_t pit; /* Periodic Interval Timer */ 785a47a12beSStefan Roese gtm83xx_t gtm[2]; /* Global Timers Module */ 786a47a12beSStefan Roese ipic83xx_t ipic; /* Integrated Programmable Interrupt Controller */ 787a47a12beSStefan Roese arbiter83xx_t arbiter; /* System Arbiter Registers */ 788a47a12beSStefan Roese reset83xx_t reset; /* Reset Module */ 789a47a12beSStefan Roese clk83xx_t clk; /* System Clock Module */ 790a47a12beSStefan Roese pmc83xx_t pmc; /* Power Management Control Module */ 791a47a12beSStefan Roese gpio83xx_t gpio[1]; /* General purpose I/O module */ 792a47a12beSStefan Roese u8 res0[0x1300]; 793a47a12beSStefan Roese ddr83xx_t ddr; /* DDR Memory Controller Memory */ 794a47a12beSStefan Roese fsl_i2c_t i2c[2]; /* I2C Controllers */ 795a47a12beSStefan Roese u8 res1[0x1300]; 796a47a12beSStefan Roese duart83xx_t duart[2]; /* DUART */ 797a47a12beSStefan Roese u8 res2[0x900]; 798f51cdaf1SBecky Bruce fsl_lbc_t im_lbc; /* Local Bus Controller Regs */ 799a47a12beSStefan Roese u8 res3[0x1000]; 800a47a12beSStefan Roese spi8xxx_t spi; /* Serial Peripheral Interface */ 801a47a12beSStefan Roese dma83xx_t dma; /* DMA */ 802a47a12beSStefan Roese pciconf83xx_t pci_conf[1]; /* PCI Software Configuration Registers */ 803a47a12beSStefan Roese u8 res4[0x80]; 804a47a12beSStefan Roese ios83xx_t ios; /* Sequencer */ 805a47a12beSStefan Roese pcictrl83xx_t pci_ctrl[1]; /* PCI Controller Control and Status Registers */ 806a47a12beSStefan Roese u8 res5[0x1aa00]; 807a47a12beSStefan Roese usb83xx_t usb[1]; 808a47a12beSStefan Roese tsec83xx_t tsec[2]; 809a47a12beSStefan Roese u8 res6[0xA000]; 810a47a12beSStefan Roese security83xx_t security; 811a47a12beSStefan Roese u8 res7[0xC0000]; 812a47a12beSStefan Roese } immap_t; 813a47a12beSStefan Roese 8147c619ddcSIlya Yanok #elif defined(CONFIG_MPC8308) || defined(CONFIG_MPC8315) 815a47a12beSStefan Roese typedef struct immap { 816a47a12beSStefan Roese sysconf83xx_t sysconf; /* System configuration */ 817a47a12beSStefan Roese wdt83xx_t wdt; /* Watch Dog Timer (WDT) Registers */ 818a47a12beSStefan Roese rtclk83xx_t rtc; /* Real Time Clock Module Registers */ 819a47a12beSStefan Roese rtclk83xx_t pit; /* Periodic Interval Timer */ 820a47a12beSStefan Roese gtm83xx_t gtm[2]; /* Global Timers Module */ 821a47a12beSStefan Roese ipic83xx_t ipic; /* Integrated Programmable Interrupt Controller */ 822a47a12beSStefan Roese arbiter83xx_t arbiter; /* System Arbiter Registers */ 823a47a12beSStefan Roese reset83xx_t reset; /* Reset Module */ 824a47a12beSStefan Roese clk83xx_t clk; /* System Clock Module */ 825a47a12beSStefan Roese pmc83xx_t pmc; /* Power Management Control Module */ 826a47a12beSStefan Roese gpio83xx_t gpio[1]; /* General purpose I/O module */ 827a47a12beSStefan Roese u8 res0[0x1300]; 828a47a12beSStefan Roese ddr83xx_t ddr; /* DDR Memory Controller Memory */ 829a47a12beSStefan Roese fsl_i2c_t i2c[2]; /* I2C Controllers */ 830a47a12beSStefan Roese u8 res1[0x1300]; 831a47a12beSStefan Roese duart83xx_t duart[2]; /* DUART */ 832a47a12beSStefan Roese u8 res2[0x900]; 833f51cdaf1SBecky Bruce fsl_lbc_t im_lbc; /* Local Bus Controller Regs */ 834a47a12beSStefan Roese u8 res3[0x1000]; 835a47a12beSStefan Roese spi8xxx_t spi; /* Serial Peripheral Interface */ 836a47a12beSStefan Roese dma83xx_t dma; /* DMA */ 837a47a12beSStefan Roese pciconf83xx_t pci_conf[1]; /* PCI Software Configuration Registers */ 838a47a12beSStefan Roese u8 res4[0x80]; 839a47a12beSStefan Roese ios83xx_t ios; /* Sequencer */ 840a47a12beSStefan Roese pcictrl83xx_t pci_ctrl[1]; /* PCI Controller Control and Status Registers */ 841a47a12beSStefan Roese u8 res5[0xa00]; 842a47a12beSStefan Roese pex83xx_t pciexp[2]; /* PCI Express Controller */ 843a47a12beSStefan Roese u8 res6[0xb000]; 844a47a12beSStefan Roese tdm83xx_t tdm; /* TDM Controller */ 845a47a12beSStefan Roese u8 res7[0x1e00]; 846a47a12beSStefan Roese sata83xx_t sata[2]; /* SATA Controller */ 847a47a12beSStefan Roese u8 res8[0x9000]; 848a47a12beSStefan Roese usb83xx_t usb[1]; /* USB DR Controller */ 849a47a12beSStefan Roese tsec83xx_t tsec[2]; 850a47a12beSStefan Roese u8 res9[0x6000]; 851a47a12beSStefan Roese tdmdmac83xx_t tdmdmac; /* TDM DMAC */ 852a47a12beSStefan Roese u8 res10[0x2000]; 853a47a12beSStefan Roese security83xx_t security; 854a47a12beSStefan Roese u8 res11[0xA3000]; 855a47a12beSStefan Roese serdes83xx_t serdes[1]; /* SerDes Registers */ 856a47a12beSStefan Roese u8 res12[0x1CF00]; 857a47a12beSStefan Roese } immap_t; 858a47a12beSStefan Roese 859a47a12beSStefan Roese #elif defined(CONFIG_MPC837x) 860a47a12beSStefan Roese typedef struct immap { 861a47a12beSStefan Roese sysconf83xx_t sysconf; /* System configuration */ 862a47a12beSStefan Roese wdt83xx_t wdt; /* Watch Dog Timer (WDT) Registers */ 863a47a12beSStefan Roese rtclk83xx_t rtc; /* Real Time Clock Module Registers */ 864a47a12beSStefan Roese rtclk83xx_t pit; /* Periodic Interval Timer */ 865a47a12beSStefan Roese gtm83xx_t gtm[2]; /* Global Timers Module */ 866a47a12beSStefan Roese ipic83xx_t ipic; /* Integrated Programmable Interrupt Controller */ 867a47a12beSStefan Roese arbiter83xx_t arbiter; /* System Arbiter Registers */ 868a47a12beSStefan Roese reset83xx_t reset; /* Reset Module */ 869a47a12beSStefan Roese clk83xx_t clk; /* System Clock Module */ 870a47a12beSStefan Roese pmc83xx_t pmc; /* Power Management Control Module */ 871a47a12beSStefan Roese gpio83xx_t gpio[2]; /* General purpose I/O module */ 872a47a12beSStefan Roese u8 res0[0x1200]; 873a47a12beSStefan Roese ddr83xx_t ddr; /* DDR Memory Controller Memory */ 874a47a12beSStefan Roese fsl_i2c_t i2c[2]; /* I2C Controllers */ 875a47a12beSStefan Roese u8 res1[0x1300]; 876a47a12beSStefan Roese duart83xx_t duart[2]; /* DUART */ 877a47a12beSStefan Roese u8 res2[0x900]; 878f51cdaf1SBecky Bruce fsl_lbc_t im_lbc; /* Local Bus Controller Regs */ 879a47a12beSStefan Roese u8 res3[0x1000]; 880a47a12beSStefan Roese spi8xxx_t spi; /* Serial Peripheral Interface */ 881a47a12beSStefan Roese dma83xx_t dma; /* DMA */ 882a47a12beSStefan Roese pciconf83xx_t pci_conf[1]; /* PCI Software Configuration Registers */ 883a47a12beSStefan Roese u8 res4[0x80]; 884a47a12beSStefan Roese ios83xx_t ios; /* Sequencer */ 885a47a12beSStefan Roese pcictrl83xx_t pci_ctrl[1]; /* PCI Controller Control and Status Registers */ 886a47a12beSStefan Roese u8 res5[0xa00]; 887a47a12beSStefan Roese pex83xx_t pciexp[2]; /* PCI Express Controller */ 888a47a12beSStefan Roese u8 res6[0xd000]; 889a47a12beSStefan Roese sata83xx_t sata[4]; /* SATA Controller */ 890a47a12beSStefan Roese u8 res7[0x7000]; 891a47a12beSStefan Roese usb83xx_t usb[1]; /* USB DR Controller */ 892a47a12beSStefan Roese tsec83xx_t tsec[2]; 893a47a12beSStefan Roese u8 res8[0x8000]; 894a47a12beSStefan Roese sdhc83xx_t sdhc; /* SDHC Controller */ 895a47a12beSStefan Roese u8 res9[0x1000]; 896a47a12beSStefan Roese security83xx_t security; 897a47a12beSStefan Roese u8 res10[0xA3000]; 898a47a12beSStefan Roese serdes83xx_t serdes[2]; /* SerDes Registers */ 899a47a12beSStefan Roese u8 res11[0xCE00]; 900a47a12beSStefan Roese rom83xx_t rom; /* On Chip ROM */ 901a47a12beSStefan Roese } immap_t; 902a47a12beSStefan Roese 903a47a12beSStefan Roese #elif defined(CONFIG_MPC8360) 904a47a12beSStefan Roese typedef struct immap { 905a47a12beSStefan Roese sysconf83xx_t sysconf; /* System configuration */ 906a47a12beSStefan Roese wdt83xx_t wdt; /* Watch Dog Timer (WDT) Registers */ 907a47a12beSStefan Roese rtclk83xx_t rtc; /* Real Time Clock Module Registers */ 908a47a12beSStefan Roese rtclk83xx_t pit; /* Periodic Interval Timer */ 909a47a12beSStefan Roese u8 res0[0x200]; 910a47a12beSStefan Roese ipic83xx_t ipic; /* Integrated Programmable Interrupt Controller */ 911a47a12beSStefan Roese arbiter83xx_t arbiter; /* System Arbiter Registers */ 912a47a12beSStefan Roese reset83xx_t reset; /* Reset Module */ 913a47a12beSStefan Roese clk83xx_t clk; /* System Clock Module */ 914a47a12beSStefan Roese pmc83xx_t pmc; /* Power Management Control Module */ 915a47a12beSStefan Roese qepi83xx_t qepi; /* QE Ports Interrupts Registers */ 916a47a12beSStefan Roese u8 res1[0x300]; 917a47a12beSStefan Roese u8 dll_ddr[0x100]; 918a47a12beSStefan Roese u8 dll_lbc[0x100]; 919a47a12beSStefan Roese u8 res2[0x200]; 920a47a12beSStefan Roese qepio83xx_t qepio; /* QE Parallel I/O ports */ 921a47a12beSStefan Roese qesba83xx_t qesba; /* QE Secondary Bus Access Windows */ 922a47a12beSStefan Roese u8 res3[0x400]; 923a47a12beSStefan Roese ddr83xx_t ddr; /* DDR Memory Controller Memory */ 924a47a12beSStefan Roese fsl_i2c_t i2c[2]; /* I2C Controllers */ 925a47a12beSStefan Roese u8 res4[0x1300]; 926a47a12beSStefan Roese duart83xx_t duart[2]; /* DUART */ 927a47a12beSStefan Roese u8 res5[0x900]; 928f51cdaf1SBecky Bruce fsl_lbc_t im_lbc; /* Local Bus Controller Regs */ 929a47a12beSStefan Roese u8 res6[0x2000]; 930a47a12beSStefan Roese dma83xx_t dma; /* DMA */ 931a47a12beSStefan Roese pciconf83xx_t pci_conf[1]; /* PCI Software Configuration Registers */ 932a47a12beSStefan Roese u8 res7[128]; 933a47a12beSStefan Roese ios83xx_t ios; /* Sequencer (IOS) */ 934a47a12beSStefan Roese pcictrl83xx_t pci_ctrl[1]; /* PCI Controller Control and Status Registers */ 935a47a12beSStefan Roese u8 res8[0x4A00]; 936a47a12beSStefan Roese ddr83xx_t ddr_secondary; /* Secondary DDR Memory Controller Memory Map */ 937a47a12beSStefan Roese u8 res9[0x22000]; 938a47a12beSStefan Roese security83xx_t security; 939a47a12beSStefan Roese u8 res10[0xC0000]; 940a47a12beSStefan Roese u8 qe[0x100000]; /* QE block */ 941a47a12beSStefan Roese } immap_t; 942a47a12beSStefan Roese 943a47a12beSStefan Roese #elif defined(CONFIG_MPC832x) 944a47a12beSStefan Roese typedef struct immap { 945a47a12beSStefan Roese sysconf83xx_t sysconf; /* System configuration */ 946a47a12beSStefan Roese wdt83xx_t wdt; /* Watch Dog Timer (WDT) Registers */ 947a47a12beSStefan Roese rtclk83xx_t rtc; /* Real Time Clock Module Registers */ 948a47a12beSStefan Roese rtclk83xx_t pit; /* Periodic Interval Timer */ 949a47a12beSStefan Roese gtm83xx_t gtm[2]; /* Global Timers Module */ 950a47a12beSStefan Roese ipic83xx_t ipic; /* Integrated Programmable Interrupt Controller */ 951a47a12beSStefan Roese arbiter83xx_t arbiter; /* System Arbiter Registers */ 952a47a12beSStefan Roese reset83xx_t reset; /* Reset Module */ 953a47a12beSStefan Roese clk83xx_t clk; /* System Clock Module */ 954a47a12beSStefan Roese pmc83xx_t pmc; /* Power Management Control Module */ 955a47a12beSStefan Roese qepi83xx_t qepi; /* QE Ports Interrupts Registers */ 956a47a12beSStefan Roese u8 res0[0x300]; 957a47a12beSStefan Roese u8 dll_ddr[0x100]; 958a47a12beSStefan Roese u8 dll_lbc[0x100]; 959a47a12beSStefan Roese u8 res1[0x200]; 960a47a12beSStefan Roese qepio83xx_t qepio; /* QE Parallel I/O ports */ 961a47a12beSStefan Roese u8 res2[0x800]; 962a47a12beSStefan Roese ddr83xx_t ddr; /* DDR Memory Controller Memory */ 963a47a12beSStefan Roese fsl_i2c_t i2c[2]; /* I2C Controllers */ 964a47a12beSStefan Roese u8 res3[0x1300]; 965a47a12beSStefan Roese duart83xx_t duart[2]; /* DUART */ 966a47a12beSStefan Roese u8 res4[0x900]; 967f51cdaf1SBecky Bruce fsl_lbc_t im_lbc; /* Local Bus Controller Regs */ 968a47a12beSStefan Roese u8 res5[0x2000]; 969a47a12beSStefan Roese dma83xx_t dma; /* DMA */ 970a47a12beSStefan Roese pciconf83xx_t pci_conf[1]; /* PCI Software Configuration Registers */ 971a47a12beSStefan Roese u8 res6[128]; 972a47a12beSStefan Roese ios83xx_t ios; /* Sequencer (IOS) */ 973a47a12beSStefan Roese pcictrl83xx_t pci_ctrl[1]; /* PCI Controller Control and Status Registers */ 974a47a12beSStefan Roese u8 res7[0x27A00]; 975a47a12beSStefan Roese security83xx_t security; 976a47a12beSStefan Roese u8 res8[0xC0000]; 977a47a12beSStefan Roese u8 qe[0x100000]; /* QE block */ 978a47a12beSStefan Roese } immap_t; 979a88731a6SGerlando Falauto #elif defined(CONFIG_MPC8309) 980a88731a6SGerlando Falauto typedef struct immap { 981a88731a6SGerlando Falauto sysconf83xx_t sysconf; /* System configuration */ 982a88731a6SGerlando Falauto wdt83xx_t wdt; /* Watch Dog Timer (WDT) Registers */ 983a88731a6SGerlando Falauto rtclk83xx_t rtc; /* Real Time Clock Module Registers */ 984a88731a6SGerlando Falauto rtclk83xx_t pit; /* Periodic Interval Timer */ 985a88731a6SGerlando Falauto gtm83xx_t gtm[2]; /* Global Timers Module */ 986a88731a6SGerlando Falauto ipic83xx_t ipic; /* Integrated Programmable Interrupt Controller */ 987a88731a6SGerlando Falauto arbiter83xx_t arbiter; /* System Arbiter Registers */ 988a88731a6SGerlando Falauto reset83xx_t reset; /* Reset Module */ 989a88731a6SGerlando Falauto clk83xx_t clk; /* System Clock Module */ 990a88731a6SGerlando Falauto pmc83xx_t pmc; /* Power Management Control Module */ 991a88731a6SGerlando Falauto gpio83xx_t gpio[2]; /* General purpose I/O module */ 992a88731a6SGerlando Falauto u8 res0[0x500]; /* res0 1.25 KBytes added for 8309 */ 993a88731a6SGerlando Falauto qepi83xx_t qepi; /* QE Ports Interrupts Registers */ 994a88731a6SGerlando Falauto qepio83xx_t qepio; /* QE Parallel I/O ports */ 995a88731a6SGerlando Falauto u8 res1[0x800]; 996a88731a6SGerlando Falauto ddr83xx_t ddr; /* DDR Memory Controller Memory */ 997a88731a6SGerlando Falauto fsl_i2c_t i2c[2]; /* I2C Controllers */ 998a88731a6SGerlando Falauto u8 res2[0x1300]; 999a88731a6SGerlando Falauto duart83xx_t duart[2]; /* DUART */ 1000a88731a6SGerlando Falauto u8 res3[0x200]; 1001a88731a6SGerlando Falauto duart83xx_t duart1[2]; /* DUART */ 1002a88731a6SGerlando Falauto u8 res4[0x500]; 1003a88731a6SGerlando Falauto fsl_lbc_t im_lbc; /* Local Bus Controller Regs */ 1004a88731a6SGerlando Falauto u8 res5[0x1000]; 1005a88731a6SGerlando Falauto u8 spi[0x100]; 1006a88731a6SGerlando Falauto u8 res6[0xf00]; 1007a88731a6SGerlando Falauto dma83xx_t dma; /* DMA */ 1008a88731a6SGerlando Falauto pciconf83xx_t pci_conf[1]; /* PCI Configuration Registers */ 1009a88731a6SGerlando Falauto u8 res7[0x80]; 1010a88731a6SGerlando Falauto ios83xx_t ios; /* Sequencer (IOS) */ 1011a88731a6SGerlando Falauto pcictrl83xx_t pci_ctrl[1]; /* PCI Control & Status Registers */ 1012a88731a6SGerlando Falauto u8 res8[0x13A00]; 1013a88731a6SGerlando Falauto u8 can1[0x1000]; /* Flexcan 1 */ 1014a88731a6SGerlando Falauto u8 can2[0x1000]; /* Flexcan 2 */ 1015a88731a6SGerlando Falauto u8 res9[0x5000]; 1016a88731a6SGerlando Falauto usb83xx_t usb; 1017a88731a6SGerlando Falauto u8 res10[0x5000]; 1018a88731a6SGerlando Falauto u8 can3[0x1000]; /* Flexcan 3 */ 1019a88731a6SGerlando Falauto u8 can4[0x1000]; /* Flexcan 4 */ 1020a88731a6SGerlando Falauto u8 res11[0x1000]; 1021a88731a6SGerlando Falauto u8 dma1[0x2000]; /* DMA */ 1022a88731a6SGerlando Falauto sdhc83xx_t sdhc; /* SDHC Controller */ 1023a88731a6SGerlando Falauto u8 res12[0xC1000]; 1024a88731a6SGerlando Falauto rom83xx_t rom; /* On Chip ROM */ 1025a88731a6SGerlando Falauto u8 res13[0x8000]; 1026a88731a6SGerlando Falauto u8 qe[0x100000]; /* QE block */ 1027a88731a6SGerlando Falauto u8 res14[0xE00000];/* Added for 8309 */ 1028a88731a6SGerlando Falauto } immap_t; 1029a47a12beSStefan Roese #endif 1030a47a12beSStefan Roese 1031e76cd5d4SAndy Fleming #define CONFIG_SYS_MPC8xxx_DDR_OFFSET (0x2000) 1032e76cd5d4SAndy Fleming #define CONFIG_SYS_MPC8xxx_DDR_ADDR \ 1033e76cd5d4SAndy Fleming (CONFIG_SYS_IMMR + CONFIG_SYS_MPC8xxx_DDR_OFFSET) 1034a47a12beSStefan Roese #define CONFIG_SYS_MPC83xx_DMA_OFFSET (0x8000) 1035d29d17d7SYork Sun #define CONFIG_SYS_MPC83xx_DMA_ADDR \ 1036d29d17d7SYork Sun (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_DMA_OFFSET) 1037a47a12beSStefan Roese #define CONFIG_SYS_MPC83xx_ESDHC_OFFSET (0x2e000) 1038d29d17d7SYork Sun #define CONFIG_SYS_MPC83xx_ESDHC_ADDR \ 1039d29d17d7SYork Sun (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_ESDHC_OFFSET) 1040a47a12beSStefan Roese 104177354e9dSramneek mehresh #ifndef CONFIG_SYS_MPC83xx_USB1_OFFSET 104277354e9dSramneek mehresh #define CONFIG_SYS_MPC83xx_USB1_OFFSET 0x23000 1043a47a12beSStefan Roese #endif 104477354e9dSramneek mehresh #define CONFIG_SYS_MPC83xx_USB1_ADDR \ 104577354e9dSramneek mehresh (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_USB1_OFFSET) 104677354e9dSramneek mehresh #if defined(CONFIG_MPC834x) 104777354e9dSramneek mehresh #define CONFIG_SYS_MPC83xx_USB2_ADDR \ 104877354e9dSramneek mehresh (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_USB2_OFFSET) 104977354e9dSramneek mehresh #endif 1050f51cdaf1SBecky Bruce #define CONFIG_SYS_LBC_ADDR (&((immap_t *)CONFIG_SYS_IMMR)->im_lbc) 1051a47a12beSStefan Roese 1052a47a12beSStefan Roese #define CONFIG_SYS_TSEC1_OFFSET 0x24000 1053a47a12beSStefan Roese #define CONFIG_SYS_MDIO1_OFFSET 0x24000 1054a47a12beSStefan Roese 1055a47a12beSStefan Roese #define TSEC_BASE_ADDR (CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET) 1056a47a12beSStefan Roese #define MDIO_BASE_ADDR (CONFIG_SYS_IMMR + CONFIG_SYS_MDIO1_OFFSET) 1057a47a12beSStefan Roese #endif /* __IMMAP_83xx__ */ 1058