]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/mpc8220.h
fix out of tree building with kallsyms
[karo-tx-uboot.git] / include / mpc8220.h
index d8d8bd3277b971a52fbe8d4dbb14e26a83205df7..c4900a0f1103c37100645b88099f3c813abb2516 100644 (file)
 
 /* Exception offsets (PowerPC standard) */
 #define EXC_OFF_SYS_RESET   0x0100
+#define _START_OFFSET  EXC_OFF_SYS_RESET
 
 /* Internal memory map */
 /* MPC8220 Internal Register MMAP */
-#define MMAP_MBAR      (CFG_MBAR + 0x00000000) /* chip selects              */
-#define MMAP_MEMCTL    (CFG_MBAR + 0x00000100) /* sdram controller          */
-#define MMAP_XLBARB    (CFG_MBAR + 0x00000200) /* xlb arbitration control   */
-#define MMAP_CDM       (CFG_MBAR + 0x00000300) /* clock distribution module */
-#define MMAP_VDOPLL    (CFG_MBAR + 0x00000400) /* video PLL                 */
-#define MMAP_FB                (CFG_MBAR + 0x00000500) /* flex bus controller       */
-#define MMAP_PCFG      (CFG_MBAR + 0x00000600) /* port config               */
-#define MMAP_ICTL      (CFG_MBAR + 0x00000700) /* interrupt controller      */
-#define MMAP_GPTMR     (CFG_MBAR + 0x00000800) /* general purpose timers    */
-#define MMAP_SLTMR     (CFG_MBAR + 0x00000900) /* slice timers              */
-#define MMAP_GPIO      (CFG_MBAR + 0x00000A00) /* gpio module               */
-#define MMAP_XCPCI     (CFG_MBAR + 0x00000B00) /* pci controller            */
-#define MMAP_PCIARB    (CFG_MBAR + 0x00000C00) /* pci arbiter               */
-#define MMAP_EXTDMA1   (CFG_MBAR + 0x00000D00) /* external dma1             */
-#define MMAP_EXTDMA2   (CFG_MBAR + 0x00000E00) /* external dma1             */
-#define MMAP_USBH      (CFG_MBAR + 0x00001000) /* usb host                  */
-#define MMAP_CMTMR     (CFG_MBAR + 0x00007f00) /* comm timers               */
-#define MMAP_DMA       (CFG_MBAR + 0x00008000) /* dma                       */
-#define MMAP_USBD      (CFG_MBAR + 0x00008200) /* usb device                */
-#define MMAP_COMMPCI   (CFG_MBAR + 0x00008400) /* pci comm Bus regs         */
-#define MMAP_1284      (CFG_MBAR + 0x00008500) /* 1284                      */
-#define MMAP_PEV       (CFG_MBAR + 0x00008600) /* print engine video        */
-#define MMAP_PSC1      (CFG_MBAR + 0x00008800) /* psc1 block                */
-#define MMAP_I2C       (CFG_MBAR + 0x00008f00) /* i2c controller            */
-#define MMAP_FEC1      (CFG_MBAR + 0x00009000) /* fast ethernet 1           */
-#define MMAP_FEC2      (CFG_MBAR + 0x00009800) /* fast ethernet 2           */
-#define MMAP_JBIGRAM   (CFG_MBAR + 0x0000a000) /* jbig RAM                  */
-#define MMAP_JBIG      (CFG_MBAR + 0x0000c000) /* jbig                      */
-#define MMAP_PDLA      (CFG_MBAR + 0x00010000) /*                           */
-#define MMAP_SRAMCFG   (CFG_MBAR + 0x0001ff00) /* SRAM config               */
-#define MMAP_SRAM      (CFG_MBAR + 0x00020000) /* SRAM                      */
+#define MMAP_MBAR      (CONFIG_SYS_MBAR + 0x00000000) /* chip selects               */
+#define MMAP_MEMCTL    (CONFIG_SYS_MBAR + 0x00000100) /* sdram controller           */
+#define MMAP_XLBARB    (CONFIG_SYS_MBAR + 0x00000200) /* xlb arbitration control   */
+#define MMAP_CDM       (CONFIG_SYS_MBAR + 0x00000300) /* clock distribution module */
+#define MMAP_VDOPLL    (CONFIG_SYS_MBAR + 0x00000400) /* video PLL                  */
+#define MMAP_FB                (CONFIG_SYS_MBAR + 0x00000500) /* flex bus controller        */
+#define MMAP_PCFG      (CONFIG_SYS_MBAR + 0x00000600) /* port config                */
+#define MMAP_ICTL      (CONFIG_SYS_MBAR + 0x00000700) /* interrupt controller       */
+#define MMAP_GPTMR     (CONFIG_SYS_MBAR + 0x00000800) /* general purpose timers    */
+#define MMAP_SLTMR     (CONFIG_SYS_MBAR + 0x00000900) /* slice timers               */
+#define MMAP_GPIO      (CONFIG_SYS_MBAR + 0x00000A00) /* gpio module                */
+#define MMAP_XCPCI     (CONFIG_SYS_MBAR + 0x00000B00) /* pci controller             */
+#define MMAP_PCIARB    (CONFIG_SYS_MBAR + 0x00000C00) /* pci arbiter                */
+#define MMAP_EXTDMA1   (CONFIG_SYS_MBAR + 0x00000D00) /* external dma1      */
+#define MMAP_EXTDMA2   (CONFIG_SYS_MBAR + 0x00000E00) /* external dma1      */
+#define MMAP_USBH      (CONFIG_SYS_MBAR + 0x00001000) /* usb host                   */
+#define MMAP_CMTMR     (CONFIG_SYS_MBAR + 0x00007f00) /* comm timers                */
+#define MMAP_DMA       (CONFIG_SYS_MBAR + 0x00008000) /* dma                        */
+#define MMAP_USBD      (CONFIG_SYS_MBAR + 0x00008200) /* usb device                 */
+#define MMAP_COMMPCI   (CONFIG_SYS_MBAR + 0x00008400) /* pci comm Bus regs          */
+#define MMAP_1284      (CONFIG_SYS_MBAR + 0x00008500) /* 1284                       */
+#define MMAP_PEV       (CONFIG_SYS_MBAR + 0x00008600) /* print engine video         */
+#define MMAP_PSC1      (CONFIG_SYS_MBAR + 0x00008800) /* psc1 block                 */
+#define MMAP_I2C       (CONFIG_SYS_MBAR + 0x00008f00) /* i2c controller             */
+#define MMAP_FEC1      (CONFIG_SYS_MBAR + 0x00009000) /* fast ethernet 1            */
+#define MMAP_FEC2      (CONFIG_SYS_MBAR + 0x00009800) /* fast ethernet 2            */
+#define MMAP_JBIGRAM   (CONFIG_SYS_MBAR + 0x0000a000) /* jbig RAM                   */
+#define MMAP_JBIG      (CONFIG_SYS_MBAR + 0x0000c000) /* jbig                       */
+#define MMAP_PDLA      (CONFIG_SYS_MBAR + 0x00010000) /*                            */
+#define MMAP_SRAMCFG   (CONFIG_SYS_MBAR + 0x0001ff00) /* SRAM config                */
+#define MMAP_SRAM      (CONFIG_SYS_MBAR + 0x00020000) /* SRAM                       */
 
 #define SRAM_SIZE      0x8000                  /* 32 KB */
 
 #define PSC_TFLWFPTR(x)                (x&0x1ff)     /* last write frame pointer */
 
 /* PCI configuration (only for PLL determination)*/
