vserver 1.9.5.x5
[linux-2.6.git] / include / asm-mips / gt64120.h
index 8a02ef7..2edd171 100644 (file)
@@ -1,6 +1,9 @@
 /*
- * Carsten Langgaard, carstenl@mips.com
- * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
+ * Copyright (C) 2000, 2004, 2005  MIPS Technologies, Inc.
+ *     All rights reserved.
+ *     Authors: Carsten Langgaard <carstenl@mips.com>
+ *              Maciej W. Rozycki <macro@mips.com>
+ * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
  *
  *  This program is free software; you can distribute it and/or modify it
  *  under the terms of the GNU General Public License (Version 2) as
 #ifndef _ASM_GT64120_H
 #define _ASM_GT64120_H
 
-#include <linux/config.h>
 #include <asm/addrspace.h>
 #include <asm/byteorder.h>
 
-#define MSK(n)                    ((1 << (n)) - 1)
+#define MSK(n)                 ((1 << (n)) - 1)
 
 /*
  *  Register offset addresses
  */
+/* CPU Configuration.  */
 #define GT_CPU_OFS             0x000
 
-/*
- * Interrupt Registers
- */
+#define GT_MULTI_OFS           0x120
+
+/* CPU Address Decode.  */
 #define GT_SCS10LD_OFS         0x008
 #define GT_SCS10HD_OFS         0x010
 #define GT_SCS32LD_OFS         0x018
@@ -45,6 +48,7 @@
 #define GT_PCI0M0LD_OFS                0x058
 #define GT_PCI0M0HD_OFS                0x060
 #define GT_ISD_OFS             0x068
+
 #define GT_PCI0M1LD_OFS                0x080
 #define GT_PCI0M1HD_OFS                0x088
 #define GT_PCI1IOLD_OFS                0x090
 #define GT_PCI1M0HD_OFS                0x0a8
 #define GT_PCI1M1LD_OFS                0x0b0
 #define GT_PCI1M1HD_OFS                0x0b8
+#define GT_PCI1M1LD_OFS                0x0b0
+#define GT_PCI1M1HD_OFS                0x0b8
+
+#define GT_SCS10AR_OFS         0x0d0
+#define GT_SCS32AR_OFS         0x0d8
+#define GT_CS20R_OFS           0x0e0
+#define GT_CS3BOOTR_OFS                0x0e8
 
-/*
- * GT64120A only
- */
 #define GT_PCI0IOREMAP_OFS     0x0f0
 #define GT_PCI0M0REMAP_OFS     0x0f8
 #define GT_PCI0M1REMAP_OFS     0x100
 #define GT_PCI1M0REMAP_OFS     0x110
 #define GT_PCI1M1REMAP_OFS     0x118
 
+/* CPU Error Report.  */
+#define GT_CPUERR_ADDRLO_OFS   0x070
+#define GT_CPUERR_ADDRHI_OFS   0x078
+
+#define GT_CPUERR_DATALO_OFS   0x128                   /* GT-64120A only  */
+#define GT_CPUERR_DATAHI_OFS   0x130                   /* GT-64120A only  */
+#define GT_CPUERR_PARITY_OFS   0x138                   /* GT-64120A only  */
+
+/* CPU Sync Barrier.  */
+#define GT_PCI0SYNC_OFS                0x0c0
+#define GT_PCI1SYNC_OFS                0x0c8
+
+/* SDRAM and Device Address Decode.  */
 #define GT_SCS0LD_OFS          0x400
 #define GT_SCS0HD_OFS          0x404
 #define GT_SCS1LD_OFS          0x408
 #define GT_BOOTLD_OFS          0x440
 #define GT_BOOTHD_OFS          0x444
 
-#define GT_SDRAM_B0_OFS                0x44c
+#define GT_ADERR_OFS           0x470
+
+/* SDRAM Configuration.  */
 #define GT_SDRAM_CFG_OFS       0x448
-#define GT_SDRAM_B2_OFS                0x454
+
 #define GT_SDRAM_OPMODE_OFS    0x474
 #define GT_SDRAM_BM_OFS                0x478
 #define GT_SDRAM_ADDRDECODE_OFS        0x47c
 
