gt64011.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:10k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * gt64011.h: Galileo PCI system controller
  3.  * Copyright (c) 1998 Algorithmics Ltd
  4.  */
  5. #ifdef __ASSEMBLY__
  6. /* offsets from base register */
  7. #define GT64011(x) (x)
  8. /* device is littleendian, so data may need to be swapped */
  9. #ifdef GALILEO_PORT
  10. #define htoll(x) ((((x) & 0x00ff) << 24) | 
  11.   (((x) & 0xff00) <<  8) | 
  12.   (((x) >> 8)  & 0xff00) | 
  13.   (((x) >> 24) & 0x00ff))
  14. /*#define ltohl(x) htoll(x)*/
  15. #else
  16. #define htoll(x) (x)
  17. /* #define ltohl(x) (x) */
  18. #endif
  19. #else /* !__ASSEMBLY__ */
  20. /* offsets from base pointer, this construct allows optimisation */
  21. static char *const _gt64011p = (char *) PA_TO_KVA1(GT64011_BASE);
  22. #define GT64011(x) *(volatile unsigned long *)(_gt64011p + (x))
  23. /* device is littleendian, so data may need to be swapped */
  24. #ifdef GALILEO_PORT
  25. #define htoll(x)     ({
  26.   unsigned int v = (unsigned int)(x);
  27.   v = (((v & 0x00ff) << 24) |
  28.        ((v & 0xff00) <<  8) |
  29.        ((v >>  8) & 0xff00) |
  30.        ((v >> 24) & 0x00ff));
  31.     v;
  32.     })
  33. #define ltohl(x) htoll(x)
  34. #else
  35. asjdsajd
  36. #define htoll(x) (x)
  37. #define ltohl(x) (x)
  38. #endif
  39. #endif /* __ASSEMBLY__ */
  40. /* CPU configuration */
  41. #define GT_CPU_CFG GT64011(0x000)
  42. #define GT_CPU_CFG_WriteMode (1<<11)
  43. #define GT_CPU_CFG_Endianess (1<<12)
  44. /* Processor Address Space */
  45. #define GT_PAS_RAS10LO GT64011(0x008)
  46. #define GT_PAS_RAS10HI GT64011(0x010)
  47. #define GT_PAS_RAS32LO GT64011(0x018)
  48. #define GT_PAS_RAS32HI GT64011(0x020)
  49. #define GT_PAS_CS20LO GT64011(0x028)
  50. #define GT_PAS_CS20HI GT64011(0x030)
  51. #define GT_PAS_CS3BOOTLO GT64011(0x038)
  52. #define GT_PAS_CS3BOOTHI GT64011(0x040)
  53. #define GT_PAS_PCIIOLO GT64011(0x048)
  54. #define GT_PAS_PCIIOHI GT64011(0x050)
  55. #define GT_PAS_PCIMEMLO GT64011(0x058)
  56. #define GT_PAS_PCIMEMHI GT64011(0x060)
  57. #define GT_PAS_INTDEC GT64011(0x068)
  58. #define GT_PAS_BUSERRLO GT64011(0x070)
  59. #define GT_PAS_PCIMEM1LO GT64011(0x080)
  60. #define GT_PAS_PCIMEM1HI GT64011(0x088)
  61. #define GT_PAS_LOMASK_Low 0x7ff
  62. #define GT_PAS_LOSHIFT_Low 0
  63. #define GT_PAS_HIMASK_High 0x07f
  64. #define GT_PAS_HISHIFT_High 0
  65. /* DRAM and  Device Address Space */
  66. #define GT_DDAS_RAS0LO GT64011(0x400)
  67. #define GT_DDAS_RAS0HI GT64011(0x404)
  68. #define GT_DDAS_RAS1LO GT64011(0x408)
  69. #define GT_DDAS_RAS1HI GT64011(0x40c)
  70. #define GT_DDAS_RAS2LO GT64011(0x410)
  71. #define GT_DDAS_RAS2HI GT64011(0x414)
  72. #define GT_DDAS_RAS3LO GT64011(0x418)
  73. #define GT_DDAS_RAS3HI GT64011(0x41c)
  74. #define GT_DDAS_CS0LO GT64011(0x420)
  75. #define GT_DDAS_CS0HI GT64011(0x424)
  76. #define GT_DDAS_CS1LO GT64011(0x428)
  77. #define GT_DDAS_CS1HI GT64011(0x42c)
  78. #define GT_DDAS_CS2LO GT64011(0x430)
  79. #define GT_DDAS_CS2HI GT64011(0x434)
  80. #define GT_DDAS_CS3LO GT64011(0x438)
  81. #define GT_DDAS_CS3HI GT64011(0x43c)
  82. #define GT_DDAS_BOOTCSLO GT64011(0x440)
  83. #define GT_DDAS_BOOTCSHI GT64011(0x444)
  84. #define GT_DDAS_ERROR GT64011(0x470)
  85. #define GT_DDAS_LOMASK_Low 0xff
  86. #define GT_DDAS_LOSHIFT_Low 0
  87. #define GT_DDAS_HIMASK_High 0xff
  88. #define GT_DDAS_HISHIFT_High 0
  89. /* DRAM Configuration */
  90. #define GT_DRAM_CFG GT64011(0x448)
  91. #define GT_DRAM_CFG_RefIntCntMASK 0x00003fff
  92. #define GT_DRAM_CFG_RefIntCntSHIFT 0
  93. #define GT_DRAM_CFG_RefIntCnt(x) (((x)<<GT_DRAM_CFG_RefIntCntSHIFT)&
  94.  GT_DRAM_CFG_RefIntCntMASK)
  95. #define GT_DRAM_CFG_StagRef (1<<16)
  96. #define GT_DRAM_CFG_StagRefOn 0
  97. #define GT_DRAM_CFG_StagRefAll GT_DRAM_CFG_StagRef
  98. #define GT_DRAM_CFG_ADSFunct (1<<17)
  99. #define GT_DRAM_CFG_ADSFunctDRAM 0
  100. #define GT_DRAM_CFG_ADSFunctOnly GT_DRAM_CFG_ADSFunct
  101. #define GT_DRAM_CFG_DRAMLatch (1<<18)
  102. #define GT_DRAM_CFG_DRAMLatchActive 0
  103. #define GT_DRAM_CFG_DRAMLatchTransparent GT_DRAM_CFG_DRAMLatch
  104. /* DRAM Parameters */
  105. #define GT_DRAMPAR_BANK0 GT64011(0x44c)
  106. #define GT_DRAMPAR_BANK1 GT64011(0x450)
  107. #define GT_DRAMPAR_BANK2 GT64011(0x454)
  108. #define GT_DRAMPAR_BANK3 GT64011(0x458)
  109. #define GT_DRAMPAR_CASWr (1<<0)
  110. #define GT_DRAMPAR_CASWr1 0
  111. #define GT_DRAMPAR_CASWr2 GT_DRAMPAR_CASWr
  112. #define GT_DRAMPAR_RAStoCASWr (1<<1)
  113. #define GT_DRAMPAR_RAStoCASWr2 0
  114. #define GT_DRAMPAR_RAStoCASWr3 GT_DRAMPAR_RAStoCASWr
  115. #define GT_DRAMPAR_CASRd (1<<2)
  116. #define GT_DRAMPAR_CASRd1 0
  117. #define GT_DRAMPAR_CASRd2 GT_DRAMPAR_CASRd
  118. #define GT_DRAMPAR_RAStoCASRd (1<<3)
  119. #define GT_DRAMPAR_RAStoCASRd2 0
  120. #define GT_DRAMPAR_RAStoCASRd3 GT_DRAMPAR_RAStoCASRd
  121. #define GT_DRAMPAR_RefreshSHIFT 4
  122. #define GT_DRAMPAR_RefreshMASK (3<<4)
  123. #define GT_DRAMPAR_Refresh512 (0<<4)
  124. #define GT_DRAMPAR_Refresh1024 (1<<4)
  125. #define GT_DRAMPAR_Refresh2048 (2<<4)
  126. #define GT_DRAMPAR_Refresh4096 (3<<4)
  127. #define GT_DRAMPAR_BankWidth (1<<6)
  128. #define GT_DRAMPAR_BankWidth32 0
  129. #define GT_DRAMPAR_BankWidth64 GT_DRAMPAR_BankWidth
  130. #define GT_DRAMPAR_BankLoc (1<<7)
  131. #define GT_DRAMPAR_BankLocEven 0
  132. #define GT_DRAMPAR_BankLocOdd GT_DRAMPAR_BankLoc
  133. #define GT_DRAMPAR_Parity (1<<8)
  134. #define GT_DRAMPAR_ParityDisable 0
  135. #define GT_DRAMPAR_ParityEnable GT_DRAMPAR_Parity
  136. #define GT_DRAMPAR_MBZ (1<<9)
  137. /* Device Parameters */
  138. #define GT_DEVPAR_BANK0 GT64011(0x45c)
  139. #define GT_DEVPAR_BANK1 GT64011(0x460)
  140. #define GT_DEVPAR_BANK2 GT64011(0x464)
  141. #define GT_DEVPAR_BANK3 GT64011(0x468)
  142. #define GT_DEVPAR_BOOT GT64011(0x46c)
  143. #define GT_DEVPAR_TurnOffMASK (7<<0)
  144. #define GT_DEVPAR_TurnOffSHIFT 0
  145. #define GT_DEVPAR_TurnOff(x) ((x)<<0)
  146. #define GT_DEVPAR_AccToFirstMASK (15<<3)
  147. #define GT_DEVPAR_AccToFirstSHIFT 3
  148. #define GT_DEVPAR_AccToFirst(x) ((x)<<3)
  149. #define GT_DEVPAR_AccToNextMASK (15<<7)
  150. #define GT_DEVPAR_AccToNextSHIFT 7
  151. #define GT_DEVPAR_AccToNext(x) ((x)<<7)
  152. #define GT_DEVPAR_ADStoWrMASK (7<<11)
  153. #define GT_DEVPAR_ADStoWrSHIFT 11
  154. #define GT_DEVPAR_ADStoWr(x) ((x)<<11)
  155. #define GT_DEVPAR_WrActiveMASK (7<<14)
  156. #define GT_DEVPAR_WrActiveSHIFT 14
  157. #define GT_DEVPAR_WrActive(x) ((x)<<14)
  158. #define GT_DEVPAR_WrHighMASK (7<<17)
  159. #define GT_DEVPAR_WrHighSHIFT 17
  160. #define GT_DEVPAR_WrHigh(x) ((x)<<17)
  161. #define GT_DEVPAR_DevWidthMASK (3<<20)
  162. #define GT_DEVPAR_DevWidthSHIFT 20
  163. #define GT_DEVPAR_DevWidth8 (0<<20)
  164. #define GT_DEVPAR_DevWidth16 (1<<20)
  165. #define GT_DEVPAR_DevWidth32 (2<<20)
  166. #define GT_DEVPAR_DevWidth64 (3<<20)
  167. #define GT_DEVPAR_DevLoc (1<<23)
  168. #define GT_DEVPAR_DevLocEven 0
  169. #define GT_DEVPAR_DevLocOdd GT_DEVPAR_DevLoc
  170. #define GT_DEVPAR_LatchFunct (1<<25)
  171. #define GT_DEVPAR_LatchFunctTransparent 0
  172. #define GT_DEVPAR_LatchFunctEnable GT_DEVPAR_LatchFunct
  173. #define GT_DEVPAR_Parity (1<<30)
  174. #define GT_DEVPAR_ParityDisable 0
  175. #define GT_DEVPAR_ParityEnable GT_DEVPAR_Parity
  176. #define GT_DEVPAR_ReservedMASK 0x3d400000
  177. #define GT_DEVPAR_Reserved 0x14400000
  178. /* PCI Internal */
  179. #define GT_IPCI_CMD GT64011(0xc00)
  180. #define GT_IPCI_CMD_ByteSwap (1<<0)
  181. #define GT_IPCI_CMD_ByteSwapOn 0
  182. #define GT_IPCI_CMD_ByteSwapOff GT_INTPCI_CMD_ByteSwap
  183. #define GT_IPCI_CMD_SyncModeMASK (3<<1)
  184. #define GT_IPCI_CMD_SyncModeSHIFT 1
  185. #define GT_IPCI_CMD_SyncModeStd (0<<1)
  186. #define GT_IPCI_CMD_SyncMode1 (1<<1)
  187. #define GT_IPCI_CMD_SyncMode2 (2<<1)
  188. #define GT_IPCI_TOR GT64011(0xc04)
  189. #define GT_IPCI_TOR_Timeout0MASK (255<<0)
  190. #define GT_IPCI_TOR_Timeout0SHIFT 0
  191. #define GT_IPCI_TOR_Timeout0(x) ((x)<<0)
  192. #define GT_IPCI_TOR_Timeout1MASK (255<<8)
  193. #define GT_IPCI_TOR_Timeout1SHIFT 8
  194. #define GT_IPCI_TOR_Timeout1(x) ((x)<<8)
  195. #define GT_IPCI_TOR_RetryCtrMASK (255<<16)
  196. #define GT_IPCI_TOR_RetryCtrSHIFT 16
  197. #define GT_IPCI_TOR_RetryCtr(x) ((x)<<16)
  198. #define GT_IPCI_RAS10SIZE GT64011(0xc08)
  199. #define GT_IPCI_RAS32SIZE GT64011(0xc0c)
  200. #define GT_IPCI_CS20SIZE GT64011(0xc10)
  201. #define GT_IPCI_CS3BOOTSIZE GT64011(0xc14)
  202. #define GT_IPCI_SIZE_BankSizeMASK (0xfffff<<12)
  203. #define GT_IPCI_SIZE_BankSizeSHIFT 12
  204. #define GT_IPCI_INTRCAUSE GT64011(0xc18)
  205. #define GT_IPCI_INTRMASK GT64011(0xc1c)
  206. #define  GT_INTR_INTSUM 0x0000001
  207. #define  GT_INTR_MEMOUT 0x0000002
  208. #define  GT_INTR_DMAOUT 0x0000004
  209. #define  GT_INTR_CPUOUT 0x0000008
  210. #define  GT_INTR_DMA0COMP 0x0000010
  211. #define  GT_INTR_DMA1COMP 0x0000020
  212. #define  GT_INTR_DMA2COMP 0x0000040
  213. #define  GT_INTR_DMA3COMP 0x0000080
  214. #define  GT_INTR_T0EXP 0x0000100
  215. #define  GT_INTR_T1EXP 0x0000200
  216. #define  GT_INTR_T2EXP 0x0000400
  217. #define  GT_INTR_T3EXP 0x0000800
  218. #define  GT_INTR_MASRDERR 0x0001000
  219. #define  GT_INTR_SLVWRERR 0x0002000
  220. #define  GT_INTR_MASWRERR 0x0004000
  221. #define  GT_INTR_SLVRDERR 0x0008000
  222. #define  GT_INTR_ADDRERR 0x0010000
  223. #define  GT_INTR_MEMERR 0x0020000
  224. #define  GT_INTR_MASABORT 0x0040000
  225. #define  GT_INTR_TARABORT 0x0080000
  226. #define  GT_INTR_RETRYCTR 0x0010000
  227. #define  GT_INTR_CPU2PCIA 0x0020000
  228. #define  GT_INTR_CPU2PCIB 0x0040000
  229. #define  GT_INTR_CPU2PCIC 0x0080000
  230. #define  GT_INTR_CPU2PCID 0x0100000
  231. #define  GT_INTR_CPU2PCIE 0x0200000
  232. #define  GT_INTR_PCI2CPUA 0x0400000
  233. #define  GT_INTR_PCI2CPUB 0x0800000
  234. #define  GT_INTR_PCI2CPUC 0x1000000
  235. #define  GT_INTR_PCI2CPUD 0x2000000
  236. #define  GT_INTR_CPUINTSUM 0x4000000
  237. #define  GT_INTR_PCIINTSUM 0x8000000
  238. #define GT_IPCI_PCIINTMASK GT64011(0xc24)
  239. #define GT_IPCI_SERMASK GT64011(0xc28)
  240. #define GT_IPCI_SERMASK_AddrErr (1<<0)
  241. #define GT_IPCI_SERMASK_MasWrErr (1<<1)
  242. #define GT_IPCI_SERMASK_MasRdErr (1<<2)
  243. #define GT_IPCI_SERMASK_MemErr (1<<3)
  244. #define GT_IPCI_SERMASK_MasAbort (1<<4)
  245. #define GT_IPCI_SERMASK_TarAbort (1<<5)
  246. #define GT_IPCI_INTACK GT64011(0xc34)
  247. #define GT_IPCI_BAREN GT64011(0xc3c)
  248. #define GT_IPCI_BAREN_SwCs3BootDis (1<<0)
  249. #define GT_IPCI_BAREN_SwRas32Dis (1<<1)
  250. #define GT_IPCI_BAREN_SwRas10Dis (1<<2)
  251. #define GT_IPCI_BAREN_IntIODis (1<<3)
  252. #define GT_IPCI_BAREN_IntMemDis (1<<4)
  253. #define GT_IPCI_BAREN_Cs3BootDis (1<<5)
  254. #define GT_IPCI_BAREN_Cs20Dis (1<<6)
  255. #define GT_IPCI_BAREN_Ras32Dis (1<<7)
  256. #define GT_IPCI_BAREN_Ras10Dis (1<<8)
  257. #define GT_IPCI_CFGADDR GT64011(0xcf8)
  258. #define GT_IPCI_CFGDATA GT64011(0xcfc)
  259. #define GT_IPCI_CFGADDR_RegNumMASK (0x3f<<2)
  260. #define GT_IPCI_CFGADDR_RegNumSHIFT 2
  261. #define GT_IPCI_CFGADDR_RegNum(x) ((x)<<2)
  262. #define GT_IPCI_CFGADDR_FunctNumMASK (0x7<<8)
  263. #define GT_IPCI_CFGADDR_FunctNumSHIFT 8
  264. #define GT_IPCI_CFGADDR_FunctNum(x) ((x)<<8)
  265. #define GT_IPCI_CFGADDR_DevNumMASK (0x1f<<11)
  266. #define GT_IPCI_CFGADDR_DevNumSHIFT 11
  267. #define GT_IPCI_CFGADDR_DevNum(x) ((x)<<11)
  268. #define GT_IPCI_CFGADDR_BusNumMASK (0xff<<16)
  269. #define GT_IPCI_CFGADDR_BusNumSHIFT 16
  270. #define GT_IPCI_CFGADDR_BusNum(x) ((x)<<16)
  271. #define GT_IPCI_CFGADDR_ConfigEn (1<<31)