-#define PCI_REG_PCIGSCR        (MMAP_XCPCI + 0x60) /* Global status/control register */
+#define PCI_REG_PCIGSCR                (MMAP_XCPCI + 0x60) /* Global status/control register */
 #define PCI_REG_PCIGSCR_PCI2XLB_CLK_MASK       0x07000000
 #define PCI_REG_PCIGSCR_PCI2XLB_CLK_BIT                24
 
+#define PCI_REG_PCICAR         (MMAP_XCPCI + 0xF8) /* Configuration Address Register */
+
 /* ------------------------------------------------------------------------ */
 /*
  * Macro for General Purpose Timer
 /*
  * Port configuration
  */
-#define CFG_FEC1_PORT0_CONFIG  0x00000000
-#define CFG_FEC1_PORT1_CONFIG  0x00000000
-#define CFG_1284_PORT0_CONFIG  0x55555557
-#define CFG_1284_PORT1_CONFIG  0x80000000
-#define CFG_FEC2_PORT2_CONFIG  0x00000000
-#define CFG_PEV_PORT2_CONFIG   0x55555540
-#define CFG_GP0_PORT0_CONFIG   0xaaaaaaa0
-#define CFG_GP1_PORT2_CONFIG   0xaaaaa000
-#define CFG_PSC_PORT3_CONFIG   0x00000000
-#define CFG_CS2_PORT3_CONFIG   0x10000000
-#define CFG_CS3_PORT3_CONFIG   0x40000000
-#define CFG_CS4_PORT3_CONFIG   0x00000400
-#define CFG_CS5_PORT3_CONFIG   0x00000200
-#define CFG_I2C_PORT3_CONFIG   0x003c0000
+#define CONFIG_SYS_FEC1_PORT0_CONFIG   0x00000000
+#define CONFIG_SYS_FEC1_PORT1_CONFIG   0x00000000
+#define CONFIG_SYS_1284_PORT0_CONFIG  0x00000000
+#define CONFIG_SYS_1284_PORT1_CONFIG  0x00000000
+#define CONFIG_SYS_FEC2_PORT2_CONFIG   0x00000000
+#define CONFIG_SYS_PEV_PORT2_CONFIG   0x00000000
+#define CONFIG_SYS_GP0_PORT0_CONFIG   0x00000000
+#define CONFIG_SYS_GP1_PORT2_CONFIG   0xaaaaaac0
+#define CONFIG_SYS_PSC_PORT3_CONFIG   0x00020000
+#define CONFIG_SYS_CS1_PORT3_CONFIG   0x00000000
+#define CONFIG_SYS_CS2_PORT3_CONFIG    0x10000000
+#define CONFIG_SYS_CS3_PORT3_CONFIG    0x40000000
+#define CONFIG_SYS_CS4_PORT3_CONFIG    0x00000400
+#define CONFIG_SYS_CS5_PORT3_CONFIG    0x00000200
+#define CONFIG_SYS_PCI_PORT3_CONFIG   0x01400180
+#define CONFIG_SYS_I2C_PORT3_CONFIG   0x00000000
+#define CONFIG_SYS_GP2_PORT3_CONFIG   0x000200a0
 
 /* ------------------------------------------------------------------------ */
 /*
@@ -527,6 +533,162 @@ struct mpc8220_dma {
     u32 EU37;          /* DMA + 0xfc */
 };
 