-#define GT_PCI0_CMD_OFS                0xc00   /* GT64120A only */
+/* SDRAM Parameters.  */
+#define GT_SDRAM_B0_OFS                0x44c
+#define GT_SDRAM_B1_OFS                0x450
+#define GT_SDRAM_B2_OFS                0x454
+#define GT_SDRAM_B3_OFS                0x458
+
+/* Device Parameters.  */
+#define GT_DEV_B0_OFS          0x45c
+#define GT_DEV_B1_OFS          0x460
+#define GT_DEV_B2_OFS          0x464
+#define GT_DEV_B3_OFS          0x468
+#define GT_DEV_BOOT_OFS                0x46c
+
+/* ECC.  */
+#define GT_ECC_ERRDATALO       0x480                   /* GT-64120A only  */
+#define GT_ECC_ERRDATAHI       0x484                   /* GT-64120A only  */
+#define GT_ECC_MEM             0x488                   /* GT-64120A only  */
+#define GT_ECC_CALC            0x48c                   /* GT-64120A only  */
+#define GT_ECC_ERRADDR         0x490                   /* GT-64120A only  */
+
+/* DMA Record.  */
+#define GT_DMA0_CNT_OFS                0x800
+#define GT_DMA1_CNT_OFS                0x804
+#define GT_DMA2_CNT_OFS                0x808
+#define GT_DMA3_CNT_OFS                0x80c
+#define GT_DMA0_SA_OFS         0x810
+#define GT_DMA1_SA_OFS         0x814
+#define GT_DMA2_SA_OFS         0x818
+#define GT_DMA3_SA_OFS         0x81c
+#define GT_DMA0_DA_OFS         0x820
+#define GT_DMA1_DA_OFS         0x824
+#define GT_DMA2_DA_OFS         0x828
+#define GT_DMA3_DA_OFS         0x82c
+#define GT_DMA0_NEXT_OFS       0x830
+#define GT_DMA1_NEXT_OFS       0x834
+#define GT_DMA2_NEXT_OFS       0x838
+#define GT_DMA3_NEXT_OFS       0x83c
+
+#define GT_DMA0_CUR_OFS                0x870
+#define GT_DMA1_CUR_OFS                0x874
+#define GT_DMA2_CUR_OFS                0x878
+#define GT_DMA3_CUR_OFS                0x87c
+
+/* DMA Channel Control.  */
+#define GT_DMA0_CTRL_OFS       0x840
+#define GT_DMA1_CTRL_OFS       0x844
+#define GT_DMA2_CTRL_OFS       0x848
+#define GT_DMA3_CTRL_OFS       0x84c
+
+/* DMA Arbiter.  */
+#define GT_DMA_ARB_OFS         0x860
+
+/* Timer/Counter.  */
+#define GT_TC0_OFS             0x850
+#define GT_TC1_OFS             0x854
+#define GT_TC2_OFS             0x858
+#define GT_TC3_OFS             0x85c
+
+#define GT_TC_CONTROL_OFS      0x864
+
+/* PCI Internal.  */
+#define GT_PCI0_CMD_OFS                0xc00
 #define GT_PCI0_TOR_OFS                0xc04
-#define GT_PCI0_BS_SCS10_OFS    0xc08
-#define GT_PCI0_BS_SCS32_OFS    0xc0c
-#define GT_INTRCAUSE_OFS       0xc18
-#define GT_INTRMASK_OFS                0xc1c   /* GT64120A only */
+#define GT_PCI0_BS_SCS10_OFS   0xc08
+#define GT_PCI0_BS_SCS32_OFS   0xc0c
+#define GT_PCI0_BS_CS20_OFS    0xc10
+#define GT_PCI0_BS_CS3BT_OFS   0xc14
+
+#define GT_PCI1_IACK_OFS       0xc30
 #define GT_PCI0_IACK_OFS       0xc34
+
 #define GT_PCI0_BARE_OFS       0xc3c
-#define GT_HINTRCAUSE_OFS      0xc98   /* GT64120A only */
-#define GT_HINTRMASK_OFS       0xc9c   /* GT64120A only */
-#define GT_PCI1_CFGADDR_OFS    0xcf0   /* GT64120A only */
-#define GT_PCI1_CFGDATA_OFS    0xcf4   /* GT64120A only */
+#define GT_PCI0_PREFMBR_OFS    0xc40
+
+#define GT_PCI0_SCS10_BAR_OFS  0xc48
+#define GT_PCI0_SCS32_BAR_OFS  0xc4c
+#define GT_PCI0_CS20_BAR_OFS   0xc50
+#define GT_PCI0_CS3BT_BAR_OFS  0xc54
+#define GT_PCI0_SSCS10_BAR_OFS 0xc58
+#define GT_PCI0_SSCS32_BAR_OFS 0xc5c
+
+#define GT_PCI0_SCS3BT_BAR_OFS 0xc64
+
+#define GT_PCI1_CMD_OFS                0xc80
+#define GT_PCI1_TOR_OFS                0xc84
+#define GT_PCI1_BS_SCS10_OFS   0xc88
+#define GT_PCI1_BS_SCS32_OFS   0xc8c
+#define GT_PCI1_BS_CS20_OFS    0xc90
+#define GT_PCI1_BS_CS3BT_OFS   0xc94
+
+#define GT_PCI1_BARE_OFS       0xcbc
+#define GT_PCI1_PREFMBR_OFS    0xcc0
+
+#define GT_PCI1_SCS10_BAR_OFS  0xcc8
+#define GT_PCI1_SCS32_BAR_OFS  0xccc
+#define GT_PCI1_CS20_BAR_OFS   0xcd0
+#define GT_PCI1_CS3BT_BAR_OFS  0xcd4
+#define GT_PCI1_SSCS10_BAR_OFS 0xcd8
+#define GT_PCI1_SSCS32_BAR_OFS 0xcdc
+
+#define GT_PCI1_SCS3BT_BAR_OFS 0xce4
+
+#define GT_PCI1_CFGADDR_OFS    0xcf0
+#define GT_PCI1_CFGDATA_OFS    0xcf4
 #define GT_PCI0_CFGADDR_OFS    0xcf8
 #define GT_PCI0_CFGDATA_OFS    0xcfc
 
