|
@@ -1,5 +1,5 @@
|
|
/*
|
|
/*
|
|
- * Copyright 2004-2009 Freescale Semiconductor, Inc.
|
|
|
|
|
|
+ * Copyright 2004-2011 Freescale Semiconductor, Inc.
|
|
*
|
|
*
|
|
* MPC83xx Internal Memory Map
|
|
* MPC83xx Internal Memory Map
|
|
*
|
|
*
|
|
@@ -285,6 +285,105 @@ typedef struct qesba83xx {
|
|
/*
|
|
/*
|
|
* DDR Memory Controller Memory Map
|
|
* DDR Memory Controller Memory Map
|
|
*/
|
|
*/
|
|
|
|
+#if defined(CONFIG_FSL_DDR2) || defined(CONFIG_FSL_DDR3)
|
|
|
|
+typedef struct ccsr_ddr {
|
|
|
|
+ u32 cs0_bnds; /* Chip Select 0 Memory Bounds */
|
|
|
|
+ u8 res1[4];
|
|
|
|
+ u32 cs1_bnds; /* Chip Select 1 Memory Bounds */
|
|
|
|
+ u8 res2[4];
|
|
|
|
+ u32 cs2_bnds; /* Chip Select 2 Memory Bounds */
|
|
|
|
+ u8 res3[4];
|
|
|
|
+ u32 cs3_bnds; /* Chip Select 3 Memory Bounds */
|
|
|
|
+ u8 res4[100];
|
|
|
|
+ u32 cs0_config; /* Chip Select Configuration */
|
|
|
|
+ u32 cs1_config; /* Chip Select Configuration */
|
|
|
|
+ u32 cs2_config; /* Chip Select Configuration */
|
|
|
|
+ u32 cs3_config; /* Chip Select Configuration */
|
|
|
|
+ u8 res4a[48];
|
|
|
|
+ u32 cs0_config_2; /* Chip Select Configuration 2 */
|
|
|
|
+ u32 cs1_config_2; /* Chip Select Configuration 2 */
|
|
|
|
+ u32 cs2_config_2; /* Chip Select Configuration 2 */
|
|
|
|
+ u32 cs3_config_2; /* Chip Select Configuration 2 */
|
|
|
|
+ u8 res5[48];
|
|
|
|
+ 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_cfg_2; /* SDRAM Control Configuration 2 */
|
|
|
|
+ u32 sdram_mode; /* SDRAM Mode Configuration */
|
|
|
|
+ u32 sdram_mode_2; /* SDRAM Mode Configuration 2 */
|
|
|
|
+ u32 sdram_md_cntl; /* SDRAM Mode Control */
|
|
|
|
+ u32 sdram_interval; /* SDRAM Interval Configuration */
|
|
|
|
+ u32 sdram_data_init; /* SDRAM Data initialization */
|
|
|
|
+ u8 res6[4];
|
|
|
|
+ u32 sdram_clk_cntl; /* SDRAM Clock Control */
|
|
|
|
+ u8 res7[20];
|
|
|
|
+ u32 init_addr; /* training init addr */
|
|
|
|
+ u32 init_ext_addr; /* training init extended addr */
|
|
|
|
+ u8 res8_1[16];
|
|
|
|
+ u32 timing_cfg_4; /* SDRAM Timing Configuration 4 */
|
|
|
|
+ u32 timing_cfg_5; /* SDRAM Timing Configuration 5 */
|
|
|
|
+ u8 reg8_1a[8];
|
|
|
|
+ u32 ddr_zq_cntl; /* ZQ calibration control*/
|
|
|
|
+ u32 ddr_wrlvl_cntl; /* write leveling control*/
|
|
|
|
+ u8 reg8_1aa[4];
|
|
|
|
+ u32 ddr_sr_cntr; /* self refresh counter */
|
|
|
|
+ u32 ddr_sdram_rcw_1; /* Control Words 1 */
|
|
|
|
+ u32 ddr_sdram_rcw_2; /* Control Words 2 */
|
|
|
|
+ u8 reg_1ab[8];
|
|
|
|
+ u32 ddr_wrlvl_cntl_2; /* write leveling control 2 */
|
|
|
|
+ u32 ddr_wrlvl_cntl_3; /* write leveling control 3 */
|
|
|
|
+ u8 res8_1b[104];
|
|
|
|
+ u32 sdram_mode_3; /* SDRAM Mode Configuration 3 */
|
|
|
|
+ u32 sdram_mode_4; /* SDRAM Mode Configuration 4 */
|
|
|
|
+ u32 sdram_mode_5; /* SDRAM Mode Configuration 5 */
|
|
|
|
+ u32 sdram_mode_6; /* SDRAM Mode Configuration 6 */
|
|
|
|
+ u32 sdram_mode_7; /* SDRAM Mode Configuration 7 */
|
|
|
|
+ u32 sdram_mode_8; /* SDRAM Mode Configuration 8 */
|
|
|
|
+ u8 res8_1ba[0x908];
|
|
|
|
+ u32 ddr_dsr1; /* Debug Status 1 */
|
|
|
|
+ u32 ddr_dsr2; /* Debug Status 2 */
|
|
|
|
+ u32 ddr_cdr1; /* Control Driver 1 */
|
|
|
|
+ u32 ddr_cdr2; /* Control Driver 2 */
|
|
|
|
+ u8 res8_1c[200];
|
|
|
|
+ u32 ip_rev1; /* IP Block Revision 1 */
|
|
|
|
+ u32 ip_rev2; /* IP Block Revision 2 */
|
|
|
|
+ u32 eor; /* Enhanced Optimization Register */
|
|
|
|
+ u8 res8_2[252];
|
|
|
|
+ u32 mtcr; /* Memory Test Control Register */
|
|
|
|
+ u8 res8_3[28];
|
|
|
|
+ u32 mtp1; /* Memory Test Pattern 1 */
|
|
|
|
+ u32 mtp2; /* Memory Test Pattern 2 */
|
|
|
|
+ u32 mtp3; /* Memory Test Pattern 3 */
|
|
|
|
+ u32 mtp4; /* Memory Test Pattern 4 */
|
|
|
|
+ u32 mtp5; /* Memory Test Pattern 5 */
|
|
|
|
+ u32 mtp6; /* Memory Test Pattern 6 */
|
|
|
|
+ u32 mtp7; /* Memory Test Pattern 7 */
|
|
|
|
+ u32 mtp8; /* Memory Test Pattern 8 */
|
|
|
|
+ u32 mtp9; /* Memory Test Pattern 9 */
|
|
|
|
+ u32 mtp10; /* Memory Test Pattern 10 */
|
|
|
|
+ u8 res8_4[184];
|
|
|
|
+ u32 data_err_inject_hi; /* Data Path Err Injection Mask High */
|
|
|
|
+ u32 data_err_inject_lo; /* Data Path Err Injection Mask Low */
|
|
|
|
+ u32 ecc_err_inject; /* Data Path Err Injection Mask ECC */
|
|
|
|
+ u8 res9[20];
|
|
|
|
+ u32 capture_data_hi; /* Data Path Read Capture High */
|
|
|
|
+ u32 capture_data_lo; /* Data Path Read Capture Low */
|
|
|
|
+ u32 capture_ecc; /* Data Path Read Capture ECC */
|
|
|
|
+ u8 res10[20];
|
|
|
|
+ u32 err_detect; /* Error Detect */
|
|
|
|
+ u32 err_disable; /* Error Disable */
|
|
|
|
+ u32 err_int_en;
|
|
|
|
+ u32 capture_attributes; /* Error Attrs Capture */
|
|
|
|
+ u32 capture_address; /* Error Addr Capture */
|
|
|
|
+ u32 capture_ext_address; /* Error Extended Addr Capture */
|
|
|
|
+ u32 err_sbe; /* Single-Bit ECC Error Management */
|
|
|
|
+ u8 res11[164];
|
|
|
|
+ u32 debug[32]; /* debug_1 to debug_32 */
|
|
|
|
+ u8 res12[128];
|
|
|
|
+} ccsr_ddr_t;
|
|
|
|
+#else
|
|
typedef struct ddr_cs_bnds {
|
|
typedef struct ddr_cs_bnds {
|
|
u32 csbnds;
|
|
u32 csbnds;
|
|
u8 res0[4];
|
|
u8 res0[4];
|
|
@@ -334,6 +433,7 @@ typedef struct ddr83xx {
|
|
u32 debug_reg;
|
|
u32 debug_reg;
|
|
u8 res9[0xFC];
|
|
u8 res9[0xFC];
|
|
} ddr83xx_t;
|
|
} ddr83xx_t;
|
|
|
|
+#endif
|
|
|
|
|
|
/*
|
|
/*
|
|
* DUART
|
|
* DUART
|
|
@@ -641,7 +741,11 @@ typedef struct immap {
|
|
u8 dll_ddr[0x100];
|
|
u8 dll_ddr[0x100];
|
|
u8 dll_lbc[0x100];
|
|
u8 dll_lbc[0x100];
|
|
u8 res1[0xE00];
|
|
u8 res1[0xE00];
|
|
- ddr83xx_t ddr; /* DDR Memory Controller Memory */
|
|
|
|
|
|
+#if defined(CONFIG_FSL_DDR2) || defined(CONFIG_FSL_DDR3)
|
|
|
|
+ ccsr_ddr_t ddr; /* DDR Memory Controller Memory */
|
|
|
|
+#else
|
|
|
|
+ ddr83xx_t ddr; /* DDR Memory Controller Memory */
|
|
|
|
+#endif
|
|
fsl_i2c_t i2c[2]; /* I2C Controllers */
|
|
fsl_i2c_t i2c[2]; /* I2C Controllers */
|
|
u8 res2[0x1300];
|
|
u8 res2[0x1300];
|
|
duart83xx_t duart[2]; /* DUART */
|
|
duart83xx_t duart[2]; /* DUART */
|
|
@@ -869,10 +973,15 @@ typedef struct immap {
|
|
} immap_t;
|
|
} immap_t;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#define CONFIG_SYS_MPC83xx_DDR_OFFSET (0x2000)
|
|
|
|
+#define CONFIG_SYS_MPC83xx_DDR_ADDR \
|
|
|
|
+ (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_DDR_OFFSET)
|
|
#define CONFIG_SYS_MPC83xx_DMA_OFFSET (0x8000)
|
|
#define CONFIG_SYS_MPC83xx_DMA_OFFSET (0x8000)
|
|
-#define CONFIG_SYS_MPC83xx_DMA_ADDR (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_DMA_OFFSET)
|
|
|
|
|
|
+#define CONFIG_SYS_MPC83xx_DMA_ADDR \
|
|
|
|
+ (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_DMA_OFFSET)
|
|
#define CONFIG_SYS_MPC83xx_ESDHC_OFFSET (0x2e000)
|
|
#define CONFIG_SYS_MPC83xx_ESDHC_OFFSET (0x2e000)
|
|
-#define CONFIG_SYS_MPC83xx_ESDHC_ADDR (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_ESDHC_OFFSET)
|
|
|
|
|
|
+#define CONFIG_SYS_MPC83xx_ESDHC_ADDR \
|
|
|
|
+ (CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_ESDHC_OFFSET)
|
|
|
|
|
|
#ifndef CONFIG_SYS_MPC83xx_USB_OFFSET
|
|
#ifndef CONFIG_SYS_MPC83xx_USB_OFFSET
|
|
#define CONFIG_SYS_MPC83xx_USB_OFFSET 0x23000
|
|
#define CONFIG_SYS_MPC83xx_USB_OFFSET 0x23000
|