Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (C) 2000, 2004, 2005  MIPS Technologies, Inc.
0004  *  All rights reserved.
0005  *  Authors: Carsten Langgaard <carstenl@mips.com>
0006  *       Maciej W. Rozycki <macro@mips.com>
0007  * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
0008  */
0009 #ifndef _ASM_GT64120_H
0010 #define _ASM_GT64120_H
0011 
0012 #include <asm/addrspace.h>
0013 #include <asm/byteorder.h>
0014 
0015 #define MSK(n)          ((1 << (n)) - 1)
0016 
0017 /*
0018  *  Register offset addresses
0019  */
0020 /* CPU Configuration.  */
0021 #define GT_CPU_OFS      0x000
0022 
0023 #define GT_MULTI_OFS        0x120
0024 
0025 /* CPU Address Decode.  */
0026 #define GT_SCS10LD_OFS      0x008
0027 #define GT_SCS10HD_OFS      0x010
0028 #define GT_SCS32LD_OFS      0x018
0029 #define GT_SCS32HD_OFS      0x020
0030 #define GT_CS20LD_OFS       0x028
0031 #define GT_CS20HD_OFS       0x030
0032 #define GT_CS3BOOTLD_OFS    0x038
0033 #define GT_CS3BOOTHD_OFS    0x040
0034 #define GT_PCI0IOLD_OFS     0x048
0035 #define GT_PCI0IOHD_OFS     0x050
0036 #define GT_PCI0M0LD_OFS     0x058
0037 #define GT_PCI0M0HD_OFS     0x060
0038 #define GT_ISD_OFS      0x068
0039 
0040 #define GT_PCI0M1LD_OFS     0x080
0041 #define GT_PCI0M1HD_OFS     0x088
0042 #define GT_PCI1IOLD_OFS     0x090
0043 #define GT_PCI1IOHD_OFS     0x098
0044 #define GT_PCI1M0LD_OFS     0x0a0
0045 #define GT_PCI1M0HD_OFS     0x0a8
0046 #define GT_PCI1M1LD_OFS     0x0b0
0047 #define GT_PCI1M1HD_OFS     0x0b8
0048 #define GT_PCI1M1LD_OFS     0x0b0
0049 #define GT_PCI1M1HD_OFS     0x0b8
0050 
0051 #define GT_SCS10AR_OFS      0x0d0
0052 #define GT_SCS32AR_OFS      0x0d8
0053 #define GT_CS20R_OFS        0x0e0
0054 #define GT_CS3BOOTR_OFS     0x0e8
0055 
0056 #define GT_PCI0IOREMAP_OFS  0x0f0
0057 #define GT_PCI0M0REMAP_OFS  0x0f8
0058 #define GT_PCI0M1REMAP_OFS  0x100
0059 #define GT_PCI1IOREMAP_OFS  0x108
0060 #define GT_PCI1M0REMAP_OFS  0x110
0061 #define GT_PCI1M1REMAP_OFS  0x118
0062 
0063 /* CPU Error Report.  */
0064 #define GT_CPUERR_ADDRLO_OFS    0x070
0065 #define GT_CPUERR_ADDRHI_OFS    0x078
0066 
0067 #define GT_CPUERR_DATALO_OFS    0x128           /* GT-64120A only  */
0068 #define GT_CPUERR_DATAHI_OFS    0x130           /* GT-64120A only  */
0069 #define GT_CPUERR_PARITY_OFS    0x138           /* GT-64120A only  */
0070 
0071 /* CPU Sync Barrier.  */
0072 #define GT_PCI0SYNC_OFS     0x0c0
0073 #define GT_PCI1SYNC_OFS     0x0c8
0074 
0075 /* SDRAM and Device Address Decode.  */
0076 #define GT_SCS0LD_OFS       0x400
0077 #define GT_SCS0HD_OFS       0x404
0078 #define GT_SCS1LD_OFS       0x408
0079 #define GT_SCS1HD_OFS       0x40c
0080 #define GT_SCS2LD_OFS       0x410
0081 #define GT_SCS2HD_OFS       0x414
0082 #define GT_SCS3LD_OFS       0x418
0083 #define GT_SCS3HD_OFS       0x41c
0084 #define GT_CS0LD_OFS        0x420
0085 #define GT_CS0HD_OFS        0x424
0086 #define GT_CS1LD_OFS        0x428
0087 #define GT_CS1HD_OFS        0x42c
0088 #define GT_CS2LD_OFS        0x430
0089 #define GT_CS2HD_OFS        0x434
0090 #define GT_CS3LD_OFS        0x438
0091 #define GT_CS3HD_OFS        0x43c
0092 #define GT_BOOTLD_OFS       0x440
0093 #define GT_BOOTHD_OFS       0x444
0094 
0095 #define GT_ADERR_OFS        0x470
0096 
0097 /* SDRAM Configuration.  */
0098 #define GT_SDRAM_CFG_OFS    0x448
0099 
0100 #define GT_SDRAM_OPMODE_OFS 0x474
0101 #define GT_SDRAM_BM_OFS     0x478
0102 #define GT_SDRAM_ADDRDECODE_OFS 0x47c
0103 
0104 /* SDRAM Parameters.  */
0105 #define GT_SDRAM_B0_OFS     0x44c
0106 #define GT_SDRAM_B1_OFS     0x450
0107 #define GT_SDRAM_B2_OFS     0x454
0108 #define GT_SDRAM_B3_OFS     0x458
0109 
0110 /* Device Parameters.  */
0111 #define GT_DEV_B0_OFS       0x45c
0112 #define GT_DEV_B1_OFS       0x460
0113 #define GT_DEV_B2_OFS       0x464
0114 #define GT_DEV_B3_OFS       0x468
0115 #define GT_DEV_BOOT_OFS     0x46c
0116 
0117 /* ECC.  */
0118 #define GT_ECC_ERRDATALO    0x480           /* GT-64120A only  */
0119 #define GT_ECC_ERRDATAHI    0x484           /* GT-64120A only  */
0120 #define GT_ECC_MEM      0x488           /* GT-64120A only  */
0121 #define GT_ECC_CALC     0x48c           /* GT-64120A only  */
0122 #define GT_ECC_ERRADDR      0x490           /* GT-64120A only  */
0123 
0124 /* DMA Record.  */
0125 #define GT_DMA0_CNT_OFS     0x800
0126 #define GT_DMA1_CNT_OFS     0x804
0127 #define GT_DMA2_CNT_OFS     0x808
0128 #define GT_DMA3_CNT_OFS     0x80c
0129 #define GT_DMA0_SA_OFS      0x810
0130 #define GT_DMA1_SA_OFS      0x814
0131 #define GT_DMA2_SA_OFS      0x818
0132 #define GT_DMA3_SA_OFS      0x81c
0133 #define GT_DMA0_DA_OFS      0x820
0134 #define GT_DMA1_DA_OFS      0x824
0135 #define GT_DMA2_DA_OFS      0x828
0136 #define GT_DMA3_DA_OFS      0x82c
0137 #define GT_DMA0_NEXT_OFS    0x830
0138 #define GT_DMA1_NEXT_OFS    0x834
0139 #define GT_DMA2_NEXT_OFS    0x838
0140 #define GT_DMA3_NEXT_OFS    0x83c
0141 
0142 #define GT_DMA0_CUR_OFS     0x870
0143 #define GT_DMA1_CUR_OFS     0x874
0144 #define GT_DMA2_CUR_OFS     0x878
0145 #define GT_DMA3_CUR_OFS     0x87c
0146 
0147 /* DMA Channel Control.  */
0148 #define GT_DMA0_CTRL_OFS    0x840
0149 #define GT_DMA1_CTRL_OFS    0x844
0150 #define GT_DMA2_CTRL_OFS    0x848
0151 #define GT_DMA3_CTRL_OFS    0x84c
0152 
0153 /* DMA Arbiter.  */
0154 #define GT_DMA_ARB_OFS      0x860
0155 
0156 /* Timer/Counter.  */
0157 #define GT_TC0_OFS      0x850
0158 #define GT_TC1_OFS      0x854
0159 #define GT_TC2_OFS      0x858
0160 #define GT_TC3_OFS      0x85c
0161 
0162 #define GT_TC_CONTROL_OFS   0x864
0163 
0164 /* PCI Internal.  */
0165 #define GT_PCI0_CMD_OFS     0xc00
0166 #define GT_PCI0_TOR_OFS     0xc04
0167 #define GT_PCI0_BS_SCS10_OFS    0xc08
0168 #define GT_PCI0_BS_SCS32_OFS    0xc0c
0169 #define GT_PCI0_BS_CS20_OFS 0xc10
0170 #define GT_PCI0_BS_CS3BT_OFS    0xc14
0171 
0172 #define GT_PCI1_IACK_OFS    0xc30
0173 #define GT_PCI0_IACK_OFS    0xc34
0174 
0175 #define GT_PCI0_BARE_OFS    0xc3c
0176 #define GT_PCI0_PREFMBR_OFS 0xc40
0177 
0178 #define GT_PCI0_SCS10_BAR_OFS   0xc48
0179 #define GT_PCI0_SCS32_BAR_OFS   0xc4c
0180 #define GT_PCI0_CS20_BAR_OFS    0xc50
0181 #define GT_PCI0_CS3BT_BAR_OFS   0xc54
0182 #define GT_PCI0_SSCS10_BAR_OFS  0xc58
0183 #define GT_PCI0_SSCS32_BAR_OFS  0xc5c
0184 
0185 #define GT_PCI0_SCS3BT_BAR_OFS  0xc64
0186 
0187 #define GT_PCI1_CMD_OFS     0xc80
0188 #define GT_PCI1_TOR_OFS     0xc84
0189 #define GT_PCI1_BS_SCS10_OFS    0xc88
0190 #define GT_PCI1_BS_SCS32_OFS    0xc8c
0191 #define GT_PCI1_BS_CS20_OFS 0xc90
0192 #define GT_PCI1_BS_CS3BT_OFS    0xc94
0193 
0194 #define GT_PCI1_BARE_OFS    0xcbc
0195 #define GT_PCI1_PREFMBR_OFS 0xcc0
0196 
0197 #define GT_PCI1_SCS10_BAR_OFS   0xcc8
0198 #define GT_PCI1_SCS32_BAR_OFS   0xccc
0199 #define GT_PCI1_CS20_BAR_OFS    0xcd0
0200 #define GT_PCI1_CS3BT_BAR_OFS   0xcd4
0201 #define GT_PCI1_SSCS10_BAR_OFS  0xcd8
0202 #define GT_PCI1_SSCS32_BAR_OFS  0xcdc
0203 
0204 #define GT_PCI1_SCS3BT_BAR_OFS  0xce4
0205 
0206 #define GT_PCI1_CFGADDR_OFS 0xcf0
0207 #define GT_PCI1_CFGDATA_OFS 0xcf4
0208 #define GT_PCI0_CFGADDR_OFS 0xcf8
0209 #define GT_PCI0_CFGDATA_OFS 0xcfc
0210 
0211 /* Interrupts.  */
0212 #define GT_INTRCAUSE_OFS    0xc18
0213 #define GT_INTRMASK_OFS     0xc1c
0214 
0215 #define GT_PCI0_ICMASK_OFS  0xc24
0216 #define GT_PCI0_SERR0MASK_OFS   0xc28
0217 
0218 #define GT_CPU_INTSEL_OFS   0xc70
0219 #define GT_PCI0_INTSEL_OFS  0xc74
0220 
0221 #define GT_HINTRCAUSE_OFS   0xc98
0222 #define GT_HINTRMASK_OFS    0xc9c
0223 
0224 #define GT_PCI0_HICMASK_OFS 0xca4
0225 #define GT_PCI1_SERR1MASK_OFS   0xca8
0226 
0227 
0228 /*
0229  * I2O Support Registers
0230  */
0231 #define INBOUND_MESSAGE_REGISTER0_PCI_SIDE      0x010
0232 #define INBOUND_MESSAGE_REGISTER1_PCI_SIDE      0x014
0233 #define OUTBOUND_MESSAGE_REGISTER0_PCI_SIDE     0x018
0234 #define OUTBOUND_MESSAGE_REGISTER1_PCI_SIDE     0x01c
0235 #define INBOUND_DOORBELL_REGISTER_PCI_SIDE      0x020
0236 #define INBOUND_INTERRUPT_CAUSE_REGISTER_PCI_SIDE   0x024
0237 #define INBOUND_INTERRUPT_MASK_REGISTER_PCI_SIDE    0x028
0238 #define OUTBOUND_DOORBELL_REGISTER_PCI_SIDE     0x02c
0239 #define OUTBOUND_INTERRUPT_CAUSE_REGISTER_PCI_SIDE  0x030
0240 #define OUTBOUND_INTERRUPT_MASK_REGISTER_PCI_SIDE   0x034
0241 #define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI_SIDE    0x040
0242 #define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI_SIDE   0x044
0243 #define QUEUE_CONTROL_REGISTER_PCI_SIDE         0x050
0244 #define QUEUE_BASE_ADDRESS_REGISTER_PCI_SIDE        0x054
0245 #define INBOUND_FREE_HEAD_POINTER_REGISTER_PCI_SIDE 0x060
0246 #define INBOUND_FREE_TAIL_POINTER_REGISTER_PCI_SIDE 0x064
0247 #define INBOUND_POST_HEAD_POINTER_REGISTER_PCI_SIDE 0x068
0248 #define INBOUND_POST_TAIL_POINTER_REGISTER_PCI_SIDE 0x06c
0249 #define OUTBOUND_FREE_HEAD_POINTER_REGISTER_PCI_SIDE    0x070
0250 #define OUTBOUND_FREE_TAIL_POINTER_REGISTER_PCI_SIDE    0x074
0251 #define OUTBOUND_POST_HEAD_POINTER_REGISTER_PCI_SIDE    0x078
0252 #define OUTBOUND_POST_TAIL_POINTER_REGISTER_PCI_SIDE    0x07c
0253 
0254 #define INBOUND_MESSAGE_REGISTER0_CPU_SIDE      0x1c10
0255 #define INBOUND_MESSAGE_REGISTER1_CPU_SIDE      0x1c14
0256 #define OUTBOUND_MESSAGE_REGISTER0_CPU_SIDE     0x1c18
0257 #define OUTBOUND_MESSAGE_REGISTER1_CPU_SIDE     0x1c1c
0258 #define INBOUND_DOORBELL_REGISTER_CPU_SIDE      0x1c20
0259 #define INBOUND_INTERRUPT_CAUSE_REGISTER_CPU_SIDE   0x1c24
0260 #define INBOUND_INTERRUPT_MASK_REGISTER_CPU_SIDE    0x1c28
0261 #define OUTBOUND_DOORBELL_REGISTER_CPU_SIDE     0x1c2c
0262 #define OUTBOUND_INTERRUPT_CAUSE_REGISTER_CPU_SIDE  0x1c30
0263 #define OUTBOUND_INTERRUPT_MASK_REGISTER_CPU_SIDE   0x1c34
0264 #define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU_SIDE    0x1c40
0265 #define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU_SIDE   0x1c44
0266 #define QUEUE_CONTROL_REGISTER_CPU_SIDE         0x1c50
0267 #define QUEUE_BASE_ADDRESS_REGISTER_CPU_SIDE        0x1c54
0268 #define INBOUND_FREE_HEAD_POINTER_REGISTER_CPU_SIDE 0x1c60
0269 #define INBOUND_FREE_TAIL_POINTER_REGISTER_CPU_SIDE 0x1c64
0270 #define INBOUND_POST_HEAD_POINTER_REGISTER_CPU_SIDE 0x1c68
0271 #define INBOUND_POST_TAIL_POINTER_REGISTER_CPU_SIDE 0x1c6c
0272 #define OUTBOUND_FREE_HEAD_POINTER_REGISTER_CPU_SIDE    0x1c70
0273 #define OUTBOUND_FREE_TAIL_POINTER_REGISTER_CPU_SIDE    0x1c74
0274 #define OUTBOUND_POST_HEAD_POINTER_REGISTER_CPU_SIDE    0x1c78
0275 #define OUTBOUND_POST_TAIL_POINTER_REGISTER_CPU_SIDE    0x1c7c
0276 
0277 /*
0278  *  Register encodings
0279  */
0280 #define GT_CPU_ENDIAN_SHF   12
0281 #define GT_CPU_ENDIAN_MSK   (MSK(1) << GT_CPU_ENDIAN_SHF)
0282 #define GT_CPU_ENDIAN_BIT   GT_CPU_ENDIAN_MSK
0283 #define GT_CPU_WR_SHF       16
0284 #define GT_CPU_WR_MSK       (MSK(1) << GT_CPU_WR_SHF)
0285 #define GT_CPU_WR_BIT       GT_CPU_WR_MSK
0286 #define GT_CPU_WR_DXDXDXDX  0
0287 #define GT_CPU_WR_DDDD      1
0288 
0289 
0290 #define GT_PCI_DCRM_SHF     21
0291 #define GT_PCI_LD_SHF       0
0292 #define GT_PCI_LD_MSK       (MSK(15) << GT_PCI_LD_SHF)
0293 #define GT_PCI_HD_SHF       0
0294 #define GT_PCI_HD_MSK       (MSK(7) << GT_PCI_HD_SHF)
0295 #define GT_PCI_REMAP_SHF    0
0296 #define GT_PCI_REMAP_MSK    (MSK(11) << GT_PCI_REMAP_SHF)
0297 
0298 
0299 #define GT_CFGADDR_CFGEN_SHF    31
0300 #define GT_CFGADDR_CFGEN_MSK    (MSK(1) << GT_CFGADDR_CFGEN_SHF)
0301 #define GT_CFGADDR_CFGEN_BIT    GT_CFGADDR_CFGEN_MSK
0302 
0303 #define GT_CFGADDR_BUSNUM_SHF   16
0304 #define GT_CFGADDR_BUSNUM_MSK   (MSK(8) << GT_CFGADDR_BUSNUM_SHF)
0305 
0306 #define GT_CFGADDR_DEVNUM_SHF   11
0307 #define GT_CFGADDR_DEVNUM_MSK   (MSK(5) << GT_CFGADDR_DEVNUM_SHF)
0308 
0309 #define GT_CFGADDR_FUNCNUM_SHF  8
0310 #define GT_CFGADDR_FUNCNUM_MSK  (MSK(3) << GT_CFGADDR_FUNCNUM_SHF)
0311 
0312 #define GT_CFGADDR_REGNUM_SHF   2
0313 #define GT_CFGADDR_REGNUM_MSK   (MSK(6) << GT_CFGADDR_REGNUM_SHF)
0314 
0315 
0316 #define GT_SDRAM_BM_ORDER_SHF   2
0317 #define GT_SDRAM_BM_ORDER_MSK   (MSK(1) << GT_SDRAM_BM_ORDER_SHF)
0318 #define GT_SDRAM_BM_ORDER_BIT   GT_SDRAM_BM_ORDER_MSK
0319 #define GT_SDRAM_BM_ORDER_SUB   1
0320 #define GT_SDRAM_BM_ORDER_LIN   0
0321 
0322 #define GT_SDRAM_BM_RSVD_ALL1   0xffb
0323 
0324 
0325 #define GT_SDRAM_ADDRDECODE_ADDR_SHF    0
0326 #define GT_SDRAM_ADDRDECODE_ADDR_MSK    (MSK(3) << GT_SDRAM_ADDRDECODE_ADDR_SHF)
0327 #define GT_SDRAM_ADDRDECODE_ADDR_0  0
0328 #define GT_SDRAM_ADDRDECODE_ADDR_1  1
0329 #define GT_SDRAM_ADDRDECODE_ADDR_2  2
0330 #define GT_SDRAM_ADDRDECODE_ADDR_3  3
0331 #define GT_SDRAM_ADDRDECODE_ADDR_4  4
0332 #define GT_SDRAM_ADDRDECODE_ADDR_5  5
0333 #define GT_SDRAM_ADDRDECODE_ADDR_6  6
0334 #define GT_SDRAM_ADDRDECODE_ADDR_7  7
0335 
0336 
0337 #define GT_SDRAM_B0_CASLAT_SHF      0
0338 #define GT_SDRAM_B0_CASLAT_MSK      (MSK(2) << GT_SDRAM_B0__SHF)
0339 #define GT_SDRAM_B0_CASLAT_2        1
0340 #define GT_SDRAM_B0_CASLAT_3        2
0341 
0342 #define GT_SDRAM_B0_FTDIS_SHF       2
0343 #define GT_SDRAM_B0_FTDIS_MSK       (MSK(1) << GT_SDRAM_B0_FTDIS_SHF)
0344 #define GT_SDRAM_B0_FTDIS_BIT       GT_SDRAM_B0_FTDIS_MSK
0345 
0346 #define GT_SDRAM_B0_SRASPRCHG_SHF   3
0347 #define GT_SDRAM_B0_SRASPRCHG_MSK   (MSK(1) << GT_SDRAM_B0_SRASPRCHG_SHF)
0348 #define GT_SDRAM_B0_SRASPRCHG_BIT   GT_SDRAM_B0_SRASPRCHG_MSK
0349 #define GT_SDRAM_B0_SRASPRCHG_2     0
0350 #define GT_SDRAM_B0_SRASPRCHG_3     1
0351 
0352 #define GT_SDRAM_B0_B0COMPAB_SHF    4
0353 #define GT_SDRAM_B0_B0COMPAB_MSK    (MSK(1) << GT_SDRAM_B0_B0COMPAB_SHF)
0354 #define GT_SDRAM_B0_B0COMPAB_BIT    GT_SDRAM_B0_B0COMPAB_MSK
0355 
0356 #define GT_SDRAM_B0_64BITINT_SHF    5
0357 #define GT_SDRAM_B0_64BITINT_MSK    (MSK(1) << GT_SDRAM_B0_64BITINT_SHF)
0358 #define GT_SDRAM_B0_64BITINT_BIT    GT_SDRAM_B0_64BITINT_MSK
0359 #define GT_SDRAM_B0_64BITINT_2      0
0360 #define GT_SDRAM_B0_64BITINT_4      1
0361 
0362 #define GT_SDRAM_B0_BW_SHF      6
0363 #define GT_SDRAM_B0_BW_MSK      (MSK(1) << GT_SDRAM_B0_BW_SHF)
0364 #define GT_SDRAM_B0_BW_BIT      GT_SDRAM_B0_BW_MSK
0365 #define GT_SDRAM_B0_BW_32       0
0366 #define GT_SDRAM_B0_BW_64       1
0367 
0368 #define GT_SDRAM_B0_BLODD_SHF       7
0369 #define GT_SDRAM_B0_BLODD_MSK       (MSK(1) << GT_SDRAM_B0_BLODD_SHF)
0370 #define GT_SDRAM_B0_BLODD_BIT       GT_SDRAM_B0_BLODD_MSK
0371 
0372 #define GT_SDRAM_B0_PAR_SHF     8
0373 #define GT_SDRAM_B0_PAR_MSK     (MSK(1) << GT_SDRAM_B0_PAR_SHF)
0374 #define GT_SDRAM_B0_PAR_BIT     GT_SDRAM_B0_PAR_MSK
0375 
0376 #define GT_SDRAM_B0_BYPASS_SHF      9
0377 #define GT_SDRAM_B0_BYPASS_MSK      (MSK(1) << GT_SDRAM_B0_BYPASS_SHF)
0378 #define GT_SDRAM_B0_BYPASS_BIT      GT_SDRAM_B0_BYPASS_MSK
0379 
0380 #define GT_SDRAM_B0_SRAS2SCAS_SHF   10
0381 #define GT_SDRAM_B0_SRAS2SCAS_MSK   (MSK(1) << GT_SDRAM_B0_SRAS2SCAS_SHF)
0382 #define GT_SDRAM_B0_SRAS2SCAS_BIT   GT_SDRAM_B0_SRAS2SCAS_MSK
0383 #define GT_SDRAM_B0_SRAS2SCAS_2     0
0384 #define GT_SDRAM_B0_SRAS2SCAS_3     1
0385 
0386 #define GT_SDRAM_B0_SIZE_SHF        11
0387 #define GT_SDRAM_B0_SIZE_MSK        (MSK(1) << GT_SDRAM_B0_SIZE_SHF)
0388 #define GT_SDRAM_B0_SIZE_BIT        GT_SDRAM_B0_SIZE_MSK
0389 #define GT_SDRAM_B0_SIZE_16M        0
0390 #define GT_SDRAM_B0_SIZE_64M        1
0391 
0392 #define GT_SDRAM_B0_EXTPAR_SHF      12
0393 #define GT_SDRAM_B0_EXTPAR_MSK      (MSK(1) << GT_SDRAM_B0_EXTPAR_SHF)
0394 #define GT_SDRAM_B0_EXTPAR_BIT      GT_SDRAM_B0_EXTPAR_MSK
0395 
0396 #define GT_SDRAM_B0_BLEN_SHF        13
0397 #define GT_SDRAM_B0_BLEN_MSK        (MSK(1) << GT_SDRAM_B0_BLEN_SHF)
0398 #define GT_SDRAM_B0_BLEN_BIT        GT_SDRAM_B0_BLEN_MSK
0399 #define GT_SDRAM_B0_BLEN_8      0
0400 #define GT_SDRAM_B0_BLEN_4      1
0401 
0402 
0403 #define GT_SDRAM_CFG_REFINT_SHF     0
0404 #define GT_SDRAM_CFG_REFINT_MSK     (MSK(14) << GT_SDRAM_CFG_REFINT_SHF)
0405 
0406 #define GT_SDRAM_CFG_NINTERLEAVE_SHF    14
0407 #define GT_SDRAM_CFG_NINTERLEAVE_MSK    (MSK(1) << GT_SDRAM_CFG_NINTERLEAVE_SHF)
0408 #define GT_SDRAM_CFG_NINTERLEAVE_BIT    GT_SDRAM_CFG_NINTERLEAVE_MSK
0409 
0410 #define GT_SDRAM_CFG_RMW_SHF        15
0411 #define GT_SDRAM_CFG_RMW_MSK        (MSK(1) << GT_SDRAM_CFG_RMW_SHF)
0412 #define GT_SDRAM_CFG_RMW_BIT        GT_SDRAM_CFG_RMW_MSK
0413 
0414 #define GT_SDRAM_CFG_NONSTAGREF_SHF 16
0415 #define GT_SDRAM_CFG_NONSTAGREF_MSK (MSK(1) << GT_SDRAM_CFG_NONSTAGREF_SHF)
0416 #define GT_SDRAM_CFG_NONSTAGREF_BIT GT_SDRAM_CFG_NONSTAGREF_MSK
0417 
0418 #define GT_SDRAM_CFG_DUPCNTL_SHF    19
0419 #define GT_SDRAM_CFG_DUPCNTL_MSK    (MSK(1) << GT_SDRAM_CFG_DUPCNTL_SHF)
0420 #define GT_SDRAM_CFG_DUPCNTL_BIT    GT_SDRAM_CFG_DUPCNTL_MSK
0421 
0422 #define GT_SDRAM_CFG_DUPBA_SHF      20
0423 #define GT_SDRAM_CFG_DUPBA_MSK      (MSK(1) << GT_SDRAM_CFG_DUPBA_SHF)
0424 #define GT_SDRAM_CFG_DUPBA_BIT      GT_SDRAM_CFG_DUPBA_MSK
0425 
0426 #define GT_SDRAM_CFG_DUPEOT0_SHF    21
0427 #define GT_SDRAM_CFG_DUPEOT0_MSK    (MSK(1) << GT_SDRAM_CFG_DUPEOT0_SHF)
0428 #define GT_SDRAM_CFG_DUPEOT0_BIT    GT_SDRAM_CFG_DUPEOT0_MSK
0429 
0430 #define GT_SDRAM_CFG_DUPEOT1_SHF    22
0431 #define GT_SDRAM_CFG_DUPEOT1_MSK    (MSK(1) << GT_SDRAM_CFG_DUPEOT1_SHF)
0432 #define GT_SDRAM_CFG_DUPEOT1_BIT    GT_SDRAM_CFG_DUPEOT1_MSK
0433 
0434 #define GT_SDRAM_OPMODE_OP_SHF      0
0435 #define GT_SDRAM_OPMODE_OP_MSK      (MSK(3) << GT_SDRAM_OPMODE_OP_SHF)
0436 #define GT_SDRAM_OPMODE_OP_NORMAL   0
0437 #define GT_SDRAM_OPMODE_OP_NOP      1
0438 #define GT_SDRAM_OPMODE_OP_PRCHG    2
0439 #define GT_SDRAM_OPMODE_OP_MODE     3
0440 #define GT_SDRAM_OPMODE_OP_CBR      4
0441 
0442 #define GT_TC_CONTROL_ENTC0_SHF     0
0443 #define GT_TC_CONTROL_ENTC0_MSK     (MSK(1) << GT_TC_CONTROL_ENTC0_SHF)
0444 #define GT_TC_CONTROL_ENTC0_BIT     GT_TC_CONTROL_ENTC0_MSK
0445 #define GT_TC_CONTROL_SELTC0_SHF    1
0446 #define GT_TC_CONTROL_SELTC0_MSK    (MSK(1) << GT_TC_CONTROL_SELTC0_SHF)
0447 #define GT_TC_CONTROL_SELTC0_BIT    GT_TC_CONTROL_SELTC0_MSK
0448 
0449 
0450 #define GT_PCI0_BARE_SWSCS3BOOTDIS_SHF  0
0451 #define GT_PCI0_BARE_SWSCS3BOOTDIS_MSK  (MSK(1) << GT_PCI0_BARE_SWSCS3BOOTDIS_SHF)
0452 #define GT_PCI0_BARE_SWSCS3BOOTDIS_BIT  GT_PCI0_BARE_SWSCS3BOOTDIS_MSK
0453 
0454 #define GT_PCI0_BARE_SWSCS32DIS_SHF 1
0455 #define GT_PCI0_BARE_SWSCS32DIS_MSK (MSK(1) << GT_PCI0_BARE_SWSCS32DIS_SHF)
0456 #define GT_PCI0_BARE_SWSCS32DIS_BIT GT_PCI0_BARE_SWSCS32DIS_MSK
0457 
0458 #define GT_PCI0_BARE_SWSCS10DIS_SHF 2
0459 #define GT_PCI0_BARE_SWSCS10DIS_MSK (MSK(1) << GT_PCI0_BARE_SWSCS10DIS_SHF)
0460 #define GT_PCI0_BARE_SWSCS10DIS_BIT GT_PCI0_BARE_SWSCS10DIS_MSK
0461 
0462 #define GT_PCI0_BARE_INTIODIS_SHF   3
0463 #define GT_PCI0_BARE_INTIODIS_MSK   (MSK(1) << GT_PCI0_BARE_INTIODIS_SHF)
0464 #define GT_PCI0_BARE_INTIODIS_BIT   GT_PCI0_BARE_INTIODIS_MSK
0465 
0466 #define GT_PCI0_BARE_INTMEMDIS_SHF  4
0467 #define GT_PCI0_BARE_INTMEMDIS_MSK  (MSK(1) << GT_PCI0_BARE_INTMEMDIS_SHF)
0468 #define GT_PCI0_BARE_INTMEMDIS_BIT  GT_PCI0_BARE_INTMEMDIS_MSK
0469 
0470 #define GT_PCI0_BARE_CS3BOOTDIS_SHF 5
0471 #define GT_PCI0_BARE_CS3BOOTDIS_MSK (MSK(1) << GT_PCI0_BARE_CS3BOOTDIS_SHF)
0472 #define GT_PCI0_BARE_CS3BOOTDIS_BIT GT_PCI0_BARE_CS3BOOTDIS_MSK
0473 
0474 #define GT_PCI0_BARE_CS20DIS_SHF    6
0475 #define GT_PCI0_BARE_CS20DIS_MSK    (MSK(1) << GT_PCI0_BARE_CS20DIS_SHF)
0476 #define GT_PCI0_BARE_CS20DIS_BIT    GT_PCI0_BARE_CS20DIS_MSK
0477 
0478 #define GT_PCI0_BARE_SCS32DIS_SHF   7
0479 #define GT_PCI0_BARE_SCS32DIS_MSK   (MSK(1) << GT_PCI0_BARE_SCS32DIS_SHF)
0480 #define GT_PCI0_BARE_SCS32DIS_BIT   GT_PCI0_BARE_SCS32DIS_MSK
0481 
0482 #define GT_PCI0_BARE_SCS10DIS_SHF   8
0483 #define GT_PCI0_BARE_SCS10DIS_MSK   (MSK(1) << GT_PCI0_BARE_SCS10DIS_SHF)
0484 #define GT_PCI0_BARE_SCS10DIS_BIT   GT_PCI0_BARE_SCS10DIS_MSK
0485 
0486 
0487 #define GT_INTRCAUSE_MASABORT0_SHF  18
0488 #define GT_INTRCAUSE_MASABORT0_MSK  (MSK(1) << GT_INTRCAUSE_MASABORT0_SHF)
0489 #define GT_INTRCAUSE_MASABORT0_BIT  GT_INTRCAUSE_MASABORT0_MSK
0490 
0491 #define GT_INTRCAUSE_TARABORT0_SHF  19
0492 #define GT_INTRCAUSE_TARABORT0_MSK  (MSK(1) << GT_INTRCAUSE_TARABORT0_SHF)
0493 #define GT_INTRCAUSE_TARABORT0_BIT  GT_INTRCAUSE_TARABORT0_MSK
0494 
0495 
0496 #define GT_PCI0_CFGADDR_REGNUM_SHF  2
0497 #define GT_PCI0_CFGADDR_REGNUM_MSK  (MSK(6) << GT_PCI0_CFGADDR_REGNUM_SHF)
0498 #define GT_PCI0_CFGADDR_FUNCTNUM_SHF    8
0499 #define GT_PCI0_CFGADDR_FUNCTNUM_MSK    (MSK(3) << GT_PCI0_CFGADDR_FUNCTNUM_SHF)
0500 #define GT_PCI0_CFGADDR_DEVNUM_SHF  11
0501 #define GT_PCI0_CFGADDR_DEVNUM_MSK  (MSK(5) << GT_PCI0_CFGADDR_DEVNUM_SHF)
0502 #define GT_PCI0_CFGADDR_BUSNUM_SHF  16
0503 #define GT_PCI0_CFGADDR_BUSNUM_MSK  (MSK(8) << GT_PCI0_CFGADDR_BUSNUM_SHF)
0504 #define GT_PCI0_CFGADDR_CONFIGEN_SHF    31
0505 #define GT_PCI0_CFGADDR_CONFIGEN_MSK    (MSK(1) << GT_PCI0_CFGADDR_CONFIGEN_SHF)
0506 #define GT_PCI0_CFGADDR_CONFIGEN_BIT    GT_PCI0_CFGADDR_CONFIGEN_MSK
0507 
0508 #define GT_PCI0_CMD_MBYTESWAP_SHF   0
0509 #define GT_PCI0_CMD_MBYTESWAP_MSK   (MSK(1) << GT_PCI0_CMD_MBYTESWAP_SHF)
0510 #define GT_PCI0_CMD_MBYTESWAP_BIT   GT_PCI0_CMD_MBYTESWAP_MSK
0511 #define GT_PCI0_CMD_MWORDSWAP_SHF   10
0512 #define GT_PCI0_CMD_MWORDSWAP_MSK   (MSK(1) << GT_PCI0_CMD_MWORDSWAP_SHF)
0513 #define GT_PCI0_CMD_MWORDSWAP_BIT   GT_PCI0_CMD_MWORDSWAP_MSK
0514 #define GT_PCI0_CMD_SBYTESWAP_SHF   16
0515 #define GT_PCI0_CMD_SBYTESWAP_MSK   (MSK(1) << GT_PCI0_CMD_SBYTESWAP_SHF)
0516 #define GT_PCI0_CMD_SBYTESWAP_BIT   GT_PCI0_CMD_SBYTESWAP_MSK
0517 #define GT_PCI0_CMD_SWORDSWAP_SHF   11
0518 #define GT_PCI0_CMD_SWORDSWAP_MSK   (MSK(1) << GT_PCI0_CMD_SWORDSWAP_SHF)
0519 #define GT_PCI0_CMD_SWORDSWAP_BIT   GT_PCI0_CMD_SWORDSWAP_MSK
0520 
0521 #define GT_INTR_T0EXP_SHF       8
0522 #define GT_INTR_T0EXP_MSK       (MSK(1) << GT_INTR_T0EXP_SHF)
0523 #define GT_INTR_T0EXP_BIT       GT_INTR_T0EXP_MSK
0524 #define GT_INTR_RETRYCTR0_SHF       20
0525 #define GT_INTR_RETRYCTR0_MSK       (MSK(1) << GT_INTR_RETRYCTR0_SHF)
0526 #define GT_INTR_RETRYCTR0_BIT       GT_INTR_RETRYCTR0_MSK
0527 
0528 /*
0529  *  Misc
0530  */
0531 #define GT_DEF_PCI0_IO_BASE 0x10000000UL
0532 #define GT_DEF_PCI0_IO_SIZE 0x02000000UL
0533 #define GT_DEF_PCI0_MEM0_BASE   0x12000000UL
0534 #define GT_DEF_PCI0_MEM0_SIZE   0x02000000UL
0535 #define GT_DEF_BASE     0x14000000UL
0536 
0537 #define GT_MAX_BANKSIZE     (256 * 1024 * 1024) /* Max 256MB bank  */
0538 #define GT_LATTIM_MIN       6           /* Minimum lat  */
0539 
0540 /*
0541  * The gt64120_dep.h file must define the following macros
0542  *
0543  *   GT_READ(ofs, data_pointer)
0544  *   GT_WRITE(ofs, data)       - read/write GT64120 registers in 32bit
0545  *
0546  *   TIMER  - gt64120 timer irq, temporary solution until
0547  *        full gt64120 cascade interrupt support is in place
0548  */
0549 
0550 #include <mach-gt64120.h>
0551 
0552 /*
0553  * Because of an error/peculiarity in the Galileo chip, we need to swap the
0554  * bytes when running bigendian.  We also provide non-swapping versions.
0555  */
0556 #define __GT_READ(ofs)                          \
0557     (*(volatile u32 *)(GT64120_BASE+(ofs)))
0558 #define __GT_WRITE(ofs, data)                       \
0559     do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
0560 #define GT_READ(ofs)        le32_to_cpu(__GT_READ(ofs))
0561 #define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
0562 
0563 extern void gt641xx_set_base_clock(unsigned int clock);
0564 extern int gt641xx_timer0_state(void);
0565 
0566 #endif /* _ASM_GT64120_H */