+/* Interrupts.  */
+#define GT_INTRCAUSE_OFS       0xc18
+#define GT_INTRMASK_OFS                0xc1c
+
+#define GT_PCI0_ICMASK_OFS     0xc24
+#define GT_PCI0_SERR0MASK_OFS  0xc28
+
+#define GT_CPU_INTSEL_OFS      0xc70
+#define GT_PCI0_INTSEL_OFS     0xc74
+
+#define GT_HINTRCAUSE_OFS      0xc98
+#define GT_HINTRMASK_OFS       0xc9c
+
+#define GT_PCI0_HICMASK_OFS    0xca4
+#define GT_PCI1_SERR1MASK_OFS  0xca8
 
-/*
- * Timer/Counter.  GT64120A only.
- */
-#define GT_TC0_OFS             0x850
-#define GT_TC1_OFS             0x854
-#define GT_TC2_OFS             0x858
-#define GT_TC3_OFS             0x85C
-#define GT_TC_CONTROL_OFS      0x864
 
 /*
  * I2O Support Registers
 /*
  *  Register encodings
  */
-#define GT_CPU_ENDIAN_SHF       12
-#define GT_CPU_ENDIAN_MSK       (MSK(1) << GT_CPU_ENDIAN_SHF)
-#define GT_CPU_ENDIAN_BIT       GT_CPU_ENDIAN_MSK
+#define GT_CPU_ENDIAN_SHF      12
+#define GT_CPU_ENDIAN_MSK      (MSK(1) << GT_CPU_ENDIAN_SHF)
+#define GT_CPU_ENDIAN_BIT      GT_CPU_ENDIAN_MSK
 #define GT_CPU_WR_SHF          16
 #define GT_CPU_WR_MSK          (MSK(1) << GT_CPU_WR_SHF)
 #define GT_CPU_WR_BIT          GT_CPU_WR_MSK
 #define GT_CPU_WR_DDDD         1
 
 
+#define GT_PCI_DCRM_SHF                21
+#define GT_PCI_LD_SHF          0
+#define GT_PCI_LD_MSK          (MSK(15) << GT_PCI_LD_SHF)
+#define GT_PCI_HD_SHF          0
+#define GT_PCI_HD_MSK          (MSK(7) << GT_PCI_HD_SHF)
+#define GT_PCI_REMAP_SHF       0
+#define GT_PCI_REMAP_MSK       (MSK(11) << GT_PCI_REMAP_SHF)
+
+
 #define GT_CFGADDR_CFGEN_SHF   31
 #define GT_CFGADDR_CFGEN_MSK   (MSK(1) << GT_CFGADDR_CFGEN_SHF)
 #define GT_CFGADDR_CFGEN_BIT   GT_CFGADDR_CFGEN_MSK
 #define GT_SDRAM_CFG_REFINT_MSK                (MSK(14) << GT_SDRAM_CFG_REFINT_SHF)
 
 #define GT_SDRAM_CFG_NINTERLEAVE_SHF   14
-#define GT_SDRAM_CFG_NINTERLEAVE_MSK    (MSK(1) << GT_SDRAM_CFG_NINTERLEAVE_SHF)
+#define GT_SDRAM_CFG_NINTERLEAVE_MSK   (MSK(1) << GT_SDRAM_CFG_NINTERLEAVE_SHF)
 #define GT_SDRAM_CFG_NINTERLEAVE_BIT   GT_SDRAM_CFG_NINTERLEAVE_MSK
 
 #define GT_SDRAM_CFG_RMW_SHF           15
 #define GT_PCI0_CFGADDR_REGNUM_SHF     2
 #define GT_PCI0_CFGADDR_REGNUM_MSK     (MSK(6) << GT_PCI0_CFGADDR_REGNUM_SHF)
 #define GT_PCI0_CFGADDR_FUNCTNUM_SHF   8
