lowlevel_init.S 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558
  1. /*
  2. * Copyright (C) 2011 Renesas Solutions Corp.
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License as
  6. * published by the Free Software Foundation; either version 2 of
  7. * the License, or (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, write to the Free Software
  16. * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  17. * MA 02111-1307 USA
  18. */
  19. #include <config.h>
  20. #include <version.h>
  21. #include <asm/processor.h>
  22. #include <asm/macro.h>
  23. .macro or32, addr, data
  24. mov.l \addr, r1
  25. mov.l \data, r0
  26. mov.l @r1, r2
  27. or r2, r0
  28. mov.l r0, @r1
  29. .endm
  30. .macro wait_DBCMD
  31. mov.l DBWAIT_A, r0
  32. mov.l @r0, r1
  33. .endm
  34. .global lowlevel_init
  35. .section .spiboot1.text
  36. .align 2
  37. lowlevel_init:
  38. /*------- GPIO -------*/
  39. write8 PGDR_A, PGDR_D /* eMMC power off */
  40. write16 PACR_A, PACR_D
  41. write16 PBCR_A, PBCR_D
  42. write16 PCCR_A, PCCR_D
  43. write16 PDCR_A, PDCR_D
  44. write16 PECR_A, PECR_D
  45. write16 PFCR_A, PFCR_D
  46. write16 PGCR_A, PGCR_D
  47. write16 PHCR_A, PHCR_D
  48. write16 PICR_A, PICR_D
  49. write16 PJCR_A, PJCR_D
  50. write16 PKCR_A, PKCR_D
  51. write16 PLCR_A, PLCR_D
  52. write16 PMCR_A, PMCR_D
  53. write16 PNCR_A, PNCR_D
  54. write16 POCR_A, POCR_D
  55. write16 PQCR_A, PQCR_D
  56. write16 PRCR_A, PRCR_D
  57. write16 PSCR_A, PSCR_D
  58. write16 PTCR_A, PTCR_D
  59. write16 PUCR_A, PUCR_D
  60. write16 PVCR_A, PVCR_D
  61. write16 PWCR_A, PWCR_D
  62. write16 PXCR_A, PXCR_D
  63. write16 PYCR_A, PYCR_D
  64. write16 PZCR_A, PZCR_D
  65. write16 PSEL0_A, PSEL0_D
  66. write16 PSEL1_A, PSEL1_D
  67. write16 PSEL2_A, PSEL2_D
  68. write16 PSEL3_A, PSEL3_D
  69. write16 PSEL4_A, PSEL4_D
  70. write16 PSEL5_A, PSEL5_D
  71. write16 PSEL6_A, PSEL6_D
  72. write16 PSEL7_A, PSEL7_D
  73. write16 PSEL8_A, PSEL8_D
  74. bra exit_gpio
  75. nop
  76. .align 4
  77. /*------- GPIO -------*/
  78. PGDR_A: .long 0xffec0040
  79. PACR_A: .long 0xffec0000
  80. PBCR_A: .long 0xffec0002
  81. PCCR_A: .long 0xffec0004
  82. PDCR_A: .long 0xffec0006
  83. PECR_A: .long 0xffec0008
  84. PFCR_A: .long 0xffec000a
  85. PGCR_A: .long 0xffec000c
  86. PHCR_A: .long 0xffec000e
  87. PICR_A: .long 0xffec0010
  88. PJCR_A: .long 0xffec0012
  89. PKCR_A: .long 0xffec0014
  90. PLCR_A: .long 0xffec0016
  91. PMCR_A: .long 0xffec0018
  92. PNCR_A: .long 0xffec001a
  93. POCR_A: .long 0xffec001c
  94. PQCR_A: .long 0xffec0020
  95. PRCR_A: .long 0xffec0022
  96. PSCR_A: .long 0xffec0024
  97. PTCR_A: .long 0xffec0026
  98. PUCR_A: .long 0xffec0028
  99. PVCR_A: .long 0xffec002a
  100. PWCR_A: .long 0xffec002c
  101. PXCR_A: .long 0xffec002e
  102. PYCR_A: .long 0xffec0030
  103. PZCR_A: .long 0xffec0032
  104. PSEL0_A: .long 0xffec0070
  105. PSEL1_A: .long 0xffec0072
  106. PSEL2_A: .long 0xffec0074
  107. PSEL3_A: .long 0xffec0076
  108. PSEL4_A: .long 0xffec0078
  109. PSEL5_A: .long 0xffec007a
  110. PSEL6_A: .long 0xffec007c
  111. PSEL7_A: .long 0xffec0082
  112. PSEL8_A: .long 0xffec0084
  113. PGDR_D: .long 0x80
  114. PACR_D: .long 0x0000
  115. PBCR_D: .long 0x0001
  116. PCCR_D: .long 0x0000
  117. PDCR_D: .long 0x0000
  118. PECR_D: .long 0x0000
  119. PFCR_D: .long 0x0000
  120. PGCR_D: .long 0x0000
  121. PHCR_D: .long 0x0000
  122. PICR_D: .long 0x0000
  123. PJCR_D: .long 0x0000
  124. PKCR_D: .long 0x0003
  125. PLCR_D: .long 0x0000
  126. PMCR_D: .long 0x0000
  127. PNCR_D: .long 0x0000
  128. POCR_D: .long 0x0000
  129. PQCR_D: .long 0xc000
  130. PRCR_D: .long 0x0000
  131. PSCR_D: .long 0x0000
  132. PTCR_D: .long 0x0000
  133. #if defined(CONFIG_SH7757_OFFSET_SPI)
  134. PUCR_D: .long 0x0055
  135. #else
  136. PUCR_D: .long 0x0000
  137. #endif
  138. PVCR_D: .long 0x0000
  139. PWCR_D: .long 0x0000
  140. PXCR_D: .long 0x0000
  141. PYCR_D: .long 0x0000
  142. PZCR_D: .long 0x0000
  143. PSEL0_D: .long 0xfe00
  144. PSEL1_D: .long 0x0000
  145. PSEL2_D: .long 0x3000
  146. PSEL3_D: .long 0xff00
  147. PSEL4_D: .long 0x771f
  148. PSEL5_D: .long 0x0ffc
  149. PSEL6_D: .long 0x00ff
  150. PSEL7_D: .long 0xfc00
  151. PSEL8_D: .long 0x0000
  152. .align 2
  153. exit_gpio:
  154. mov #0, r14
  155. mova 2f, r0
  156. mov.l PC_MASK, r1
  157. tst r0, r1
  158. bf 2f
  159. bra exit_pmb
  160. nop
  161. .align 2
  162. /* If CPU runs on SDRAM, PC is 0x8???????. */
  163. PC_MASK: .long 0x20000000
  164. 2:
  165. mov #1, r14
  166. mov.l EXPEVT_A, r0
  167. mov.l @r0, r0
  168. mov.l EXPEVT_POWER_ON_RESET, r1
  169. cmp/eq r0, r1
  170. bt 1f
  171. /*
  172. * If EXPEVT value is manual reset or tlb multipul-hit,
  173. * initialization of DDR3IF is not necessary.
  174. */
  175. bra exit_ddr
  176. nop
  177. 1:
  178. /* For Core Reset */
  179. mov.l DBACEN_A, r0
  180. mov.l @r0, r0
  181. cmp/eq #0, r0
  182. bt 3f
  183. /*
  184. * If DBACEN == 1(DBSC was already enabled), we have to avoid the
  185. * initialization of DDR3-SDRAM.
  186. */
  187. bra exit_ddr
  188. nop
  189. 3:
  190. /*------- DDR3IF -------*/
  191. /* oscillation stabilization time */
  192. wait_timer WAIT_OSC_TIME
  193. /* step 3 */
  194. write32 DBCMD_A, DBCMD_RSTL_VAL
  195. wait_timer WAIT_30US
  196. /* step 4 */
  197. write32 DBCMD_A, DBCMD_PDEN_VAL
  198. /* step 5 */
  199. write32 DBKIND_A, DBKIND_D
  200. /* step 6 */
  201. write32 DBCONF_A, DBCONF_D
  202. write32 DBTR0_A, DBTR0_D
  203. write32 DBTR1_A, DBTR1_D
  204. write32 DBTR2_A, DBTR2_D
  205. write32 DBTR3_A, DBTR3_D
  206. write32 DBTR4_A, DBTR4_D
  207. write32 DBTR5_A, DBTR5_D
  208. write32 DBTR6_A, DBTR6_D
  209. write32 DBTR7_A, DBTR7_D
  210. write32 DBTR8_A, DBTR8_D
  211. write32 DBTR9_A, DBTR9_D
  212. write32 DBTR10_A, DBTR10_D
  213. write32 DBTR11_A, DBTR11_D
  214. write32 DBTR12_A, DBTR12_D
  215. write32 DBTR13_A, DBTR13_D
  216. write32 DBTR14_A, DBTR14_D
  217. write32 DBTR15_A, DBTR15_D
  218. write32 DBTR16_A, DBTR16_D
  219. write32 DBTR17_A, DBTR17_D
  220. write32 DBTR18_A, DBTR18_D
  221. write32 DBTR19_A, DBTR19_D
  222. write32 DBRNK0_A, DBRNK0_D
  223. /* step 7 */
  224. write32 DBPDCNT3_A, DBPDCNT3_D
  225. /* step 8 */
  226. write32 DBPDCNT1_A, DBPDCNT1_D
  227. write32 DBPDCNT2_A, DBPDCNT2_D
  228. write32 DBPDLCK_A, DBPDLCK_D
  229. write32 DBPDRGA_A, DBPDRGA_D
  230. write32 DBPDRGD_A, DBPDRGD_D
  231. /* step 9 */
  232. wait_timer WAIT_30US
  233. /* step 10 */
  234. write32 DBPDCNT0_A, DBPDCNT0_D
  235. /* step 11 */
  236. wait_timer WAIT_30US
  237. wait_timer WAIT_30US
  238. /* step 12 */
  239. write32 DBCMD_A, DBCMD_WAIT_VAL
  240. wait_DBCMD
  241. /* step 13 */
  242. write32 DBCMD_A, DBCMD_RSTH_VAL
  243. wait_DBCMD
  244. /* step 14 */
  245. write32 DBCMD_A, DBCMD_WAIT_VAL
  246. write32 DBCMD_A, DBCMD_WAIT_VAL
  247. write32 DBCMD_A, DBCMD_WAIT_VAL
  248. write32 DBCMD_A, DBCMD_WAIT_VAL
  249. /* step 15 */
  250. write32 DBCMD_A, DBCMD_PDXT_VAL
  251. /* step 16 */
  252. write32 DBCMD_A, DBCMD_MRS2_VAL
  253. /* step 17 */
  254. write32 DBCMD_A, DBCMD_MRS3_VAL
  255. /* step 18 */
  256. write32 DBCMD_A, DBCMD_MRS1_VAL
  257. /* step 19 */
  258. write32 DBCMD_A, DBCMD_MRS0_VAL
  259. /* step 20 */
  260. write32 DBCMD_A, DBCMD_ZQCL_VAL
  261. write32 DBCMD_A, DBCMD_REF_VAL
  262. write32 DBCMD_A, DBCMD_REF_VAL
  263. wait_DBCMD
  264. /* step 21 */
  265. write32 DBADJ0_A, DBADJ0_D
  266. write32 DBADJ1_A, DBADJ1_D
  267. write32 DBADJ2_A, DBADJ2_D
  268. /* step 22 */
  269. write32 DBRFCNF0_A, DBRFCNF0_D
  270. write32 DBRFCNF1_A, DBRFCNF1_D
  271. write32 DBRFCNF2_A, DBRFCNF2_D
  272. /* step 23 */
  273. write32 DBCALCNF_A, DBCALCNF_D
  274. /* step 24 */
  275. write32 DBRFEN_A, DBRFEN_D
  276. write32 DBCMD_A, DBCMD_SRXT_VAL
  277. /* step 25 */
  278. write32 DBACEN_A, DBACEN_D
  279. /* step 26 */
  280. wait_DBCMD
  281. /* enable DDR-ECC */
  282. write32 ECD_ECDEN_A, ECD_ECDEN_D
  283. write32 ECD_INTSR_A, ECD_INTSR_D
  284. write32 ECD_SPACER_A, ECD_SPACER_D
  285. write32 ECD_MCR_A, ECD_MCR_D
  286. bra exit_ddr
  287. nop
  288. .align 4
  289. EXPEVT_A: .long 0xff000024
  290. EXPEVT_POWER_ON_RESET: .long 0x00000000
  291. /*------- DDR3IF -------*/
  292. DBCMD_A: .long 0xfe800018
  293. DBKIND_A: .long 0xfe800020
  294. DBCONF_A: .long 0xfe800024
  295. DBTR0_A: .long 0xfe800040
  296. DBTR1_A: .long 0xfe800044
  297. DBTR2_A: .long 0xfe800048
  298. DBTR3_A: .long 0xfe800050
  299. DBTR4_A: .long 0xfe800054
  300. DBTR5_A: .long 0xfe800058
  301. DBTR6_A: .long 0xfe80005c
  302. DBTR7_A: .long 0xfe800060
  303. DBTR8_A: .long 0xfe800064
  304. DBTR9_A: .long 0xfe800068
  305. DBTR10_A: .long 0xfe80006c
  306. DBTR11_A: .long 0xfe800070
  307. DBTR12_A: .long 0xfe800074
  308. DBTR13_A: .long 0xfe800078
  309. DBTR14_A: .long 0xfe80007c
  310. DBTR15_A: .long 0xfe800080
  311. DBTR16_A: .long 0xfe800084
  312. DBTR17_A: .long 0xfe800088
  313. DBTR18_A: .long 0xfe80008c
  314. DBTR19_A: .long 0xfe800090
  315. DBRNK0_A: .long 0xfe800100
  316. DBPDCNT0_A: .long 0xfe800200
  317. DBPDCNT1_A: .long 0xfe800204
  318. DBPDCNT2_A: .long 0xfe800208
  319. DBPDCNT3_A: .long 0xfe80020c
  320. DBPDLCK_A: .long 0xfe800280
  321. DBPDRGA_A: .long 0xfe800290
  322. DBPDRGD_A: .long 0xfe8002a0
  323. DBADJ0_A: .long 0xfe8000c0
  324. DBADJ1_A: .long 0xfe8000c4
  325. DBADJ2_A: .long 0xfe8000c8
  326. DBRFCNF0_A: .long 0xfe8000e0
  327. DBRFCNF1_A: .long 0xfe8000e4
  328. DBRFCNF2_A: .long 0xfe8000e8
  329. DBCALCNF_A: .long 0xfe8000f4
  330. DBRFEN_A: .long 0xfe800014
  331. DBACEN_A: .long 0xfe800010
  332. DBWAIT_A: .long 0xfe80001c
  333. WAIT_OSC_TIME: .long 6000
  334. WAIT_30US: .long 13333
  335. DBCMD_RSTL_VAL: .long 0x20000000
  336. DBCMD_PDEN_VAL: .long 0x1000d73c
  337. DBCMD_WAIT_VAL: .long 0x0000d73c
  338. DBCMD_RSTH_VAL: .long 0x2100d73c
  339. DBCMD_PDXT_VAL: .long 0x110000c8
  340. DBCMD_MRS0_VAL: .long 0x28000930
  341. DBCMD_MRS1_VAL: .long 0x29000004
  342. DBCMD_MRS2_VAL: .long 0x2a000008
  343. DBCMD_MRS3_VAL: .long 0x2b000000
  344. DBCMD_ZQCL_VAL: .long 0x03000200
  345. DBCMD_REF_VAL: .long 0x0c000000
  346. DBCMD_SRXT_VAL: .long 0x19000000
  347. DBKIND_D: .long 0x00000007
  348. DBCONF_D: .long 0x0f030a01
  349. DBTR0_D: .long 0x00000007
  350. DBTR1_D: .long 0x00000006
  351. DBTR2_D: .long 0x00000000
  352. DBTR3_D: .long 0x00000007
  353. DBTR4_D: .long 0x00070007
  354. DBTR5_D: .long 0x0000001b
  355. DBTR6_D: .long 0x00000014
  356. DBTR7_D: .long 0x00000005
  357. DBTR8_D: .long 0x00000015
  358. DBTR9_D: .long 0x00000006
  359. DBTR10_D: .long 0x00000008
  360. DBTR11_D: .long 0x00000007
  361. DBTR12_D: .long 0x0000000e
  362. DBTR13_D: .long 0x00000056
  363. DBTR14_D: .long 0x00000006
  364. DBTR15_D: .long 0x00000004
  365. DBTR16_D: .long 0x00150002
  366. DBTR17_D: .long 0x000c0017
  367. DBTR18_D: .long 0x00000200
  368. DBTR19_D: .long 0x00000040
  369. DBRNK0_D: .long 0x00000001
  370. DBPDCNT0_D: .long 0x00000001
  371. DBPDCNT1_D: .long 0x00000001
  372. DBPDCNT2_D: .long 0x00000000
  373. DBPDCNT3_D: .long 0x00004010
  374. DBPDLCK_D: .long 0x0000a55a
  375. DBPDRGA_D: .long 0x00000028
  376. DBPDRGD_D: .long 0x00017100
  377. DBADJ0_D: .long 0x00000000
  378. DBADJ1_D: .long 0x00000000
  379. DBADJ2_D: .long 0x18061806
  380. DBRFCNF0_D: .long 0x000001ff
  381. DBRFCNF1_D: .long 0x08001000
  382. DBRFCNF2_D: .long 0x00000000
  383. DBCALCNF_D: .long 0x0000ffff
  384. DBRFEN_D: .long 0x00000001
  385. DBACEN_D: .long 0x00000001
  386. /*------- DDR-ECC -------*/
  387. ECD_ECDEN_A: .long 0xffc1012c
  388. ECD_ECDEN_D: .long 0x00000001
  389. ECD_INTSR_A: .long 0xfe900024
  390. ECD_INTSR_D: .long 0xffffffff
  391. ECD_SPACER_A: .long 0xfe900018
  392. ECD_SPACER_D: .long SH7757LCR_SDRAM_ECC_SETTING
  393. ECD_MCR_A: .long 0xfe900010
  394. ECD_MCR_D: .long 0x00000001
  395. .align 2
  396. exit_ddr:
  397. #if defined(CONFIG_SH_32BIT)
  398. /*------- set PMB -------*/
  399. write32 PASCR_A, PASCR_29BIT_D
  400. write32 MMUCR_A, MMUCR_D
  401. /*****************************************************************
  402. * ent virt phys v sz c wt
  403. * 0 0xa0000000 0x00000000 1 128M 0 1
  404. * 1 0xa8000000 0x48000000 1 128M 0 1
  405. * 5 0x88000000 0x48000000 1 128M 1 1
  406. */
  407. write32 PMB_ADDR_SPIBOOT_A, PMB_ADDR_SPIBOOT_D
  408. write32 PMB_DATA_SPIBOOT_A, PMB_DATA_SPIBOOT_D
  409. write32 PMB_ADDR_DDR_C1_A, PMB_ADDR_DDR_C1_D
  410. write32 PMB_DATA_DDR_C1_A, PMB_DATA_DDR_C1_D
  411. write32 PMB_ADDR_DDR_N1_A, PMB_ADDR_DDR_N1_D
  412. write32 PMB_DATA_DDR_N1_A, PMB_DATA_DDR_N1_D
  413. write32 PMB_ADDR_ENTRY2, PMB_ADDR_NOT_USE_D
  414. write32 PMB_ADDR_ENTRY3, PMB_ADDR_NOT_USE_D
  415. write32 PMB_ADDR_ENTRY4, PMB_ADDR_NOT_USE_D
  416. write32 PMB_ADDR_ENTRY6, PMB_ADDR_NOT_USE_D
  417. write32 PMB_ADDR_ENTRY7, PMB_ADDR_NOT_USE_D
  418. write32 PMB_ADDR_ENTRY8, PMB_ADDR_NOT_USE_D
  419. write32 PMB_ADDR_ENTRY9, PMB_ADDR_NOT_USE_D
  420. write32 PMB_ADDR_ENTRY10, PMB_ADDR_NOT_USE_D
  421. write32 PMB_ADDR_ENTRY11, PMB_ADDR_NOT_USE_D
  422. write32 PMB_ADDR_ENTRY12, PMB_ADDR_NOT_USE_D
  423. write32 PMB_ADDR_ENTRY13, PMB_ADDR_NOT_USE_D
  424. write32 PMB_ADDR_ENTRY14, PMB_ADDR_NOT_USE_D
  425. write32 PMB_ADDR_ENTRY15, PMB_ADDR_NOT_USE_D
  426. write32 PASCR_A, PASCR_INIT
  427. mov.l DUMMY_ADDR, r0
  428. icbi @r0
  429. #endif /* if defined(CONFIG_SH_32BIT) */
  430. exit_pmb:
  431. /* CPU is running on ILRAM? */
  432. mov r14, r0
  433. tst #1, r0
  434. bt 1f
  435. mov.l _bss_start, r15
  436. mov.l _spiboot_main, r0
  437. 100: bsrf r0
  438. nop
  439. .align 2
  440. _spiboot_main: .long (spiboot_main - (100b + 4))
  441. _bss_start: .long bss_start
  442. 1:
  443. write32 CCR_A, CCR_D
  444. rts
  445. nop
  446. .align 4
  447. #if defined(CONFIG_SH_32BIT)
  448. /*------- set PMB -------*/
  449. PMB_ADDR_SPIBOOT_A: .long PMB_ADDR_BASE(0)
  450. PMB_ADDR_DDR_N1_A: .long PMB_ADDR_BASE(1)
  451. PMB_ADDR_DDR_C1_A: .long PMB_ADDR_BASE(5)
  452. PMB_ADDR_ENTRY2: .long PMB_ADDR_BASE(2)
  453. PMB_ADDR_ENTRY3: .long PMB_ADDR_BASE(3)
  454. PMB_ADDR_ENTRY4: .long PMB_ADDR_BASE(4)
  455. PMB_ADDR_ENTRY6: .long PMB_ADDR_BASE(6)
  456. PMB_ADDR_ENTRY7: .long PMB_ADDR_BASE(7)
  457. PMB_ADDR_ENTRY8: .long PMB_ADDR_BASE(8)
  458. PMB_ADDR_ENTRY9: .long PMB_ADDR_BASE(9)
  459. PMB_ADDR_ENTRY10: .long PMB_ADDR_BASE(10)
  460. PMB_ADDR_ENTRY11: .long PMB_ADDR_BASE(11)
  461. PMB_ADDR_ENTRY12: .long PMB_ADDR_BASE(12)
  462. PMB_ADDR_ENTRY13: .long PMB_ADDR_BASE(13)
  463. PMB_ADDR_ENTRY14: .long PMB_ADDR_BASE(14)
  464. PMB_ADDR_ENTRY15: .long PMB_ADDR_BASE(15)
  465. PMB_ADDR_SPIBOOT_D: .long mk_pmb_addr_val(0xa0)
  466. PMB_ADDR_DDR_C1_D: .long mk_pmb_addr_val(0x88)
  467. PMB_ADDR_DDR_N1_D: .long mk_pmb_addr_val(0xa8)
  468. PMB_ADDR_NOT_USE_D: .long 0x00000000
  469. PMB_DATA_SPIBOOT_A: .long PMB_DATA_BASE(0)
  470. PMB_DATA_DDR_N1_A: .long PMB_DATA_BASE(1)
  471. PMB_DATA_DDR_C1_A: .long PMB_DATA_BASE(5)
  472. /* ppn ub v s1 s0 c wt */
  473. PMB_DATA_SPIBOOT_D: .long mk_pmb_data_val(0x00, 0, 1, 1, 0, 0, 1)
  474. PMB_DATA_DDR_C1_D: .long mk_pmb_data_val(0x48, 0, 1, 1, 0, 1, 1)
  475. PMB_DATA_DDR_N1_D: .long mk_pmb_data_val(0x48, 1, 1, 1, 0, 0, 1)
  476. PASCR_A: .long 0xff000070
  477. DUMMY_ADDR: .long 0xa0000000
  478. PASCR_29BIT_D: .long 0x00000000
  479. PASCR_INIT: .long 0x80000080
  480. MMUCR_A: .long 0xff000010
  481. MMUCR_D: .long 0x00000004 /* clear ITLB */
  482. #endif /* CONFIG_SH_32BIT */
  483. CCR_A: .long CCR
  484. CCR_D: .long CCR_CACHE_INIT