]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - arch/powerpc/include/asm/immap_86xx.h
Merge branch 'u-boot/master' into 'u-boot-arm/master'
[karo-tx-uboot.git] / arch / powerpc / include / asm / immap_86xx.h
index fd7acdb767447aed5d78bff43793d6338dafb8ca..177918b7f967e7302bcbe0efffef71611f9e1871 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * MPC86xx Internal Memory Map
  *
- * Copyright 2004 Freescale Semiconductor
+ * Copyright 2004, 2011 Freescale Semiconductor
  * Jeff Brown (Jeffrey@freescale.com)
  * Srikanth Srinivasan (srikanth.srinivasan@freescale.com)
  *
 #ifndef __IMMAP_86xx__
 #define __IMMAP_86xx__
 
+#include <fsl_immap.h>
 #include <asm/types.h>
 #include <asm/fsl_dma.h>
+#include <asm/fsl_lbc.h>
 #include <asm/fsl_i2c.h>
 
 /* Local-Access Registers and MCM Registers(0x0000-0x2000) */
@@ -88,75 +90,6 @@ typedef struct ccsr_local_mcm {
        char    res31[488];
 } ccsr_local_mcm_t;
 
-/* DDR memory controller registers(0x2000-0x3000) and (0x6000-0x7000) */
-
-typedef struct ccsr_ddr {
-       uint    cs0_bnds;               /* 0x2000 - DDR Chip Select 0 Memory Bounds */
-       char    res1[4];
-       uint    cs1_bnds;               /* 0x2008 - DDR Chip Select 1 Memory Bounds */
-       char    res2[4];
-       uint    cs2_bnds;               /* 0x2010 - DDR Chip Select 2 Memory Bounds */
-       char    res3[4];
-       uint    cs3_bnds;               /* 0x2018 - DDR Chip Select 3 Memory Bounds */
-       char    res4[4];
-       uint    cs4_bnds;               /* 0x2020 - DDR Chip Select 4 Memory Bounds */
-       char    res5[4];
-       uint    cs5_bnds;               /* 0x2028 - DDR Chip Select 5 Memory Bounds */
-       char    res6[84];
-       uint    cs0_config;             /* 0x2080 - DDR Chip Select Configuration */
-       uint    cs1_config;             /* 0x2084 - DDR Chip Select Configuration */
-       uint    cs2_config;             /* 0x2088 - DDR Chip Select Configuration */
-       uint    cs3_config;             /* 0x208c - DDR Chip Select Configuration */
-       uint    cs4_config;             /* 0x2090 - DDR Chip Select Configuration */
-       uint    cs5_config;             /* 0x2094 - DDR Chip Select Configuration */
-       char    res7[104];
-       uint    timing_cfg_3;           /* 0x2100 - DDR SDRAM Timing Configuration Register 3 */
-       uint    timing_cfg_0;           /* 0x2104 - DDR SDRAM Timing Configuration Register 0 */
-       uint    timing_cfg_1;           /* 0x2108 - DDR SDRAM Timing Configuration Register 1 */
-       uint    timing_cfg_2;           /* 0x210c - DDR SDRAM Timing Configuration Register 2 */
-       uint    sdram_cfg;              /* 0x2110 - DDR SDRAM Control Configuration 1 */
-       uint    sdram_cfg_2;            /* 0x2114 - DDR SDRAM Control Configuration 2 */
-       uint    sdram_mode;             /* 0x2118 - DDR SDRAM Mode Configuration 1 */
-       uint    sdram_mode_2;           /* 0x211c - DDR SDRAM Mode Configuration 2 */
-       uint    sdram_mode_cntl;        /* 0x2120 - DDR SDRAM Mode Control */
-       uint    sdram_interval;         /* 0x2124 - DDR SDRAM Interval Configuration */
-       uint    sdram_data_init;        /* 0x2128 - DDR SDRAM Data Initialization */
-       char    res8[4];
-       uint    sdram_clk_cntl;         /* 0x2130 - DDR SDRAM Clock Control */
-       char    res9[12];
-       uint    sdram_ocd_cntl;         /* 0x2140 - DDR SDRAM OCD Control */
-       uint    sdram_ocd_status;       /* 0x2144 - DDR SDRAM OCD Status */
-       uint    init_addr;              /* 0x2148 - DDR training initialzation address */
-       uint    init_ext_addr;          /* 0x214C - DDR training initialzation extended address */
-       char    res10[2728];
-       uint    ip_rev1;                /* 0x2BF8 - DDR IP Block Revision 1 */
-       uint    ip_rev2;                /* 0x2BFC - DDR IP Block Revision 2 */
-       char    res11[512];
-       uint    data_err_inject_hi;     /* 0x2e00 - DDR Memory Data Path Error Injection Mask High */
-       uint    data_err_inject_lo;     /* 0x2e04 - DDR Memory Data Path Error Injection Mask Low */
-       uint    ecc_err_inject;         /* 0x2e08 - DDR Memory Data Path Error Injection Mask ECC */
-       char    res12[20];
-       uint    capture_data_hi;        /* 0x2e20 - DDR Memory Data Path Read Capture High */
-       uint    capture_data_lo;        /* 0x2e24 - DDR Memory Data Path Read Capture Low */
-       uint    capture_ecc;            /* 0x2e28 - DDR Memory Data Path Read Capture ECC */
-       char    res13[20];
-       uint    err_detect;             /* 0x2e40 - DDR Memory Error Detect */
-       uint    err_disable;            /* 0x2e44 - DDR Memory Error Disable */
-       uint    err_int_en;             /* 0x2e48 - DDR Memory Error Interrupt Enable */
-       uint    capture_attributes;     /* 0x2e4c - DDR Memory Error Attributes Capture */
-       uint    capture_address;        /* 0x2e50 - DDR Memory Error Address Capture */
-       uint    capture_ext_address;    /* 0x2e54 - DDR Memory Error Extended Address Capture */
-       uint    err_sbe;                /* 0x2e58 - DDR Memory Single-Bit ECC Error Management */
-       char    res14[164];
-       uint    debug_1;                /* 0x2f00 */
-       uint    debug_2;
-       uint    debug_3;
-       uint    debug_4;
-       uint    debug_5;
-       char    res15[236];
-} ccsr_ddr_t;
-
-
 /* Daul I2C Registers(0x3000-0x4000) */
 typedef struct ccsr_i2c {
        struct fsl_i2c  i2c[2];
@@ -190,51 +123,6 @@ typedef struct ccsr_duart {
        char    res5[2543];
 } ccsr_duart_t;
 
-
-/* Local Bus Controller Registers(0x5000-0x6000) */
-typedef struct ccsr_lbc {
-       uint    br0;            /* 0x5000 - LBC Base Register 0 */
-       uint    or0;            /* 0x5004 - LBC Options Register 0 */
-       uint    br1;            /* 0x5008 - LBC Base Register 1 */
-       uint    or1;            /* 0x500c - LBC Options Register 1 */
-       uint    br2;            /* 0x5010 - LBC Base Register 2 */
-       uint    or2;            /* 0x5014 - LBC Options Register 2 */
-       uint    br3;            /* 0x5018 - LBC Base Register 3 */
-       uint    or3;            /* 0x501c - LBC Options Register 3 */
-       uint    br4;            /* 0x5020 - LBC Base Register 4 */
-       uint    or4;            /* 0x5024 - LBC Options Register 4 */
-       uint    br5;            /* 0x5028 - LBC Base Register 5 */
-       uint    or5;            /* 0x502c - LBC Options Register 5 */
-       uint    br6;            /* 0x5030 - LBC Base Register 6 */
-       uint    or6;            /* 0x5034 - LBC Options Register 6 */
-       uint    br7;            /* 0x5038 - LBC Base Register 7 */
-       uint    or7;            /* 0x503c - LBC Options Register 7 */
-       char    res1[40];
-       uint    mar;            /* 0x5068 - LBC UPM Address Register */
-       char    res2[4];
-       uint    mamr;           /* 0x5070 - LBC UPMA Mode Register */
-       uint    mbmr;           /* 0x5074 - LBC UPMB Mode Register */
-       uint    mcmr;           /* 0x5078 - LBC UPMC Mode Register */
-       char    res3[8];
-       uint    mrtpr;          /* 0x5084 - LBC Memory Refresh Timer Prescaler Register */
-       uint    mdr;            /* 0x5088 - LBC UPM Data Register */
-       char    res4[8];
-       uint    lsdmr;          /* 0x5094 - LBC SDRAM Mode Register */
-       char    res5[8];
-       uint    lurt;           /* 0x50a0 - LBC UPM Refresh Timer */
-       uint    lsrt;           /* 0x50a4 - LBC SDRAM Refresh Timer */
-       char    res6[8];
-       uint    ltesr;          /* 0x50b0 - LBC Transfer Error Status Register */
-       uint    ltedr;          /* 0x50b4 - LBC Transfer Error Disable Register */
-       uint    lteir;          /* 0x50b8 - LBC Transfer Error Interrupt Register */
-       uint    lteatr;         /* 0x50bc - LBC Transfer Error Attributes Register */
-       uint    ltear;          /* 0x50c0 - LBC Transfer Error Address Register */
-       char    res7[12];
-       uint    lbcr;           /* 0x50d0 - LBC Configuration Register */
-       uint    lcrr;           /* 0x50d4 - LBC Clock Ratio Register */
-       char    res8[3880];
-} ccsr_lbc_t;
-
 /* PCI Express Registers(0x8000-0x9000) and (0x9000-0xA000) */
 typedef struct ccsr_pex {
        uint    cfg_addr;       /* 0x8000 - PEX Configuration Address Register */
@@ -1249,6 +1137,8 @@ typedef struct ccsr_gur {
 #define MPC86xx_DEVDISR_PCI1   0x80000000
 #define MPC86xx_DEVDISR_PCIE1  0x40000000
 #define MPC86xx_DEVDISR_PCIE2  0x20000000
+#define MPC86xx_DEVDISR_SRIO   0x00080000
+#define MPC86xx_DEVDISR_RMSG   0x00040000
 #define MPC86xx_DEVDISR_CPU0   0x00008000
 #define MPC86xx_DEVDISR_CPU1   0x00004000
 #define MPC86xx_RSTCR_HRST_REQ 0x00000002
@@ -1267,11 +1157,11 @@ typedef struct ccsr_wdt {
 
 typedef struct immap {
        ccsr_local_mcm_t        im_local_mcm;
-       ccsr_ddr_t              im_ddr1;
+       struct ccsr_ddr         im_ddr1;
        ccsr_i2c_t              im_i2c;
        ccsr_duart_t            im_duart;
-       ccsr_lbc_t              im_lbc;
-       ccsr_ddr_t              im_ddr2;
+       fsl_lbc_t               im_lbc;
+       struct ccsr_ddr         im_ddr2;
        char                    res1[4096];
        ccsr_pex_t              im_pex1;
        ccsr_pex_t              im_pex2;
@@ -1294,15 +1184,36 @@ typedef struct immap {
 
 extern immap_t  *immr;
 
-#define CONFIG_SYS_MPC86xx_DDR_OFFSET  (0x2000)
-#define CONFIG_SYS_MPC86xx_DDR_ADDR    (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_DDR_OFFSET)
-#define CONFIG_SYS_MPC86xx_DDR2_OFFSET (0x6000)
-#define CONFIG_SYS_MPC86xx_DDR2_ADDR   (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_DDR2_OFFSET)
-#define CONFIG_SYS_MPC86xx_DMA_OFFSET  (0x21000)
+#define CONFIG_SYS_MPC8xxx_DDR_OFFSET  0x2000
+#define CONFIG_SYS_FSL_DDR_ADDR        (CONFIG_SYS_IMMR + CONFIG_SYS_MPC8xxx_DDR_OFFSET)
+#define CONFIG_SYS_MPC8xxx_DDR2_OFFSET 0x6000
+#define CONFIG_SYS_FSL_DDR2_ADDR       (CONFIG_SYS_IMMR + CONFIG_SYS_MPC8xxx_DDR2_OFFSET)
+#define CONFIG_SYS_MPC86xx_DMA_OFFSET  0x21000
 #define CONFIG_SYS_MPC86xx_DMA_ADDR    (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_DMA_OFFSET)
+#define CONFIG_SYS_MPC86xx_PIC_OFFSET  0x40000
+#define CONFIG_SYS_MPC8xxx_PIC_ADDR    (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_PIC_OFFSET)
+
+
+#define CONFIG_SYS_MPC86xx_PCI1_OFFSET         0x8000
+#ifdef CONFIG_MPC8610
+#define CONFIG_SYS_MPC86xx_PCIE1_OFFSET         0xa000
+#else
+#define CONFIG_SYS_MPC86xx_PCIE1_OFFSET         0x8000
+#endif
+#define CONFIG_SYS_MPC86xx_PCIE2_OFFSET         0x9000
+
+#define CONFIG_SYS_PCI1_ADDR \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_PCI1_OFFSET)
+#define CONFIG_SYS_PCI2_ADDR \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_PCI2_OFFSET)
+#define CONFIG_SYS_PCIE1_ADDR \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_PCIE1_OFFSET)
+#define CONFIG_SYS_PCIE2_ADDR \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_PCIE2_OFFSET)
 
 #define CONFIG_SYS_TSEC1_OFFSET                0x24000
 #define CONFIG_SYS_MDIO1_OFFSET                0x24000
+#define CONFIG_SYS_LBC_ADDR            (&((immap_t *)CONFIG_SYS_IMMR)->im_lbc)
 
 #define TSEC_BASE_ADDR         (CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET)
 #define MDIO_BASE_ADDR         (CONFIG_SYS_IMMR + CONFIG_SYS_MDIO1_OFFSET)