-#define GT_PCI0_CFGADDR_FUNCTNUM_MSK    (MSK(3) << GT_PCI0_CFGADDR_FUNCTNUM_SHF)
+#define GT_PCI0_CFGADDR_FUNCTNUM_MSK   (MSK(3) << GT_PCI0_CFGADDR_FUNCTNUM_SHF)
 #define GT_PCI0_CFGADDR_DEVNUM_SHF     11
 #define GT_PCI0_CFGADDR_DEVNUM_MSK     (MSK(5) << GT_PCI0_CFGADDR_DEVNUM_SHF)
 #define GT_PCI0_CFGADDR_BUSNUM_SHF     16
 #define GT_PCI0_CFGADDR_CONFIGEN_MSK   (MSK(1) << GT_PCI0_CFGADDR_CONFIGEN_SHF)
 #define GT_PCI0_CFGADDR_CONFIGEN_BIT   GT_PCI0_CFGADDR_CONFIGEN_MSK
 
-#define GT_PCI0_CMD_MBYTESWAP_SHF       0
-#define GT_PCI0_CMD_MBYTESWAP_MSK       (MSK(1) << GT_PCI0_CMD_MBYTESWAP_SHF)
-#define GT_PCI0_CMD_MBYTESWAP_BIT       GT_PCI0_CMD_MBYTESWAP_MSK
-#define GT_PCI0_CMD_MWORDSWAP_SHF       10
-#define GT_PCI0_CMD_MWORDSWAP_MSK       (MSK(1) << GT_PCI0_CMD_MWORDSWAP_SHF)
-#define GT_PCI0_CMD_MWORDSWAP_BIT       GT_PCI0_CMD_MWORDSWAP_MSK
-#define GT_PCI0_CMD_SBYTESWAP_SHF       16
-#define GT_PCI0_CMD_SBYTESWAP_MSK       (MSK(1) << GT_PCI0_CMD_SBYTESWAP_SHF)
-#define GT_PCI0_CMD_SBYTESWAP_BIT       GT_PCI0_CMD_SBYTESWAP_MSK
-#define GT_PCI0_CMD_SWORDSWAP_SHF       11
-#define GT_PCI0_CMD_SWORDSWAP_MSK       (MSK(1) << GT_PCI0_CMD_SWORDSWAP_SHF)
-#define GT_PCI0_CMD_SWORDSWAP_BIT       GT_PCI0_CMD_SWORDSWAP_MSK
+#define GT_PCI0_CMD_MBYTESWAP_SHF      0
+#define GT_PCI0_CMD_MBYTESWAP_MSK      (MSK(1) << GT_PCI0_CMD_MBYTESWAP_SHF)
+#define GT_PCI0_CMD_MBYTESWAP_BIT      GT_PCI0_CMD_MBYTESWAP_MSK
+#define GT_PCI0_CMD_MWORDSWAP_SHF      10
+#define GT_PCI0_CMD_MWORDSWAP_MSK      (MSK(1) << GT_PCI0_CMD_MWORDSWAP_SHF)
+#define GT_PCI0_CMD_MWORDSWAP_BIT      GT_PCI0_CMD_MWORDSWAP_MSK
+#define GT_PCI0_CMD_SBYTESWAP_SHF      16
+#define GT_PCI0_CMD_SBYTESWAP_MSK      (MSK(1) << GT_PCI0_CMD_SBYTESWAP_SHF)
+#define GT_PCI0_CMD_SBYTESWAP_BIT      GT_PCI0_CMD_SBYTESWAP_MSK
+#define GT_PCI0_CMD_SWORDSWAP_SHF      11
+#define GT_PCI0_CMD_SWORDSWAP_MSK      (MSK(1) << GT_PCI0_CMD_SWORDSWAP_SHF)
+#define GT_PCI0_CMD_SWORDSWAP_BIT      GT_PCI0_CMD_SWORDSWAP_MSK
 
 /*
  *  Misc
 #define GT_DEF_PCI0_MEM0_SIZE  0x02000000UL
 #define GT_DEF_BASE            0x14000000UL
 
-#define GT_MAX_BANKSIZE                (256 * 1024 * 1024)   /* Max 256MB bank */
-#define GT_LATTIM_MIN          6                     /* Minimum lat    */
+#define GT_MAX_BANKSIZE                (256 * 1024 * 1024)     /* Max 256MB bank  */
+#define GT_LATTIM_MIN          6                       /* Minimum lat  */
 
 /*
  * The gt64120_dep.h file must define the following macros