mv64x60_defs.h 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976
  1. /*
  2. * include/asm-ppc/gt64260_defs.h
  3. *
  4. * Register definitions for the Marvell/Galileo GT64260, MV64360, etc.
  5. * host bridges.
  6. *
  7. * Author: Mark A. Greer <mgreer@mvista.com>
  8. *
  9. * 2001-2002 (c) MontaVista, Software, Inc. This file is licensed under
  10. * the terms of the GNU General Public License version 2. This program
  11. * is licensed "as is" without any warranty of any kind, whether express
  12. * or implied.
  13. */
  14. #ifndef __ASMPPC_MV64x60_DEFS_H
  15. #define __ASMPPC_MV64x60_DEFS_H
  16. /*
  17. * Define the Marvell bridges that are supported
  18. */
  19. #define MV64x60_TYPE_INVALID 0
  20. #define MV64x60_TYPE_GT64260A 1
  21. #define MV64x60_TYPE_GT64260B 2
  22. #define MV64x60_TYPE_MV64360 3
  23. #define MV64x60_TYPE_MV64361 4
  24. #define MV64x60_TYPE_MV64362 5
  25. #define MV64x60_TYPE_MV64460 6
  26. /* Revisions of each supported chip */
  27. #define GT64260_REV_A 0x10
  28. #define GT64260_REV_B 0x20
  29. #define MV64360 0x01
  30. #define MV64460 0x01
  31. /* Minimum window size supported by 64260 is 1MB */
  32. #define GT64260_WINDOW_SIZE_MIN 0x00100000
  33. #define MV64360_WINDOW_SIZE_MIN 0x00010000
  34. #define MV64x60_TCLK_FREQ_MAX 133333333U
  35. /* IRQ's for embedded controllers */
  36. #define MV64x60_IRQ_DEV 1
  37. #define MV64x60_IRQ_CPU_ERR 3
  38. #define MV64x60_IRQ_TIMER_0_1 8
  39. #define MV64x60_IRQ_TIMER_2_3 9
  40. #define MV64x60_IRQ_TIMER_4_5 10
  41. #define MV64x60_IRQ_TIMER_6_7 11
  42. #define MV64x60_IRQ_P1_GPP_0_7 24
  43. #define MV64x60_IRQ_P1_GPP_8_15 25
  44. #define MV64x60_IRQ_P1_GPP_16_23 26
  45. #define MV64x60_IRQ_P1_GPP_24_31 27
  46. #define MV64x60_IRQ_DOORBELL 28
  47. #define MV64x60_IRQ_ETH_0 32
  48. #define MV64x60_IRQ_ETH_1 33
  49. #define MV64x60_IRQ_ETH_2 34
  50. #define MV64x60_IRQ_SDMA_0 36
  51. #define MV64x60_IRQ_I2C 37
  52. #define MV64x60_IRQ_BRG 39
  53. #define MV64x60_IRQ_MPSC_0 40
  54. #define MV64x60_IRQ_MPSC_1 42
  55. #define MV64x60_IRQ_COMM 43
  56. #define MV64x60_IRQ_P0_GPP_0_7 56
  57. #define MV64x60_IRQ_P0_GPP_8_15 57
  58. #define MV64x60_IRQ_P0_GPP_16_23 58
  59. #define MV64x60_IRQ_P0_GPP_24_31 59
  60. #define MV64360_IRQ_PCI0 12
  61. #define MV64360_IRQ_SRAM_PAR_ERR 13
  62. #define MV64360_IRQ_PCI1 16
  63. #define MV64360_IRQ_SDMA_1 38
  64. #define MV64x60_IRQ_GPP0 64
  65. #define MV64x60_IRQ_GPP1 65
  66. #define MV64x60_IRQ_GPP2 66
  67. #define MV64x60_IRQ_GPP3 67
  68. #define MV64x60_IRQ_GPP4 68
  69. #define MV64x60_IRQ_GPP5 69
  70. #define MV64x60_IRQ_GPP6 70
  71. #define MV64x60_IRQ_GPP7 71
  72. #define MV64x60_IRQ_GPP8 72
  73. #define MV64x60_IRQ_GPP9 73
  74. #define MV64x60_IRQ_GPP10 74
  75. #define MV64x60_IRQ_GPP11 75
  76. #define MV64x60_IRQ_GPP12 76
  77. #define MV64x60_IRQ_GPP13 77
  78. #define MV64x60_IRQ_GPP14 78
  79. #define MV64x60_IRQ_GPP15 79
  80. #define MV64x60_IRQ_GPP16 80
  81. #define MV64x60_IRQ_GPP17 81
  82. #define MV64x60_IRQ_GPP18 82
  83. #define MV64x60_IRQ_GPP19 83
  84. #define MV64x60_IRQ_GPP20 84
  85. #define MV64x60_IRQ_GPP21 85
  86. #define MV64x60_IRQ_GPP22 86
  87. #define MV64x60_IRQ_GPP23 87
  88. #define MV64x60_IRQ_GPP24 88
  89. #define MV64x60_IRQ_GPP25 89
  90. #define MV64x60_IRQ_GPP26 90
  91. #define MV64x60_IRQ_GPP27 91
  92. #define MV64x60_IRQ_GPP28 92
  93. #define MV64x60_IRQ_GPP29 93
  94. #define MV64x60_IRQ_GPP30 94
  95. #define MV64x60_IRQ_GPP31 95
  96. /* Offsets for register blocks */
  97. #define GT64260_ENET_PHY_ADDR 0x2000
  98. #define GT64260_ENET_ESMIR 0x2010
  99. #define GT64260_ENET_0_OFFSET 0x2400
  100. #define GT64260_ENET_1_OFFSET 0x2800
  101. #define GT64260_ENET_2_OFFSET 0x2c00
  102. #define MV64x60_SDMA_0_OFFSET 0x4000
  103. #define MV64x60_SDMA_1_OFFSET 0x6000
  104. #define MV64x60_MPSC_0_OFFSET 0x8000
  105. #define MV64x60_MPSC_1_OFFSET 0x9000
  106. #define MV64x60_MPSC_ROUTING_OFFSET 0xb400
  107. #define MV64x60_SDMA_INTR_OFFSET 0xb800
  108. #define MV64x60_BRG_0_OFFSET 0xb200
  109. #define MV64x60_BRG_1_OFFSET 0xb208
  110. /*
  111. *****************************************************************************
  112. *
  113. * CPU Interface Registers
  114. *
  115. *****************************************************************************
  116. */
  117. /* CPU physical address of bridge's registers */
  118. #define MV64x60_INTERNAL_SPACE_DECODE 0x0068
  119. #define MV64x60_INTERNAL_SPACE_SIZE 0x10000
  120. #define MV64x60_INTERNAL_SPACE_DEFAULT_ADDR 0x14000000
  121. #define MV64360_CPU_BAR_ENABLE 0x0278
  122. /* CPU Memory Controller Window Registers (4 windows) */
  123. #define MV64x60_CPU2MEM_WINDOWS 4
  124. #define MV64x60_CPU2MEM_0_BASE 0x0008
  125. #define MV64x60_CPU2MEM_0_SIZE 0x0010
  126. #define MV64x60_CPU2MEM_1_BASE 0x0208
  127. #define MV64x60_CPU2MEM_1_SIZE 0x0210
  128. #define MV64x60_CPU2MEM_2_BASE 0x0018
  129. #define MV64x60_CPU2MEM_2_SIZE 0x0020
  130. #define MV64x60_CPU2MEM_3_BASE 0x0218
  131. #define MV64x60_CPU2MEM_3_SIZE 0x0220
  132. /* CPU Device Controller Window Registers (4 windows) */
  133. #define MV64x60_CPU2DEV_WINDOWS 4
  134. #define MV64x60_CPU2DEV_0_BASE 0x0028
  135. #define MV64x60_CPU2DEV_0_SIZE 0x0030
  136. #define MV64x60_CPU2DEV_1_BASE 0x0228
  137. #define MV64x60_CPU2DEV_1_SIZE 0x0230
  138. #define MV64x60_CPU2DEV_2_BASE 0x0248
  139. #define MV64x60_CPU2DEV_2_SIZE 0x0250
  140. #define MV64x60_CPU2DEV_3_BASE 0x0038
  141. #define MV64x60_CPU2DEV_3_SIZE 0x0040
  142. #define MV64x60_CPU2BOOT_0_BASE 0x0238
  143. #define MV64x60_CPU2BOOT_0_SIZE 0x0240
  144. #define MV64360_CPU2SRAM_BASE 0x0268
  145. /* CPU Windows to PCI space (2 PCI buses each w/ 1 I/O & 4 MEM windows) */
  146. #define MV64x60_PCI_BUSES 2
  147. #define MV64x60_PCI_IO_WINDOWS_PER_BUS 1
  148. #define MV64x60_PCI_MEM_WINDOWS_PER_BUS 4
  149. #define MV64x60_CPU2PCI_SWAP_BYTE 0x00000000
  150. #define MV64x60_CPU2PCI_SWAP_NONE 0x01000000
  151. #define MV64x60_CPU2PCI_SWAP_BYTE_WORD 0x02000000
  152. #define MV64x60_CPU2PCI_SWAP_WORD 0x03000000
  153. #define MV64x60_CPU2PCI_MEM_REQ64 (1<<27)
  154. #define MV64x60_CPU2PCI0_IO_BASE 0x0048
  155. #define MV64x60_CPU2PCI0_IO_SIZE 0x0050
  156. #define MV64x60_CPU2PCI0_MEM_0_BASE 0x0058
  157. #define MV64x60_CPU2PCI0_MEM_0_SIZE 0x0060
  158. #define MV64x60_CPU2PCI0_MEM_1_BASE 0x0080
  159. #define MV64x60_CPU2PCI0_MEM_1_SIZE 0x0088
  160. #define MV64x60_CPU2PCI0_MEM_2_BASE 0x0258
  161. #define MV64x60_CPU2PCI0_MEM_2_SIZE 0x0260
  162. #define MV64x60_CPU2PCI0_MEM_3_BASE 0x0280
  163. #define MV64x60_CPU2PCI0_MEM_3_SIZE 0x0288
  164. #define MV64x60_CPU2PCI0_IO_REMAP 0x00f0
  165. #define MV64x60_CPU2PCI0_MEM_0_REMAP_LO 0x00f8
  166. #define MV64x60_CPU2PCI0_MEM_0_REMAP_HI 0x0320
  167. #define MV64x60_CPU2PCI0_MEM_1_REMAP_LO 0x0100
  168. #define MV64x60_CPU2PCI0_MEM_1_REMAP_HI 0x0328
  169. #define MV64x60_CPU2PCI0_MEM_2_REMAP_LO 0x02f8
  170. #define MV64x60_CPU2PCI0_MEM_2_REMAP_HI 0x0330
  171. #define MV64x60_CPU2PCI0_MEM_3_REMAP_LO 0x0300
  172. #define MV64x60_CPU2PCI0_MEM_3_REMAP_HI 0x0338
  173. #define MV64x60_CPU2PCI1_IO_BASE 0x0090
  174. #define MV64x60_CPU2PCI1_IO_SIZE 0x0098
  175. #define MV64x60_CPU2PCI1_MEM_0_BASE 0x00a0
  176. #define MV64x60_CPU2PCI1_MEM_0_SIZE 0x00a8
  177. #define MV64x60_CPU2PCI1_MEM_1_BASE 0x00b0
  178. #define MV64x60_CPU2PCI1_MEM_1_SIZE 0x00b8
  179. #define MV64x60_CPU2PCI1_MEM_2_BASE 0x02a0
  180. #define MV64x60_CPU2PCI1_MEM_2_SIZE 0x02a8
  181. #define MV64x60_CPU2PCI1_MEM_3_BASE 0x02b0
  182. #define MV64x60_CPU2PCI1_MEM_3_SIZE 0x02b8
  183. #define MV64x60_CPU2PCI1_IO_REMAP 0x0108
  184. #define MV64x60_CPU2PCI1_MEM_0_REMAP_LO 0x0110
  185. #define MV64x60_CPU2PCI1_MEM_0_REMAP_HI 0x0340
  186. #define MV64x60_CPU2PCI1_MEM_1_REMAP_LO 0x0118
  187. #define MV64x60_CPU2PCI1_MEM_1_REMAP_HI 0x0348
  188. #define MV64x60_CPU2PCI1_MEM_2_REMAP_LO 0x0310
  189. #define MV64x60_CPU2PCI1_MEM_2_REMAP_HI 0x0350
  190. #define MV64x60_CPU2PCI1_MEM_3_REMAP_LO 0x0318
  191. #define MV64x60_CPU2PCI1_MEM_3_REMAP_HI 0x0358
  192. /* CPU Control Registers */
  193. #define MV64x60_CPU_CONFIG 0x0000
  194. #define MV64x60_CPU_MODE 0x0120
  195. #define MV64x60_CPU_MASTER_CNTL 0x0160
  196. #define MV64x60_CPU_XBAR_CNTL_LO 0x0150
  197. #define MV64x60_CPU_XBAR_CNTL_HI 0x0158
  198. #define MV64x60_CPU_XBAR_TO 0x0168
  199. #define GT64260_CPU_RR_XBAR_CNTL_LO 0x0170
  200. #define GT64260_CPU_RR_XBAR_CNTL_HI 0x0178
  201. #define MV64360_CPU_PADS_CALIBRATION 0x03b4
  202. #define MV64360_CPU_RESET_SAMPLE_LO 0x03c4
  203. #define MV64360_CPU_RESET_SAMPLE_HI 0x03d4
  204. /* SMP Register Map */
  205. #define MV64360_WHO_AM_I 0x0200
  206. #define MV64360_CPU0_DOORBELL 0x0214
  207. #define MV64360_CPU0_DOORBELL_CLR 0x021c
  208. #define MV64360_CPU0_DOORBELL_MASK 0x0234
  209. #define MV64360_CPU1_DOORBELL 0x0224
  210. #define MV64360_CPU1_DOORBELL_CLR 0x022c
  211. #define MV64360_CPU1_DOORBELL_MASK 0x023c
  212. #define MV64360_CPUx_DOORBELL(x) (0x0214 + ((x)*0x10))
  213. #define MV64360_CPUx_DOORBELL_CLR(x) (0x021c + ((x)*0x10))
  214. #define MV64360_CPUx_DOORBELL_MASK(x) (0x0234 + ((x)*0x08))
  215. #define MV64360_SEMAPHORE_0 0x0244
  216. #define MV64360_SEMAPHORE_1 0x024c
  217. #define MV64360_SEMAPHORE_2 0x0254
  218. #define MV64360_SEMAPHORE_3 0x025c
  219. #define MV64360_SEMAPHORE_4 0x0264
  220. #define MV64360_SEMAPHORE_5 0x026c
  221. #define MV64360_SEMAPHORE_6 0x0274
  222. #define MV64360_SEMAPHORE_7 0x027c
  223. /* CPU Sync Barrier Registers */
  224. #define GT64260_CPU_SYNC_BARRIER_PCI0 0x00c0
  225. #define GT64260_CPU_SYNC_BARRIER_PCI1 0x00c8
  226. #define MV64360_CPU0_SYNC_BARRIER_TRIG 0x00c0
  227. #define MV64360_CPU0_SYNC_BARRIER_VIRT 0x00c8
  228. #define MV64360_CPU1_SYNC_BARRIER_TRIG 0x00d0
  229. #define MV64360_CPU1_SYNC_BARRIER_VIRT 0x00d8
  230. /* CPU Deadlock and Ordering registers (Rev B part only) */
  231. #define GT64260_CPU_DEADLOCK_ORDERING 0x02d0
  232. #define GT64260_CPU_WB_PRIORITY_BUFFER_DEPTH 0x02d8
  233. #define GT64260_CPU_COUNTERS_SYNC_BARRIER_ATTRIBUTE 0x02e0
  234. /* CPU Access Protection Registers (gt64260 realy has 8 but don't need) */
  235. #define MV64x260_CPU_PROT_WINDOWS 4
  236. #define GT64260_CPU_PROT_ACCPROTECT (1<<16)
  237. #define GT64260_CPU_PROT_WRPROTECT (1<<17)
  238. #define GT64260_CPU_PROT_CACHEPROTECT (1<<18)
  239. #define MV64360_CPU_PROT_ACCPROTECT (1<<20)
  240. #define MV64360_CPU_PROT_WRPROTECT (1<<21)
  241. #define MV64360_CPU_PROT_CACHEPROTECT (1<<22)
  242. #define MV64360_CPU_PROT_WIN_ENABLE (1<<31)
  243. #define MV64x60_CPU_PROT_BASE_0 0x0180
  244. #define MV64x60_CPU_PROT_SIZE_0 0x0188
  245. #define MV64x60_CPU_PROT_BASE_1 0x0190
  246. #define MV64x60_CPU_PROT_SIZE_1 0x0198
  247. #define MV64x60_CPU_PROT_BASE_2 0x01a0
  248. #define MV64x60_CPU_PROT_SIZE_2 0x01a8
  249. #define MV64x60_CPU_PROT_BASE_3 0x01b0
  250. #define MV64x60_CPU_PROT_SIZE_3 0x01b8
  251. #define GT64260_CPU_PROT_BASE_4 0x01c0
  252. #define GT64260_CPU_PROT_SIZE_4 0x01c8
  253. #define GT64260_CPU_PROT_BASE_5 0x01d0
  254. #define GT64260_CPU_PROT_SIZE_5 0x01d8
  255. #define GT64260_CPU_PROT_BASE_6 0x01e0
  256. #define GT64260_CPU_PROT_SIZE_6 0x01e8
  257. #define GT64260_CPU_PROT_BASE_7 0x01f0
  258. #define GT64260_CPU_PROT_SIZE_7 0x01f8
  259. /* CPU Snoop Control Registers (64260 only) */
  260. #define GT64260_CPU_SNOOP_WINDOWS 4
  261. #define GT64260_CPU_SNOOP_NONE 0x00000000
  262. #define GT64260_CPU_SNOOP_WT 0x00010000
  263. #define GT64260_CPU_SNOOP_WB 0x00020000
  264. #define GT64260_CPU_SNOOP_MASK 0x00030000
  265. #define GT64260_CPU_SNOOP_ALL_BITS GT64260_CPU_SNOOP_MASK
  266. #define GT64260_CPU_SNOOP_BASE_0 0x0380
  267. #define GT64260_CPU_SNOOP_SIZE_0 0x0388
  268. #define GT64260_CPU_SNOOP_BASE_1 0x0390
  269. #define GT64260_CPU_SNOOP_SIZE_1 0x0398
  270. #define GT64260_CPU_SNOOP_BASE_2 0x03a0
  271. #define GT64260_CPU_SNOOP_SIZE_2 0x03a8
  272. #define GT64260_CPU_SNOOP_BASE_3 0x03b0
  273. #define GT64260_CPU_SNOOP_SIZE_3 0x03b8
  274. /* CPU Snoop Control Registers (64360 only) */
  275. #define MV64360_CPU_SNOOP_WINDOWS 4
  276. #define MV64360_CPU_SNOOP_NONE 0x00000000
  277. #define MV64360_CPU_SNOOP_WT 0x00010000
  278. #define MV64360_CPU_SNOOP_WB 0x00020000
  279. #define MV64360_CPU_SNOOP_MASK 0x00030000
  280. #define MV64360_CPU_SNOOP_ALL_BITS MV64360_CPU_SNOOP_MASK
  281. /* CPU Error Report Registers */
  282. #define MV64x60_CPU_ERR_ADDR_LO 0x0070
  283. #define MV64x60_CPU_ERR_ADDR_HI 0x0078
  284. #define MV64x60_CPU_ERR_DATA_LO 0x0128
  285. #define MV64x60_CPU_ERR_DATA_HI 0x0130
  286. #define MV64x60_CPU_ERR_PARITY 0x0138
  287. #define MV64x60_CPU_ERR_CAUSE 0x0140
  288. #define MV64x60_CPU_ERR_MASK 0x0148
  289. /*
  290. *****************************************************************************
  291. *
  292. * SRAM Controller Registers
  293. *
  294. *****************************************************************************
  295. */
  296. #define MV64360_SRAM_CONFIG 0x0380
  297. #define MV64360_SRAM_TEST_MODE 0x03f4
  298. #define MV64360_SRAM_ERR_CAUSE 0x0388
  299. #define MV64360_SRAM_ERR_ADDR_LO 0x0390
  300. #define MV64360_SRAM_ERR_ADDR_HI 0x03f8
  301. #define MV64360_SRAM_ERR_DATA_LO 0x0398
  302. #define MV64360_SRAM_ERR_DATA_HI 0x03a0
  303. #define MV64360_SRAM_ERR_PARITY 0x03a8
  304. #define MV64360_SRAM_SIZE 0x00040000 /* 2Mb/256KB SRAM */
  305. /*
  306. *****************************************************************************
  307. *
  308. * SDRAM/MEM Controller Registers
  309. *
  310. *****************************************************************************
  311. */
  312. /* SDRAM Config Registers (64260) */
  313. #define GT64260_SDRAM_CONFIG 0x0448
  314. /* SDRAM Error Report Registers (64260) */
  315. #define GT64260_SDRAM_ERR_DATA_LO 0x0484
  316. #define GT64260_SDRAM_ERR_DATA_HI 0x0480
  317. #define GT64260_SDRAM_ERR_ADDR 0x0490
  318. #define GT64260_SDRAM_ERR_ECC_RCVD 0x0488
  319. #define GT64260_SDRAM_ERR_ECC_CALC 0x048c
  320. #define GT64260_SDRAM_ERR_ECC_CNTL 0x0494
  321. #define GT64260_SDRAM_ERR_ECC_ERR_CNT 0x0498
  322. /* SDRAM Config Registers (64360) */
  323. #define MV64360_SDRAM_CONFIG 0x1400
  324. /* SDRAM Control Registers */
  325. #define MV64360_D_UNIT_CONTROL_LOW 0x1404
  326. #define MV64360_D_UNIT_CONTROL_HIGH 0x1424
  327. #define MV64460_D_UNIT_MMASK 0x14b0
  328. /* SDRAM Error Report Registers (64360) */
  329. #define MV64360_SDRAM_ERR_DATA_LO 0x1444
  330. #define MV64360_SDRAM_ERR_DATA_HI 0x1440
  331. #define MV64360_SDRAM_ERR_ADDR 0x1450
  332. #define MV64360_SDRAM_ERR_ECC_RCVD 0x1448
  333. #define MV64360_SDRAM_ERR_ECC_CALC 0x144c
  334. #define MV64360_SDRAM_ERR_ECC_CNTL 0x1454
  335. #define MV64360_SDRAM_ERR_ECC_ERR_CNT 0x1458
  336. /*
  337. *****************************************************************************
  338. *
  339. * Device/BOOT Controller Registers
  340. *
  341. *****************************************************************************
  342. */
  343. /* Device Control Registers */
  344. #define MV64x60_DEV_BANK_PARAMS_0 0x045c
  345. #define MV64x60_DEV_BANK_PARAMS_1 0x0460
  346. #define MV64x60_DEV_BANK_PARAMS_2 0x0464
  347. #define MV64x60_DEV_BANK_PARAMS_3 0x0468
  348. #define MV64x60_DEV_BOOT_PARAMS 0x046c
  349. #define MV64x60_DEV_IF_CNTL 0x04c0
  350. #define MV64x60_DEV_IF_XBAR_CNTL_LO 0x04c8
  351. #define MV64x60_DEV_IF_XBAR_CNTL_HI 0x04cc
  352. #define MV64x60_DEV_IF_XBAR_CNTL_TO 0x04c4
  353. /* Device Interrupt Registers */
  354. #define MV64x60_DEV_INTR_CAUSE 0x04d0
  355. #define MV64x60_DEV_INTR_MASK 0x04d4
  356. #define MV64x60_DEV_INTR_ERR_ADDR 0x04d8
  357. #define MV64360_DEV_INTR_ERR_DATA 0x04dc
  358. #define MV64360_DEV_INTR_ERR_PAR 0x04e0
  359. /*
  360. *****************************************************************************
  361. *
  362. * PCI Bridge Interface Registers
  363. *
  364. *****************************************************************************
  365. */
  366. /* PCI Configuration Access Registers */
  367. #define MV64x60_PCI0_CONFIG_ADDR 0x0cf8
  368. #define MV64x60_PCI0_CONFIG_DATA 0x0cfc
  369. #define MV64x60_PCI0_IACK 0x0c34
  370. #define MV64x60_PCI1_CONFIG_ADDR 0x0c78
  371. #define MV64x60_PCI1_CONFIG_DATA 0x0c7c
  372. #define MV64x60_PCI1_IACK 0x0cb4
  373. /* PCI Control Registers */
  374. #define MV64x60_PCI0_CMD 0x0c00
  375. #define MV64x60_PCI0_MODE 0x0d00
  376. #define MV64x60_PCI0_TO_RETRY 0x0c04
  377. #define MV64x60_PCI0_RD_BUF_DISCARD_TIMER 0x0d04
  378. #define MV64x60_PCI0_MSI_TRIGGER_TIMER 0x0c38
  379. #define MV64x60_PCI0_ARBITER_CNTL 0x1d00
  380. #define MV64x60_PCI0_XBAR_CNTL_LO 0x1d08
  381. #define MV64x60_PCI0_XBAR_CNTL_HI 0x1d0c
  382. #define MV64x60_PCI0_XBAR_CNTL_TO 0x1d04
  383. #define MV64x60_PCI0_RD_RESP_XBAR_CNTL_LO 0x1d18
  384. #define MV64x60_PCI0_RD_RESP_XBAR_CNTL_HI 0x1d1c
  385. #define MV64x60_PCI0_SYNC_BARRIER 0x1d10
  386. #define MV64x60_PCI0_P2P_CONFIG 0x1d14
  387. #define MV64x60_PCI0_INTR_MASK
  388. #define GT64260_PCI0_P2P_SWAP_CNTL 0x1d54
  389. #define MV64x60_PCI1_CMD 0x0c80
  390. #define MV64x60_PCI1_MODE 0x0d80
  391. #define MV64x60_PCI1_TO_RETRY 0x0c84
  392. #define MV64x60_PCI1_RD_BUF_DISCARD_TIMER 0x0d84
  393. #define MV64x60_PCI1_MSI_TRIGGER_TIMER 0x0cb8
  394. #define MV64x60_PCI1_ARBITER_CNTL 0x1d80
  395. #define MV64x60_PCI1_XBAR_CNTL_LO 0x1d88
  396. #define MV64x60_PCI1_XBAR_CNTL_HI 0x1d8c
  397. #define MV64x60_PCI1_XBAR_CNTL_TO 0x1d84
  398. #define MV64x60_PCI1_RD_RESP_XBAR_CNTL_LO 0x1d98
  399. #define MV64x60_PCI1_RD_RESP_XBAR_CNTL_HI 0x1d9c
  400. #define MV64x60_PCI1_SYNC_BARRIER 0x1d90
  401. #define MV64x60_PCI1_P2P_CONFIG 0x1d94
  402. #define GT64260_PCI1_P2P_SWAP_CNTL 0x1dd4
  403. /* Different modes that the pci hoses can be in (bits 5:4 in PCI Mode reg) */
  404. #define MV64x60_PCIMODE_CONVENTIONAL 0
  405. #define MV64x60_PCIMODE_PCIX_66 (1 << 4)
  406. #define MV64x60_PCIMODE_PCIX_100 (2 << 4)
  407. #define MV64x60_PCIMODE_PCIX_133 (3 << 4)
  408. #define MV64x60_PCIMODE_MASK (0x3 << 4)
  409. /* PCI Access Control Regions Registers */
  410. #define GT64260_PCI_ACC_CNTL_PREFETCHEN (1<<12)
  411. #define GT64260_PCI_ACC_CNTL_DREADEN (1<<13)
  412. #define GT64260_PCI_ACC_CNTL_RDPREFETCH (1<<16)
  413. #define GT64260_PCI_ACC_CNTL_RDLINEPREFETCH (1<<17)
  414. #define GT64260_PCI_ACC_CNTL_RDMULPREFETCH (1<<18)
  415. #define GT64260_PCI_ACC_CNTL_MBURST_32_BTYES 0x00000000
  416. #define GT64260_PCI_ACC_CNTL_MBURST_64_BYTES 0x00100000
  417. #define GT64260_PCI_ACC_CNTL_MBURST_128_BYTES 0x00200000
  418. #define GT64260_PCI_ACC_CNTL_MBURST_MASK 0x00300000
  419. #define GT64260_PCI_ACC_CNTL_SWAP_BYTE 0x00000000
  420. #define GT64260_PCI_ACC_CNTL_SWAP_NONE 0x01000000
  421. #define GT64260_PCI_ACC_CNTL_SWAP_BYTE_WORD 0x02000000
  422. #define GT64260_PCI_ACC_CNTL_SWAP_WORD 0x03000000
  423. #define GT64260_PCI_ACC_CNTL_SWAP_MASK 0x03000000
  424. #define GT64260_PCI_ACC_CNTL_ACCPROT (1<<28)
  425. #define GT64260_PCI_ACC_CNTL_WRPROT (1<<29)
  426. #define GT64260_PCI_ACC_CNTL_ALL_BITS (GT64260_PCI_ACC_CNTL_PREFETCHEN | \
  427. GT64260_PCI_ACC_CNTL_DREADEN | \
  428. GT64260_PCI_ACC_CNTL_RDPREFETCH | \
  429. GT64260_PCI_ACC_CNTL_RDLINEPREFETCH |\
  430. GT64260_PCI_ACC_CNTL_RDMULPREFETCH | \
  431. GT64260_PCI_ACC_CNTL_MBURST_MASK | \
  432. GT64260_PCI_ACC_CNTL_SWAP_MASK | \
  433. GT64260_PCI_ACC_CNTL_ACCPROT| \
  434. GT64260_PCI_ACC_CNTL_WRPROT)
  435. #define MV64360_PCI_ACC_CNTL_ENABLE (1<<0)
  436. #define MV64360_PCI_ACC_CNTL_REQ64 (1<<1)
  437. #define MV64360_PCI_ACC_CNTL_SNOOP_NONE 0x00000000
  438. #define MV64360_PCI_ACC_CNTL_SNOOP_WT 0x00000004
  439. #define MV64360_PCI_ACC_CNTL_SNOOP_WB 0x00000008
  440. #define MV64360_PCI_ACC_CNTL_SNOOP_MASK 0x0000000c
  441. #define MV64360_PCI_ACC_CNTL_ACCPROT (1<<4)
  442. #define MV64360_PCI_ACC_CNTL_WRPROT (1<<5)
  443. #define MV64360_PCI_ACC_CNTL_SWAP_BYTE 0x00000000
  444. #define MV64360_PCI_ACC_CNTL_SWAP_NONE 0x00000040
  445. #define MV64360_PCI_ACC_CNTL_SWAP_BYTE_WORD 0x00000080
  446. #define MV64360_PCI_ACC_CNTL_SWAP_WORD 0x000000c0
  447. #define MV64360_PCI_ACC_CNTL_SWAP_MASK 0x000000c0
  448. #define MV64360_PCI_ACC_CNTL_MBURST_32_BYTES 0x00000000
  449. #define MV64360_PCI_ACC_CNTL_MBURST_64_BYTES 0x00000100
  450. #define MV64360_PCI_ACC_CNTL_MBURST_128_BYTES 0x00000200
  451. #define MV64360_PCI_ACC_CNTL_MBURST_MASK 0x00000300
  452. #define MV64360_PCI_ACC_CNTL_RDSIZE_32_BYTES 0x00000000
  453. #define MV64360_PCI_ACC_CNTL_RDSIZE_64_BYTES 0x00000400
  454. #define MV64360_PCI_ACC_CNTL_RDSIZE_128_BYTES 0x00000800
  455. #define MV64360_PCI_ACC_CNTL_RDSIZE_256_BYTES 0x00000c00
  456. #define MV64360_PCI_ACC_CNTL_RDSIZE_MASK 0x00000c00
  457. #define MV64360_PCI_ACC_CNTL_ALL_BITS (MV64360_PCI_ACC_CNTL_ENABLE | \
  458. MV64360_PCI_ACC_CNTL_REQ64 | \
  459. MV64360_PCI_ACC_CNTL_SNOOP_MASK | \
  460. MV64360_PCI_ACC_CNTL_ACCPROT | \
  461. MV64360_PCI_ACC_CNTL_WRPROT | \
  462. MV64360_PCI_ACC_CNTL_SWAP_MASK | \
  463. MV64360_PCI_ACC_CNTL_MBURST_MASK | \
  464. MV64360_PCI_ACC_CNTL_RDSIZE_MASK)
  465. #define MV64x60_PCI0_ACC_CNTL_0_BASE_LO 0x1e00
  466. #define MV64x60_PCI0_ACC_CNTL_0_BASE_HI 0x1e04
  467. #define MV64x60_PCI0_ACC_CNTL_0_SIZE 0x1e08
  468. #define MV64x60_PCI0_ACC_CNTL_1_BASE_LO 0x1e10
  469. #define MV64x60_PCI0_ACC_CNTL_1_BASE_HI 0x1e14
  470. #define MV64x60_PCI0_ACC_CNTL_1_SIZE 0x1e18
  471. #define MV64x60_PCI0_ACC_CNTL_2_BASE_LO 0x1e20
  472. #define MV64x60_PCI0_ACC_CNTL_2_BASE_HI 0x1e24
  473. #define MV64x60_PCI0_ACC_CNTL_2_SIZE 0x1e28
  474. #define MV64x60_PCI0_ACC_CNTL_3_BASE_LO 0x1e30
  475. #define MV64x60_PCI0_ACC_CNTL_3_BASE_HI 0x1e34
  476. #define MV64x60_PCI0_ACC_CNTL_3_SIZE 0x1e38
  477. #define MV64x60_PCI0_ACC_CNTL_4_BASE_LO 0x1e40
  478. #define MV64x60_PCI0_ACC_CNTL_4_BASE_HI 0x1e44
  479. #define MV64x60_PCI0_ACC_CNTL_4_SIZE 0x1e48
  480. #define MV64x60_PCI0_ACC_CNTL_5_BASE_LO 0x1e50
  481. #define MV64x60_PCI0_ACC_CNTL_5_BASE_HI 0x1e54
  482. #define MV64x60_PCI0_ACC_CNTL_5_SIZE 0x1e58
  483. #define GT64260_PCI0_ACC_CNTL_6_BASE_LO 0x1e60
  484. #define GT64260_PCI0_ACC_CNTL_6_BASE_HI 0x1e64
  485. #define GT64260_PCI0_ACC_CNTL_6_SIZE 0x1e68
  486. #define GT64260_PCI0_ACC_CNTL_7_BASE_LO 0x1e70
  487. #define GT64260_PCI0_ACC_CNTL_7_BASE_HI 0x1e74
  488. #define GT64260_PCI0_ACC_CNTL_7_SIZE 0x1e78
  489. #define MV64x60_PCI1_ACC_CNTL_0_BASE_LO 0x1e80
  490. #define MV64x60_PCI1_ACC_CNTL_0_BASE_HI 0x1e84
  491. #define MV64x60_PCI1_ACC_CNTL_0_SIZE 0x1e88
  492. #define MV64x60_PCI1_ACC_CNTL_1_BASE_LO 0x1e90
  493. #define MV64x60_PCI1_ACC_CNTL_1_BASE_HI 0x1e94
  494. #define MV64x60_PCI1_ACC_CNTL_1_SIZE 0x1e98
  495. #define MV64x60_PCI1_ACC_CNTL_2_BASE_LO 0x1ea0
  496. #define MV64x60_PCI1_ACC_CNTL_2_BASE_HI 0x1ea4
  497. #define MV64x60_PCI1_ACC_CNTL_2_SIZE 0x1ea8
  498. #define MV64x60_PCI1_ACC_CNTL_3_BASE_LO 0x1eb0
  499. #define MV64x60_PCI1_ACC_CNTL_3_BASE_HI 0x1eb4
  500. #define MV64x60_PCI1_ACC_CNTL_3_SIZE 0x1eb8
  501. #define MV64x60_PCI1_ACC_CNTL_4_BASE_LO 0x1ec0
  502. #define MV64x60_PCI1_ACC_CNTL_4_BASE_HI 0x1ec4
  503. #define MV64x60_PCI1_ACC_CNTL_4_SIZE 0x1ec8
  504. #define MV64x60_PCI1_ACC_CNTL_5_BASE_LO 0x1ed0
  505. #define MV64x60_PCI1_ACC_CNTL_5_BASE_HI 0x1ed4
  506. #define MV64x60_PCI1_ACC_CNTL_5_SIZE 0x1ed8
  507. #define GT64260_PCI1_ACC_CNTL_6_BASE_LO 0x1ee0
  508. #define GT64260_PCI1_ACC_CNTL_6_BASE_HI 0x1ee4
  509. #define GT64260_PCI1_ACC_CNTL_6_SIZE 0x1ee8
  510. #define GT64260_PCI1_ACC_CNTL_7_BASE_LO 0x1ef0
  511. #define GT64260_PCI1_ACC_CNTL_7_BASE_HI 0x1ef4
  512. #define GT64260_PCI1_ACC_CNTL_7_SIZE 0x1ef8
  513. /* PCI Snoop Control Registers (64260 only) */
  514. #define GT64260_PCI_SNOOP_NONE 0x00000000
  515. #define GT64260_PCI_SNOOP_WT 0x00001000
  516. #define GT64260_PCI_SNOOP_WB 0x00002000
  517. #define GT64260_PCI0_SNOOP_0_BASE_LO 0x1f00
  518. #define GT64260_PCI0_SNOOP_0_BASE_HI 0x1f04
  519. #define GT64260_PCI0_SNOOP_0_SIZE 0x1f08
  520. #define GT64260_PCI0_SNOOP_1_BASE_LO 0x1f10
  521. #define GT64260_PCI0_SNOOP_1_BASE_HI 0x1f14
  522. #define GT64260_PCI0_SNOOP_1_SIZE 0x1f18
  523. #define GT64260_PCI0_SNOOP_2_BASE_LO 0x1f20
  524. #define GT64260_PCI0_SNOOP_2_BASE_HI 0x1f24
  525. #define GT64260_PCI0_SNOOP_2_SIZE 0x1f28
  526. #define GT64260_PCI0_SNOOP_3_BASE_LO 0x1f30
  527. #define GT64260_PCI0_SNOOP_3_BASE_HI 0x1f34
  528. #define GT64260_PCI0_SNOOP_3_SIZE 0x1f38
  529. #define GT64260_PCI1_SNOOP_0_BASE_LO 0x1f80
  530. #define GT64260_PCI1_SNOOP_0_BASE_HI 0x1f84
  531. #define GT64260_PCI1_SNOOP_0_SIZE 0x1f88
  532. #define GT64260_PCI1_SNOOP_1_BASE_LO 0x1f90
  533. #define GT64260_PCI1_SNOOP_1_BASE_HI 0x1f94
  534. #define GT64260_PCI1_SNOOP_1_SIZE 0x1f98
  535. #define GT64260_PCI1_SNOOP_2_BASE_LO 0x1fa0
  536. #define GT64260_PCI1_SNOOP_2_BASE_HI 0x1fa4
  537. #define GT64260_PCI1_SNOOP_2_SIZE 0x1fa8
  538. #define GT64260_PCI1_SNOOP_3_BASE_LO 0x1fb0
  539. #define GT64260_PCI1_SNOOP_3_BASE_HI 0x1fb4
  540. #define GT64260_PCI1_SNOOP_3_SIZE 0x1fb8
  541. /* PCI Error Report Registers */
  542. #define MV64x60_PCI0_ERR_SERR_MASK 0x0c28
  543. #define MV64x60_PCI0_ERR_ADDR_LO 0x1d40
  544. #define MV64x60_PCI0_ERR_ADDR_HI 0x1d44
  545. #define MV64x60_PCI0_ERR_DATA_LO 0x1d48
  546. #define MV64x60_PCI0_ERR_DATA_HI 0x1d4c
  547. #define MV64x60_PCI0_ERR_CMD 0x1d50
  548. #define MV64x60_PCI0_ERR_CAUSE 0x1d58
  549. #define MV64x60_PCI0_ERR_MASK 0x1d5c
  550. #define MV64x60_PCI1_ERR_SERR_MASK 0x0ca8
  551. #define MV64x60_PCI1_ERR_ADDR_LO 0x1dc0
  552. #define MV64x60_PCI1_ERR_ADDR_HI 0x1dc4
  553. #define MV64x60_PCI1_ERR_DATA_LO 0x1dc8
  554. #define MV64x60_PCI1_ERR_DATA_HI 0x1dcc
  555. #define MV64x60_PCI1_ERR_CMD 0x1dd0
  556. #define MV64x60_PCI1_ERR_CAUSE 0x1dd8
  557. #define MV64x60_PCI1_ERR_MASK 0x1ddc
  558. /* PCI Slave Address Decoding Registers */
  559. #define MV64x60_PCI0_MEM_0_SIZE 0x0c08
  560. #define MV64x60_PCI0_MEM_1_SIZE 0x0d08
  561. #define MV64x60_PCI0_MEM_2_SIZE 0x0c0c
  562. #define MV64x60_PCI0_MEM_3_SIZE 0x0d0c
  563. #define MV64x60_PCI1_MEM_0_SIZE 0x0c88
  564. #define MV64x60_PCI1_MEM_1_SIZE 0x0d88
  565. #define MV64x60_PCI1_MEM_2_SIZE 0x0c8c
  566. #define MV64x60_PCI1_MEM_3_SIZE 0x0d8c
  567. #define MV64x60_PCI0_BAR_ENABLE 0x0c3c
  568. #define MV64x60_PCI1_BAR_ENABLE 0x0cbc
  569. #define MV64x60_PCI0_PCI_DECODE_CNTL 0x0d3c
  570. #define MV64x60_PCI1_PCI_DECODE_CNTL 0x0dbc
  571. #define MV64x60_PCI0_SLAVE_MEM_0_REMAP 0x0c48
  572. #define MV64x60_PCI0_SLAVE_MEM_1_REMAP 0x0d48
  573. #define MV64x60_PCI0_SLAVE_MEM_2_REMAP 0x0c4c
  574. #define MV64x60_PCI0_SLAVE_MEM_3_REMAP 0x0d4c
  575. #define MV64x60_PCI0_SLAVE_DEV_0_REMAP 0x0c50
  576. #define MV64x60_PCI0_SLAVE_DEV_1_REMAP 0x0d50
  577. #define MV64x60_PCI0_SLAVE_DEV_2_REMAP 0x0d58
  578. #define MV64x60_PCI0_SLAVE_DEV_3_REMAP 0x0c54
  579. #define MV64x60_PCI0_SLAVE_BOOT_REMAP 0x0d54
  580. #define MV64x60_PCI0_SLAVE_P2P_MEM_0_REMAP_LO 0x0d5c
  581. #define MV64x60_PCI0_SLAVE_P2P_MEM_0_REMAP_HI 0x0d60
  582. #define MV64x60_PCI0_SLAVE_P2P_MEM_1_REMAP_LO 0x0d64
  583. #define MV64x60_PCI0_SLAVE_P2P_MEM_1_REMAP_HI 0x0d68
  584. #define MV64x60_PCI0_SLAVE_P2P_IO_REMAP 0x0d6c
  585. #define MV64x60_PCI0_SLAVE_CPU_REMAP 0x0d70
  586. #define MV64x60_PCI1_SLAVE_MEM_0_REMAP 0x0cc8
  587. #define MV64x60_PCI1_SLAVE_MEM_1_REMAP 0x0dc8
  588. #define MV64x60_PCI1_SLAVE_MEM_2_REMAP 0x0ccc
  589. #define MV64x60_PCI1_SLAVE_MEM_3_REMAP 0x0dcc
  590. #define MV64x60_PCI1_SLAVE_DEV_0_REMAP 0x0cd0
  591. #define MV64x60_PCI1_SLAVE_DEV_1_REMAP 0x0dd0
  592. #define MV64x60_PCI1_SLAVE_DEV_2_REMAP 0x0dd8
  593. #define MV64x60_PCI1_SLAVE_DEV_3_REMAP 0x0cd4
  594. #define MV64x60_PCI1_SLAVE_BOOT_REMAP 0x0dd4
  595. #define MV64x60_PCI1_SLAVE_P2P_MEM_0_REMAP_LO 0x0ddc
  596. #define MV64x60_PCI1_SLAVE_P2P_MEM_0_REMAP_HI 0x0de0
  597. #define MV64x60_PCI1_SLAVE_P2P_MEM_1_REMAP_LO 0x0de4
  598. #define MV64x60_PCI1_SLAVE_P2P_MEM_1_REMAP_HI 0x0de8
  599. #define MV64x60_PCI1_SLAVE_P2P_IO_REMAP 0x0dec
  600. #define MV64x60_PCI1_SLAVE_CPU_REMAP 0x0df0
  601. #define MV64360_PCICFG_CPCI_HOTSWAP 0x68
  602. /*
  603. *****************************************************************************
  604. *
  605. * ENET Controller Interface Registers
  606. *
  607. *****************************************************************************
  608. */
  609. /* ENET Controller Window Registers (6 windows) */
  610. #define MV64360_ENET2MEM_WINDOWS 6
  611. #define MV64360_ENET2MEM_0_BASE 0x2200
  612. #define MV64360_ENET2MEM_0_SIZE 0x2204
  613. #define MV64360_ENET2MEM_1_BASE 0x2208
  614. #define MV64360_ENET2MEM_1_SIZE 0x220c
  615. #define MV64360_ENET2MEM_2_BASE 0x2210
  616. #define MV64360_ENET2MEM_2_SIZE 0x2214
  617. #define MV64360_ENET2MEM_3_BASE 0x2218
  618. #define MV64360_ENET2MEM_3_SIZE 0x221c
  619. #define MV64360_ENET2MEM_4_BASE 0x2220
  620. #define MV64360_ENET2MEM_4_SIZE 0x2224
  621. #define MV64360_ENET2MEM_5_BASE 0x2228
  622. #define MV64360_ENET2MEM_5_SIZE 0x222c
  623. #define MV64360_ENET2MEM_SNOOP_NONE 0x00000000
  624. #define MV64360_ENET2MEM_SNOOP_WT 0x00001000
  625. #define MV64360_ENET2MEM_SNOOP_WB 0x00002000
  626. #define MV64360_ENET2MEM_BAR_ENABLE 0x2290
  627. #define MV64360_ENET2MEM_ACC_PROT_0 0x2294
  628. #define MV64360_ENET2MEM_ACC_PROT_1 0x2298
  629. #define MV64360_ENET2MEM_ACC_PROT_2 0x229c
  630. /*
  631. *****************************************************************************
  632. *
  633. * MPSC Controller Interface Registers
  634. *
  635. *****************************************************************************
  636. */
  637. /* MPSC Controller Window Registers (4 windows) */
  638. #define MV64360_MPSC2MEM_WINDOWS 4
  639. #define MV64360_MPSC2MEM_0_BASE 0xf200
  640. #define MV64360_MPSC2MEM_0_SIZE 0xf204
  641. #define MV64360_MPSC2MEM_1_BASE 0xf208
  642. #define MV64360_MPSC2MEM_1_SIZE 0xf20c
  643. #define MV64360_MPSC2MEM_2_BASE 0xf210
  644. #define MV64360_MPSC2MEM_2_SIZE 0xf214
  645. #define MV64360_MPSC2MEM_3_BASE 0xf218
  646. #define MV64360_MPSC2MEM_3_SIZE 0xf21c
  647. #define MV64360_MPSC_0_REMAP 0xf240
  648. #define MV64360_MPSC_1_REMAP 0xf244
  649. #define MV64360_MPSC2MEM_SNOOP_NONE 0x00000000
  650. #define MV64360_MPSC2MEM_SNOOP_WT 0x00001000
  651. #define MV64360_MPSC2MEM_SNOOP_WB 0x00002000
  652. #define MV64360_MPSC2MEM_BAR_ENABLE 0xf250
  653. #define MV64360_MPSC2MEM_ACC_PROT_0 0xf254
  654. #define MV64360_MPSC2MEM_ACC_PROT_1 0xf258
  655. #define MV64360_MPSC2REGS_BASE 0xf25c
  656. /*
  657. *****************************************************************************
  658. *
  659. * Timer/Counter Interface Registers
  660. *
  661. *****************************************************************************
  662. */
  663. #define MV64x60_TIMR_CNTR_0 0x0850
  664. #define MV64x60_TIMR_CNTR_1 0x0854
  665. #define MV64x60_TIMR_CNTR_2 0x0858
  666. #define MV64x60_TIMR_CNTR_3 0x085c
  667. #define MV64x60_TIMR_CNTR_0_3_CNTL 0x0864
  668. #define MV64x60_TIMR_CNTR_0_3_INTR_CAUSE 0x0868
  669. #define MV64x60_TIMR_CNTR_0_3_INTR_MASK 0x086c
  670. #define GT64260_TIMR_CNTR_4 0x0950
  671. #define GT64260_TIMR_CNTR_5 0x0954
  672. #define GT64260_TIMR_CNTR_6 0x0958
  673. #define GT64260_TIMR_CNTR_7 0x095c
  674. #define GT64260_TIMR_CNTR_4_7_CNTL 0x0964
  675. #define GT64260_TIMR_CNTR_4_7_INTR_CAUSE 0x0968
  676. #define GT64260_TIMR_CNTR_4_7_INTR_MASK 0x096c
  677. /*
  678. *****************************************************************************
  679. *
  680. * Communications Controller
  681. *
  682. *****************************************************************************
  683. */
  684. #define GT64260_SER_INIT_PCI_ADDR_HI 0xf320
  685. #define GT64260_SER_INIT_LAST_DATA 0xf324
  686. #define GT64260_SER_INIT_CONTROL 0xf328
  687. #define GT64260_SER_INIT_STATUS 0xf32c
  688. #define MV64x60_COMM_ARBITER_CNTL 0xf300
  689. #define MV64x60_COMM_CONFIG 0xb40c
  690. #define MV64x60_COMM_XBAR_TO 0xf304
  691. #define MV64x60_COMM_INTR_CAUSE 0xf310
  692. #define MV64x60_COMM_INTR_MASK 0xf314
  693. #define MV64x60_COMM_ERR_ADDR 0xf318
  694. #define MV64360_COMM_ARBITER_CNTL 0xf300
  695. /*
  696. *****************************************************************************
  697. *
  698. * IDMA Controller Interface Registers
  699. *
  700. *****************************************************************************
  701. */
  702. /* IDMA Controller Window Registers (8 windows) */
  703. #define MV64360_IDMA2MEM_WINDOWS 8
  704. #define MV64360_IDMA2MEM_0_BASE 0x0a00
  705. #define MV64360_IDMA2MEM_0_SIZE 0x0a04
  706. #define MV64360_IDMA2MEM_1_BASE 0x0a08
  707. #define MV64360_IDMA2MEM_1_SIZE 0x0a0c
  708. #define MV64360_IDMA2MEM_2_BASE 0x0a10
  709. #define MV64360_IDMA2MEM_2_SIZE 0x0a14
  710. #define MV64360_IDMA2MEM_3_BASE 0x0a18
  711. #define MV64360_IDMA2MEM_3_SIZE 0x0a1c
  712. #define MV64360_IDMA2MEM_4_BASE 0x0a20
  713. #define MV64360_IDMA2MEM_4_SIZE 0x0a24
  714. #define MV64360_IDMA2MEM_5_BASE 0x0a28
  715. #define MV64360_IDMA2MEM_5_SIZE 0x0a2c
  716. #define MV64360_IDMA2MEM_6_BASE 0x0a30
  717. #define MV64360_IDMA2MEM_6_SIZE 0x0a34
  718. #define MV64360_IDMA2MEM_7_BASE 0x0a38
  719. #define MV64360_IDMA2MEM_7_SIZE 0x0a3c
  720. #define MV64360_IDMA2MEM_SNOOP_NONE 0x00000000
  721. #define MV64360_IDMA2MEM_SNOOP_WT 0x00001000
  722. #define MV64360_IDMA2MEM_SNOOP_WB 0x00002000
  723. #define MV64360_IDMA2MEM_BAR_ENABLE 0x0a80
  724. #define MV64360_IDMA2MEM_ACC_PROT_0 0x0a70
  725. #define MV64360_IDMA2MEM_ACC_PROT_1 0x0a74
  726. #define MV64360_IDMA2MEM_ACC_PROT_2 0x0a78
  727. #define MV64360_IDMA2MEM_ACC_PROT_3 0x0a7c
  728. #define MV64x60_IDMA_0_OFFSET 0x0800
  729. #define MV64x60_IDMA_1_OFFSET 0x0804
  730. #define MV64x60_IDMA_2_OFFSET 0x0808
  731. #define MV64x60_IDMA_3_OFFSET 0x080c
  732. #define MV64x60_IDMA_4_OFFSET 0x0900
  733. #define MV64x60_IDMA_5_OFFSET 0x0904
  734. #define MV64x60_IDMA_6_OFFSET 0x0908
  735. #define MV64x60_IDMA_7_OFFSET 0x090c
  736. #define MV64x60_IDMA_BYTE_COUNT (0x0800 - MV64x60_IDMA_0_OFFSET)
  737. #define MV64x60_IDMA_SRC_ADDR (0x0810 - MV64x60_IDMA_0_OFFSET)
  738. #define MV64x60_IDMA_DST_ADDR (0x0820 - MV64x60_IDMA_0_OFFSET)
  739. #define MV64x60_IDMA_NEXT_DESC (0x0830 - MV64x60_IDMA_0_OFFSET)
  740. #define MV64x60_IDMA_CUR_DESC (0x0870 - MV64x60_IDMA_0_OFFSET)
  741. #define MV64x60_IDMA_SRC_PCI_ADDR_HI (0x0890 - MV64x60_IDMA_0_OFFSET)
  742. #define MV64x60_IDMA_DST_PCI_ADDR_HI (0x08a0 - MV64x60_IDMA_0_OFFSET)
  743. #define MV64x60_IDMA_NEXT_DESC_PCI_ADDR_HI (0x08b0 - MV64x60_IDMA_0_OFFSET)
  744. #define MV64x60_IDMA_CONTROL_LO (0x0840 - MV64x60_IDMA_0_OFFSET)
  745. #define MV64x60_IDMA_CONTROL_HI (0x0880 - MV64x60_IDMA_0_OFFSET)
  746. #define MV64x60_IDMA_0_3_ARBITER_CNTL 0x0860
  747. #define MV64x60_IDMA_4_7_ARBITER_CNTL 0x0960
  748. #define MV64x60_IDMA_0_3_XBAR_TO 0x08d0
  749. #define MV64x60_IDMA_4_7_XBAR_TO 0x09d0
  750. #define MV64x60_IDMA_0_3_INTR_CAUSE 0x08c0
  751. #define MV64x60_IDMA_0_3_INTR_MASK 0x08c4
  752. #define MV64x60_IDMA_0_3_ERROR_ADDR 0x08c8
  753. #define MV64x60_IDMA_0_3_ERROR_SELECT 0x08cc
  754. #define MV64x60_IDMA_4_7_INTR_CAUSE 0x09c0
  755. #define MV64x60_IDMA_4_7_INTR_MASK 0x09c4
  756. #define MV64x60_IDMA_4_7_ERROR_ADDR 0x09c8
  757. #define MV64x60_IDMA_4_7_ERROR_SELECT 0x09cc
  758. /*
  759. *****************************************************************************
  760. *
  761. * Watchdog Timer Interface Registers
  762. *
  763. *****************************************************************************
  764. */
  765. #define MV64x60_WDT_WDC 0xb410
  766. #define MV64x60_WDT_WDV 0xb414
  767. /*
  768. *****************************************************************************
  769. *
  770. * General Purpose Pins Controller Interface Registers
  771. *
  772. *****************************************************************************
  773. */
  774. #define MV64x60_GPP_IO_CNTL 0xf100
  775. #define MV64x60_GPP_LEVEL_CNTL 0xf110
  776. #define MV64x60_GPP_VALUE 0xf104
  777. #define MV64x60_GPP_INTR_CAUSE 0xf108
  778. #define MV64x60_GPP_INTR_MASK 0xf10c
  779. #define MV64x60_GPP_VALUE_SET 0xf118
  780. #define MV64x60_GPP_VALUE_CLR 0xf11c
  781. /*
  782. *****************************************************************************
  783. *
  784. * Multi-Purpose Pins Controller Interface Registers
  785. *
  786. *****************************************************************************
  787. */
  788. #define MV64x60_MPP_CNTL_0 0xf000
  789. #define MV64x60_MPP_CNTL_1 0xf004
  790. #define MV64x60_MPP_CNTL_2 0xf008
  791. #define MV64x60_MPP_CNTL_3 0xf00c
  792. #define GT64260_MPP_SERIAL_PORTS_MULTIPLEX 0xf010
  793. #define MV64x60_ETH_BAR_GAP 0x8
  794. #define MV64x60_ETH_SIZE_REG_GAP 0x8
  795. #define MV64x60_ETH_HIGH_ADDR_REMAP_REG_GAP 0x4
  796. #define MV64x60_ETH_PORT_ACCESS_CTRL_GAP 0x4
  797. #define MV64x60_EBAR_ATTR_DRAM_CS0 0x00000E00
  798. #define MV64x60_EBAR_ATTR_DRAM_CS1 0x00000D00
  799. #define MV64x60_EBAR_ATTR_DRAM_CS2 0x00000B00
  800. #define MV64x60_EBAR_ATTR_DRAM_CS3 0x00000700
  801. #define MV64x60_EBAR_ATTR_CBS_SRAM_BLOCK0 0x00000000
  802. #define MV64x60_EBAR_ATTR_CBS_SRAM_BLOCK1 0x00000100
  803. #define MV64x60_EBAR_ATTR_CBS_SRAM 0x00000000
  804. #define MV64x60_EBAR_ATTR_CBS_CPU_BUS 0x00000800
  805. /*
  806. *****************************************************************************
  807. *
  808. * Interrupt Controller Interface Registers
  809. *
  810. *****************************************************************************
  811. */
  812. #define GT64260_IC_OFFSET 0x0c18
  813. #define GT64260_IC_MAIN_CAUSE_LO 0x0c18
  814. #define GT64260_IC_MAIN_CAUSE_HI 0x0c68
  815. #define GT64260_IC_CPU_INTR_MASK_LO 0x0c1c
  816. #define GT64260_IC_CPU_INTR_MASK_HI 0x0c6c
  817. #define GT64260_IC_CPU_SELECT_CAUSE 0x0c70
  818. #define GT64260_IC_PCI0_INTR_MASK_LO 0x0c24
  819. #define GT64260_IC_PCI0_INTR_MASK_HI 0x0c64
  820. #define GT64260_IC_PCI0_SELECT_CAUSE 0x0c74
  821. #define GT64260_IC_PCI1_INTR_MASK_LO 0x0ca4
  822. #define GT64260_IC_PCI1_INTR_MASK_HI 0x0ce4
  823. #define GT64260_IC_PCI1_SELECT_CAUSE 0x0cf4
  824. #define GT64260_IC_CPU_INT_0_MASK 0x0e60
  825. #define GT64260_IC_CPU_INT_1_MASK 0x0e64
  826. #define GT64260_IC_CPU_INT_2_MASK 0x0e68
  827. #define GT64260_IC_CPU_INT_3_MASK 0x0e6c
  828. #define MV64360_IC_OFFSET 0x0000
  829. #define MV64360_IC_MAIN_CAUSE_LO 0x0004
  830. #define MV64360_IC_MAIN_CAUSE_HI 0x000c
  831. #define MV64360_IC_CPU0_INTR_MASK_LO 0x0014
  832. #define MV64360_IC_CPU0_INTR_MASK_HI 0x001c
  833. #define MV64360_IC_CPU0_SELECT_CAUSE 0x0024
  834. #define MV64360_IC_CPU1_INTR_MASK_LO 0x0034
  835. #define MV64360_IC_CPU1_INTR_MASK_HI 0x003c
  836. #define MV64360_IC_CPU1_SELECT_CAUSE 0x0044
  837. #define MV64360_IC_INT0_MASK_LO 0x0054
  838. #define MV64360_IC_INT0_MASK_HI 0x005c
  839. #define MV64360_IC_INT0_SELECT_CAUSE 0x0064
  840. #define MV64360_IC_INT1_MASK_LO 0x0074
  841. #define MV64360_IC_INT1_MASK_HI 0x007c
  842. #define MV64360_IC_INT1_SELECT_CAUSE 0x0084
  843. #endif /* __ASMPPC_MV64x60_DEFS_H */