init.S 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. /*
  2. * init.S
  3. * ------
  4. *
  5. * Wind River PPMC 7xx/74xx init code.
  6. *
  7. * By Richard Danter (richard.danter@windriver.com)
  8. * Copyright (C) 2005 Wind River Systems
  9. *
  10. * NOTE: The following code was generated automatically by Workbench
  11. * from the ppmc7400_107.reg register file.
  12. */
  13. #include <ppc_asm.tmpl>
  14. .globl board_asm_init
  15. board_asm_init:
  16. lis r4,0xFEC0
  17. ori r4,r4,0x0000
  18. lis r5,0xFEE0
  19. ori r5,r5,0x0000
  20. lis r3,0x8000 # ADDR_00
  21. ori r3,r3,0x0000
  22. stwbrx r3,0,r4
  23. li r3,0x1057 # VENDOR
  24. li r8, 0x0
  25. sthbrx r3,r8,r5
  26. lis r3,0x8000 # ADDR_02
  27. ori r3,r3,0x0002
  28. stwbrx r3,0,r4
  29. li r3,0x0004 # ID
  30. li r8, 0x2
  31. sthbrx r3,r8,r5
  32. lis r3,0x8000 # ADDR_04
  33. ori r3,r3,0x0004
  34. stwbrx r3,0,r4
  35. li r3,0x0006 # PCICMD
  36. li r8, 0x0
  37. sthbrx r3,r8,r5
  38. lis r3,0x8000 # ADDR_06
  39. ori r3,r3,0x0006
  40. stwbrx r3,0,r4
  41. li r3,0x00A0 # PCISTAT
  42. li r8, 0x2
  43. sthbrx r3,r8,r5
  44. lis r3,0x8000 # ADDR_08
  45. ori r3,r3,0x0008
  46. stwbrx r3,0,r4
  47. li r3,0x10 # REVID
  48. stb r3,0x0(r5)
  49. lis r3,0x8000 # ADDR_09
  50. ori r3,r3,0x0009
  51. stwbrx r3,0,r4
  52. li r3,0x00 # PROGIR
  53. stb r3,0x1(r5)
  54. lis r3,0x8000 # ADDR_0A
  55. ori r3,r3,0x000A
  56. stwbrx r3,0,r4
  57. li r3,0x00 # SUBCCODE
  58. stb r3,0x2(r5)
  59. lis r3,0x8000 # ADDR_0B
  60. ori r3,r3,0x000B
  61. stwbrx r3,0,r4
  62. li r3,0x06 # PBCCR
  63. stb r3,0x3(r5)
  64. lis r3,0x8000 # ADDR_0C
  65. ori r3,r3,0x000C
  66. stwbrx r3,0,r4
  67. li r3,0x08 # PCLSR
  68. stb r3,0x0(r5)
  69. lis r3,0x8000 # ADDR_0D
  70. ori r3,r3,0x000D
  71. stwbrx r3,0,r4
  72. li r3,0x00 # PLTR
  73. stb r3,0x1(r5)
  74. lis r3,0x8000 # ADDR_0E
  75. ori r3,r3,0x000E
  76. stwbrx r3,0,r4
  77. li r3,0x00 # HEADTYPE
  78. stb r3,0x2(r5)
  79. lis r3,0x8000 # ADDR_0F
  80. ori r3,r3,0x000F
  81. stwbrx r3,0,r4
  82. li r3,0x00 # BISTCTRL
  83. stb r3,0x3(r5)
  84. lis r3,0x8000 # ADDR_10
  85. ori r3,r3,0x0010
  86. stwbrx r3,0,r4
  87. lis r3,0x0000 # LMBAR
  88. ori r3,r3,0x0008
  89. li r8, 0x0
  90. stwbrx r3,r8,r5
  91. lis r3,0x8000 # ADDR_14
  92. ori r3,r3,0x0014
  93. stwbrx r3,0,r4
  94. lis r3,0xF000 # PCSRBAR
  95. ori r3,r3,0x0000
  96. li r8, 0x0
  97. stwbrx r3,r8,r5
  98. lis r3,0x8000 # ADDR_3C
  99. ori r3,r3,0x003C
  100. stwbrx r3,0,r4
  101. li r3,0x00 # ILR
  102. stb r3,0x0(r5)
  103. lis r3,0x8000 # ADDR_3D
  104. ori r3,r3,0x003D
  105. stwbrx r3,0,r4
  106. li r3,0x01 # INTPIN
  107. stb r3,0x1(r5)
  108. lis r3,0x8000 # ADDR_3E
  109. ori r3,r3,0x003E
  110. stwbrx r3,0,r4
  111. li r3,0x00 # MIN_GNT
  112. stb r3,0x2(r5)
  113. lis r3,0x8000 # ADDR_3F
  114. ori r3,r3,0x003F
  115. stwbrx r3,0,r4
  116. li r3,0x00 # MAX_LAT
  117. stb r3,0x3(r5)
  118. lis r3,0x8000 # ADDR_40
  119. ori r3,r3,0x0040
  120. stwbrx r3,0,r4
  121. li r3,0x00 # BUSNB
  122. stb r3,0x0(r5)
  123. lis r3,0x8000 # ADDR_41
  124. ori r3,r3,0x0041
  125. stwbrx r3,0,r4
  126. li r3,0x00 # SBUSNB
  127. stb r3,0x1(r5)
  128. lis r3,0x8000 # ADDR_46
  129. ori r3,r3,0x0046
  130. stwbrx r3,0,r4
  131. # li r3,0xE080 # PCIARB
  132. li r3,-0x1F80 # PCIARB
  133. li r8, 0x2
  134. sthbrx r3,r8,r5
  135. lis r3,0x8000 # ADDR_70
  136. ori r3,r3,0x0070
  137. stwbrx r3,0,r4
  138. li r3,0x0000 # PMCR1
  139. li r8, 0x0
  140. sthbrx r3,r8,r5
  141. lis r3,0x8000 # ADDR_72
  142. ori r3,r3,0x0072
  143. stwbrx r3,0,r4
  144. li r3,0xC0 # PMCR2
  145. stb r3,0x2(r5)
  146. lis r3,0x8000 # ADDR_73
  147. ori r3,r3,0x0073
  148. stwbrx r3,0,r4
  149. li r3,0xEF # ODCR
  150. stb r3,0x3(r5)
  151. lis r3,0x8000 # ADDR_74
  152. ori r3,r3,0x0074
  153. stwbrx r3,0,r4
  154. li r3,0x7D00 # CLKDCR
  155. li r8, 0x0
  156. sthbrx r3,r8,r5
  157. lis r3,0x8000 # ADDR_76
  158. ori r3,r3,0x0076
  159. stwbrx r3,0,r4
  160. li r3,0x00 # MDCR
  161. stb r3,0x2(r5)
  162. lis r6,0xFCE0
  163. ori r6,r6,0x0000 # r6 is the EUMBAR Base Address
  164. lis r3,0x8000 # ADDR_78
  165. ori r3,r3,0x0078
  166. stwbrx r3,0,r4
  167. lis r3,0xFCE0 # EUMBBAR
  168. ori r3,r3,0x0000
  169. li r8, 0x0
  170. stwbrx r3,r8,r5
  171. lis r3,0x8000 # ADDR_80
  172. ori r3,r3,0x0080
  173. stwbrx r3,0,r4
  174. lis r3,0xFFFF # MSADDR1
  175. ori r3,r3,0x4000
  176. li r8, 0x0
  177. stwbrx r3,r8,r5
  178. lis r3,0x8000 # ADDR_84
  179. ori r3,r3,0x0084
  180. stwbrx r3,0,r4
  181. lis r3,0xFFFF # MSADDR2
  182. ori r3,r3,0xFFFF
  183. li r8, 0x0
  184. stwbrx r3,r8,r5
  185. lis r3,0x8000 # ADDR_88
  186. ori r3,r3,0x0088
  187. stwbrx r3,0,r4
  188. lis r3,0x0303 # EMSADDR1
  189. ori r3,r3,0x0000
  190. li r8, 0x0
  191. stwbrx r3,r8,r5
  192. lis r3,0x8000 # ADDR_8C
  193. ori r3,r3,0x008C
  194. stwbrx r3,0,r4
  195. lis r3,0x0303 # EMSADDR2
  196. ori r3,r3,0x0303
  197. li r8, 0x0
  198. stwbrx r3,r8,r5
  199. lis r3,0x8000 # ADDR_90
  200. ori r3,r3,0x0090
  201. stwbrx r3,0,r4
  202. lis r3,0xFFFF # EMEADDR1
  203. ori r3,r3,0x7F3F
  204. li r8, 0x0
  205. stwbrx r3,r8,r5
  206. lis r3,0x8000 # ADDR_94
  207. ori r3,r3,0x0094
  208. stwbrx r3,0,r4
  209. lis r3,0xFFFF # EMEADDR2
  210. ori r3,r3,0xFFFF
  211. li r8, 0x0
  212. stwbrx r3,r8,r5
  213. lis r3,0x8000 # ADDR_98
  214. ori r3,r3,0x0098
  215. stwbrx r3,0,r4
  216. lis r3,0x0303 # EXTEMEM1
  217. ori r3,r3,0x0000
  218. li r8, 0x0
  219. stwbrx r3,r8,r5
  220. lis r3,0x8000 # ADDR_9C
  221. ori r3,r3,0x009C
  222. stwbrx r3,0,r4
  223. lis r3,0x0303 # EXTEMEM2
  224. ori r3,r3,0x0303
  225. li r8, 0x0
  226. stwbrx r3,r8,r5
  227. lis r3,0x8000 # ADDR_A0
  228. ori r3,r3,0x00A0
  229. stwbrx r3,0,r4
  230. li r3,0x03 # MEMBNKEN
  231. stb r3,0x0(r5)
  232. lis r3,0x8000 # ADDR_A3
  233. ori r3,r3,0x00A3
  234. stwbrx r3,0,r4
  235. li r3,0x00 # MEMPMODE
  236. stb r3,0x3(r5)
  237. lis r3,0x8000 # ADDR_B8
  238. ori r3,r3,0x00B8
  239. stwbrx r3,0,r4
  240. li r3,0x00 # ECCCNT
  241. stb r3,0x0(r5)
  242. lis r3,0x8000 # ADDR_B9
  243. ori r3,r3,0x00B9
  244. stwbrx r3,0,r4
  245. li r3,0x00 # ECCTRG
  246. stb r3,0x1(r5)
  247. lis r3,0x8000 # ADDR_C0
  248. ori r3,r3,0x00C0
  249. stwbrx r3,0,r4
  250. li r3,0xFF # ERRENR1
  251. stb r3,0x0(r5)
  252. lis r3,0x8000 # ADDR_C1
  253. ori r3,r3,0x00C1
  254. stwbrx r3,0,r4
  255. li r3,0x00 # ERRDR1
  256. stb r3,0x1(r5)
  257. lis r3,0x8000 # ADDR_C3
  258. ori r3,r3,0x00C3
  259. stwbrx r3,0,r4
  260. li r3,0x50 # IPBESR
  261. stb r3,0x3(r5)
  262. lis r3,0x8000 # ADDR_C4
  263. ori r3,r3,0x00C4
  264. stwbrx r3,0,r4
  265. li r3,0xBF # ERRENR2
  266. stb r3,0x0(r5)
  267. lis r3,0x8000 # ADDR_C5
  268. ori r3,r3,0x00C5
  269. stwbrx r3,0,r4
  270. li r3,0x00 # ERRDR2
  271. stb r3,0x1(r5)
  272. lis r3,0x8000 # ADDR_C7
  273. ori r3,r3,0x00C7
  274. stwbrx r3,0,r4
  275. li r3,0x00 # PCIBESR
  276. stb r3,0x3(r5)
  277. lis r3,0x8000 # ADDR_C8
  278. ori r3,r3,0x00C8
  279. stwbrx r3,0,r4
  280. lis r3,0x0000 # BERRADDR
  281. ori r3,r3,0xE0FE
  282. li r8, 0x0
  283. stwbrx r3,r8,r5
  284. lis r3,0x8000 # ADDR_E0
  285. ori r3,r3,0x00E0
  286. stwbrx r3,0,r4
  287. li r3,0xC0 # AMBOR
  288. stb r3,0x0(r5)
  289. lis r3,0x8000 # ADDR_F4
  290. ori r3,r3,0x00F4
  291. stwbrx r3,0,r4
  292. lis r3,0x0000 # MCCR2
  293. ori r3,r3,0x020C
  294. li r8, 0x0
  295. stwbrx r3,r8,r5
  296. lis r3,0x8000 # ADDR_F8
  297. ori r3,r3,0x00F8
  298. stwbrx r3,0,r4
  299. lis r3,0x0230 # MCCR3
  300. ori r3,r3,0x0000
  301. li r8, 0x0
  302. stwbrx r3,r8,r5
  303. lis r3,0x8000 # ADDR_FC
  304. ori r3,r3,0x00FC
  305. stwbrx r3,0,r4
  306. lis r3,0x2532 # MCCR4
  307. ori r3,r3,0x2220
  308. li r8, 0x0
  309. stwbrx r3,r8,r5
  310. lis r3,0x8000 # ADDR_F0
  311. ori r3,r3,0x00F0
  312. stwbrx r3,0,r4
  313. lis r3,0xFFC8 # MCCR1
  314. ori r3,r3,0x0000
  315. li r8, 0x0
  316. stwbrx r3,r8,r5
  317. lis r3,0x8000 # ADDR_A8
  318. ori r3,r3,0x00A8
  319. stwbrx r3,0,r4
  320. lis r3,0xFF14 # PICR1
  321. ori r3,r3,0x1CC8
  322. li r8, 0x0
  323. stwbrx r3,r8,r5
  324. lis r3,0x8000 # ADDR_AC
  325. ori r3,r3,0x00AC
  326. stwbrx r3,0,r4
  327. lis r3,0x0000 # PICR2
  328. ori r3,r3,0x0000
  329. li r8, 0x0
  330. stwbrx r3,r8,r5
  331. blr