+/*
+ * PCI Header Registers
+ */
+typedef struct mpc8220_xcpci {
+       u32     dev_ven_id;             /* 0xb00 - device/vendor ID */
+       u32     stat_cmd_reg;           /* 0xb04 - status command register */
+       u32     class_code_rev_id;      /* 0xb08 - class code / revision ID */
+       u32     bist_htyp_lat_cshl;     /* 0xb0c - BIST/HeaderType/Latency/cache line */
+       u32     base0;                  /* 0xb10 - base address 0 */
+       u32     base1;                  /* 0xb14 - base address 1 */
+       u32     reserved1[4];           /* 0xb18->0xd27 - base address 2 - 5 */
+       u32     cis;                    /* 0xb28 - cardBus CIS pointer */
+       u32     sub_sys_ven_id;         /* 0xb2c - sub system ID/ subsystem vendor ID */
+       u32     reserved2;              /* 0xb30 - expansion ROM base address */
+       u32     reserved3;              /* 0xb00 - reserved */
+       u32     reserved4;              /* 0xb00 - reserved */
+       u32     mlat_mgnt_ipl;          /* 0xb3c - MaxLat/MinGnt/ int pin/int line */
+       u32     reserved5[8];
+       /* MPC8220 specific - not accessible in PCI header space externally */
+       u32     glb_stat_ctl;           /* 0xb60 - Global Status Control */
+       u32     target_bar0;            /* 0xb64 - Target Base Address 0 */
+       u32     target_bar1;            /* 0xb68 - Target Base Address 1 */
+       u32     target_ctrl;            /* 0xb6c - Target Control */
+       u32     init_win0;              /* 0xb70 - Initiator Window 0 Base/Translation */
+       u32     init_win1;              /* 0xb74 - Initiator Window 1 Base/Translation */
+       u32     init_win2;              /* 0xb78 - Initiator Window 2 Base/Translation */
+       u32     reserved6;              /* 0xb7c - reserved  */
+       u32     init_win_cfg;           /* 0xb80 */
+       u32     init_ctrl;              /* 0xb84 */
+       u32     init_stat;              /* 0xb88 */
+       u32     reserved7[27];
+       u32     cfg_adr;                /* 0xbf8 */
+       u32     reserved8;
+} mpc8220_xcpci_t;
+
+/* PCI->XLB space translation (MPC8220 target), reg0 can address max 256MB,
+   reg1 - 1GB */
+#define PCI_BASE_ADDR_REG0                     0x40000000
+#define PCI_BASE_ADDR_REG1                     (CONFIG_SYS_SDRAM_BASE)
+#define PCI_TARGET_BASE_ADDR_REG0              (CONFIG_SYS_MBAR)
+#define PCI_TARGET_BASE_ADDR_REG1              (CONFIG_SYS_SDRAM_BASE)
+#define PCI_TARGET_BASE_ADDR_EN                        1<<0
+
+
+/* PCI Global Status/Control Register (PCIGSCR) */
+#define PCI_GLB_STAT_CTRL_PE_SHIFT             29
+#define PCI_GLB_STAT_CTRL_SE_SHIFT             28
+#define PCI_GLB_STAT_CTRL_XLB_TO_PCI_CLK_SHIFT 24
+#define PCI_GLB_STAT_CTRL_XLB_TO_PCI_CLK_MASK  0x7
+#define PCI_GLB_STAT_CTRL_IPG_TO_PCI_CLK_SHIFT 16
+#define PCI_GLB_STAT_CTRL_IPG_TO_PCI_CLK_MASK  0x7
+#define PCI_GLB_STAT_CTRL_PEE_SHIFT            13
+#define PCI_GLB_STAT_CTRL_SEE_SHIFT            12
+#define PCI_GLB_STAT_CTRL_PR_SHIFT             0
+
+#define PCI_GLB_STAT_CTRL_PE                   (1<<PCI_GLB_STAT_CTRL_PE_SHIFT)
+#define PCI_GLB_STAT_CTRL_SE                   (1<<PCI_GLB_STAT_CTRL_SE_SHIFT)
+#define PCI_GLB_STAT_CTRL_PEE                  (1<<PCI_GLB_STAT_CTRL_PEE_SHIFT)
+#define PCI_GLB_STAT_CTRL_SEE                  (1<<PCI_GLB_STAT_CTRL_SEE_SHIFT)
+#define PCI_GLB_STAT_CTRL_PR                   (1<<PCI_GLB_STAT_CTRL_PR_SHIFT)
+
+/* PCI Target Control Register (PCITCR) */
+#define PCI_TARGET_CTRL_LD_SHIFT               24
+#define PCI_TARGET_CTRL_P_SHIFT                        16
+
+#define PCI_TARGET_CTRL_LD                     (1<<PCI_TARGET_CTRL_LD_SHIFT)
+#define PCI_TARGET_CTRL_P                      (1<<PCI_TARGET_CTRL_P_SHIFT)
+
+/* PCI Initiator Window Configuration Register (PCIIWCR) */
+#define PCI_INIT_WIN_CFG_WIN0_CTRL_IO_SHIFT    27
+#define PCI_INIT_WIN_CFG_WIN0_CTRL_PRC_SHIFT   25
+#define PCI_INIT_WIN_CFG_WIN0_CTRL_PRC_MASK    0x3
+#define PCI_INIT_WIN_CFG_WIN0_CTRL_EN_SHIFT    24
+#define PCI_INIT_WIN_CFG_WIN1_CTRL_IO_SHIFT    19
+#define PCI_INIT_WIN_CFG_WIN1_CTRL_PRC_SHIFT   17
+#define PCI_INIT_WIN_CFG_WIN1_CTRL_PRC_MASK    0x3
+#define PCI_INIT_WIN_CFG_WIN1_CTRL_EN_SHIFT    16
+#define PCI_INIT_WIN_CFG_WIN2_CTRL_IO_SHIFT    11
+#define PCI_INIT_WIN_CFG_WIN2_CTRL_PRC_SHIFT   9
+#define PCI_INIT_WIN_CFG_WIN2_CTRL_PRC_MASK    0x3
+#define PCI_INIT_WIN_CFG_WIN2_CTRL_EN_SHIFT    8
+
+#define PCI_INIT_WIN_CFG_WIN_MEM_READ          0x0
+#define PCI_INIT_WIN_CFG_WIN_MEM_READ_LINE     0x1
+#define PCI_INIT_WIN_CFG_WIN_MEM_READ_MULTIPLE 0x2
+
+#define PCI_INIT_WIN_CFG_WIN0_CTRL_IO          (1<<PCI_INIT_WIN_CFG_WIN0_CTRL_IO_SHIFT)
+#define PCI_INIT_WIN_CFG_WIN0_CTRL_EN          (1<<PCI_INIT_WIN_CFG_WIN0_CTRL_EN_SHIFT)
+#define PCI_INIT_WIN_CFG_WIN1_CTRL_IO          (1<<PCI_INIT_WIN_CFG_WIN1_CTRL_IO_SHIFT)
+#define PCI_INIT_WIN_CFG_WIN1_CTRL_EN          (1<<PCI_INIT_WIN_CFG_WIN1_CTRL_EN_SHIFT)
+#define PCI_INIT_WIN_CFG_WIN2_CTRL_IO          (1<<PCI_INIT_WIN_CFG_WIN2_CTRL_IO_SHIFT)
+#define PCI_INIT_WIN_CFG_WIN2_CTRL_EN          (1<<PCI_INIT_WIN_CFG_WIN2_CTRL_EN_SHIFT)
+
+/* PCI Initiator Control Register (PCIICR) */
+#define PCI_INIT_CTRL_REE_SHIFT                        26
+#define PCI_INIT_CTRL_IAE_SHIFT                        25
+#define PCI_INIT_CTRL_TAE_SHIFT                        24
+#define PCI_INIT_CTRL_MAX_RETRIES_SHIFT                0
+#define PCI_INIT_CTRL_MAX_RETRIES_MASK         0xff
+
+#define PCI_INIT_CTRL_REE                      (1<<PCI_INIT_CTRL_REE_SHIFT)
+#define PCI_INIT_CTRL_IAE                      (1<<PCI_INIT_CTRL_IAE_SHIFT)
+#define PCI_INIT_CTRL_TAE                      (1<<PCI_INIT_CTRL_TAE_SHIFT)
+
+/* PCI Status/Command Register (PCISCR) - PCI Dword 1 */
+#define PCI_STAT_CMD_PE_SHIFT                  31
+#define PCI_STAT_CMD_SE_SHIFT                  30
+#define PCI_STAT_CMD_MA_SHIFT                  29
+#define PCI_STAT_CMD_TR_SHIFT                  28
+#define PCI_STAT_CMD_TS_SHIFT                  27
+#define PCI_STAT_CMD_DT_SHIFT                  25
+#define PCI_STAT_CMD_DT_MASK                   0x3
+#define PCI_STAT_CMD_DP_SHIFT                  24
+#define PCI_STAT_CMD_FC_SHIFT                  23
+#define PCI_STAT_CMD_R_SHIFT                   22
+#define PCI_STAT_CMD_66M_SHIFT                 21
+#define PCI_STAT_CMD_C_SHIFT                   20
+#define PCI_STAT_CMD_F_SHIFT                   9
+#define PCI_STAT_CMD_S_SHIFT                   8
+#define PCI_STAT_CMD_ST_SHIFT                  7
+#define PCI_STAT_CMD_PER_SHIFT                 6
+#define PCI_STAT_CMD_V_SHIFT                   5
+#define PCI_STAT_CMD_MW_SHIFT                  4
+#define PCI_STAT_CMD_SP_SHIFT                  3
+#define PCI_STAT_CMD_B_SHIFT                   2
+#define PCI_STAT_CMD_M_SHIFT                   1
+#define PCI_STAT_CMD_IO_SHIFT                  0
+
+#define PCI_STAT_CMD_PE                        (1<<PCI_STAT_CMD_PE_SHIFT)
+#define PCI_STAT_CMD_SE                        (1<<PCI_STAT_CMD_SE_SHIFT)
+#define PCI_STAT_CMD_MA                        (1<<PCI_STAT_CMD_MA_SHIFT)
+#define PCI_STAT_CMD_TR                        (1<<PCI_STAT_CMD_TR_SHIFT)
+#define PCI_STAT_CMD_TS                        (1<<PCI_STAT_CMD_TS_SHIFT)
+#define PCI_STAT_CMD_DP                        (1<<PCI_STAT_CMD_DP_SHIFT)
+#define PCI_STAT_CMD_FC                        (1<<PCI_STAT_CMD_FC_SHIFT)
+#define PCI_STAT_CMD_R                         (1<<PCI_STAT_CMD_R_SHIFT)
+#define PCI_STAT_CMD_66M                       (1<<PCI_STAT_CMD_66M_SHIFT)
+#define PCI_STAT_CMD_C                         (1<<PCI_STAT_CMD_C_SHIFT)
+#define PCI_STAT_CMD_F                         (1<<PCI_STAT_CMD_F_SHIFT)
+#define PCI_STAT_CMD_S                         (1<<PCI_STAT_CMD_S_SHIFT)
+#define PCI_STAT_CMD_ST                        (1<<PCI_STAT_CMD_ST_SHIFT)
+#define PCI_STAT_CMD_PER                       (1<<PCI_STAT_CMD_PER_SHIFT)
+#define PCI_STAT_CMD_V                         (1<<PCI_STAT_CMD_V_SHIFT)
+#define PCI_STAT_CMD_MW                        (1<<PCI_STAT_CMD_MW_SHIFT)
+#define PCI_STAT_CMD_SP                        (1<<PCI_STAT_CMD_SP_SHIFT)
+#define PCI_STAT_CMD_B                         (1<<PCI_STAT_CMD_B_SHIFT)
+#define PCI_STAT_CMD_M                         (1<<PCI_STAT_CMD_M_SHIFT)
+#define PCI_STAT_CMD_IO                        (1<<PCI_STAT_CMD_IO_SHIFT)
+
+/* PCI Configuration 1 Register (PCICR1) - PCI Dword 3 */
+#define PCI_CFG1_HT_SHIFT                      16
+#define PCI_CFG1_HT_MASK                       0xff
+#define PCI_CFG1_LT_SHIFT                      8
+#define PCI_CFG1_LT_MASK                       0xff
+#define PCI_CFG1_CLS_SHIFT                     0
+#define PCI_CFG1_CLS_MASK                      0xf
 
 /* function prototypes */
 void loadtask(int basetask, int tasks);