ps7_init_gpl.c 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * (c) Copyright 2010-2014 Xilinx, Inc. All rights reserved.
  4. */
  5. #include <asm/arch/ps7_init_gpl.h>
  6. static unsigned long ps7_pll_init_data_3_0[] = {
  7. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  8. EMIT_MASKWRITE(0xF8000110, 0x003FFFF0U, 0x000FA220U),
  9. EMIT_MASKWRITE(0xF8000100, 0x0007F000U, 0x00028000U),
  10. EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000010U),
  11. EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000001U),
  12. EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000000U),
  13. EMIT_MASKPOLL(0xF800010C, 0x00000001U),
  14. EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000000U),
  15. EMIT_MASKWRITE(0xF8000120, 0x1F003F30U, 0x1F000200U),
  16. EMIT_MASKWRITE(0xF8000114, 0x003FFFF0U, 0x0012C220U),
  17. EMIT_MASKWRITE(0xF8000104, 0x0007F000U, 0x00020000U),
  18. EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000010U),
  19. EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000001U),
  20. EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000000U),
  21. EMIT_MASKPOLL(0xF800010C, 0x00000002U),
  22. EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000000U),
  23. EMIT_MASKWRITE(0xF8000124, 0xFFF00003U, 0x0C200003U),
  24. EMIT_MASKWRITE(0xF8000118, 0x003FFFF0U, 0x001452C0U),
  25. EMIT_MASKWRITE(0xF8000108, 0x0007F000U, 0x0001E000U),
  26. EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000010U),
  27. EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000001U),
  28. EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000000U),
  29. EMIT_MASKPOLL(0xF800010C, 0x00000004U),
  30. EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000000U),
  31. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  32. EMIT_EXIT(),
  33. };
  34. static unsigned long ps7_clock_init_data_3_0[] = {
  35. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  36. EMIT_MASKWRITE(0xF8000128, 0x03F03F01U, 0x00700F01U),
  37. EMIT_MASKWRITE(0xF800013C, 0x00000011U, 0x00000001U),
  38. EMIT_MASKWRITE(0xF8000144, 0x03F03F71U, 0x00100801U),
  39. EMIT_MASKWRITE(0xF800014C, 0x00003F31U, 0x00000501U),
  40. EMIT_MASKWRITE(0xF8000154, 0x00003F33U, 0x00001401U),
  41. EMIT_MASKWRITE(0xF8000158, 0x00003F33U, 0x00000601U),
  42. EMIT_MASKWRITE(0xF800015C, 0x03F03F33U, 0x00600702U),
  43. EMIT_MASKWRITE(0xF8000160, 0x007F007FU, 0x00000000U),
  44. EMIT_MASKWRITE(0xF8000168, 0x00003F31U, 0x00000401U),
  45. EMIT_MASKWRITE(0xF8000170, 0x03F03F30U, 0x00400500U),
  46. EMIT_MASKWRITE(0xF80001C4, 0x00000001U, 0x00000001U),
  47. EMIT_MASKWRITE(0xF800012C, 0x01FFCCCDU, 0x01DE408DU),
  48. EMIT_MASKWRITE(0xF8000304, 0x00000001U, 0x00000000U),
  49. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  50. EMIT_EXIT(),
  51. };
  52. static unsigned long ps7_ddr_init_data_3_0[] = {
  53. EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000080U),
  54. EMIT_MASKWRITE(0xF8006004, 0x0007FFFFU, 0x00001081U),
  55. EMIT_MASKWRITE(0xF8006008, 0x03FFFFFFU, 0x03C0780FU),
  56. EMIT_MASKWRITE(0xF800600C, 0x03FFFFFFU, 0x02001001U),
  57. EMIT_MASKWRITE(0xF8006010, 0x03FFFFFFU, 0x00014001U),
  58. EMIT_MASKWRITE(0xF8006014, 0x001FFFFFU, 0x0004159BU),
  59. EMIT_MASKWRITE(0xF8006018, 0xF7FFFFFFU, 0x44E438D2U),
  60. EMIT_MASKWRITE(0xF800601C, 0xFFFFFFFFU, 0x720238E5U),
  61. EMIT_MASKWRITE(0xF8006020, 0x7FDFFFFCU, 0x27087290U),
  62. EMIT_MASKWRITE(0xF8006024, 0x0FFFFFC3U, 0x00000000U),
  63. EMIT_MASKWRITE(0xF8006028, 0x00003FFFU, 0x00002007U),
  64. EMIT_MASKWRITE(0xF800602C, 0xFFFFFFFFU, 0x00000008U),
  65. EMIT_MASKWRITE(0xF8006030, 0xFFFFFFFFU, 0x00040930U),
  66. EMIT_MASKWRITE(0xF8006034, 0x13FF3FFFU, 0x000116D4U),
  67. EMIT_MASKWRITE(0xF8006038, 0x00000003U, 0x00000000U),
  68. EMIT_MASKWRITE(0xF800603C, 0x000FFFFFU, 0x00000777U),
  69. EMIT_MASKWRITE(0xF8006040, 0xFFFFFFFFU, 0xFFF00000U),
  70. EMIT_MASKWRITE(0xF8006044, 0x0FFFFFFFU, 0x0F666666U),
  71. EMIT_MASKWRITE(0xF8006048, 0x0003F03FU, 0x0003C008U),
  72. EMIT_MASKWRITE(0xF8006050, 0xFF0F8FFFU, 0x77010800U),
  73. EMIT_MASKWRITE(0xF8006058, 0x00010000U, 0x00000000U),
  74. EMIT_MASKWRITE(0xF800605C, 0x0000FFFFU, 0x00005003U),
  75. EMIT_MASKWRITE(0xF8006060, 0x000017FFU, 0x0000003EU),
  76. EMIT_MASKWRITE(0xF8006064, 0x00021FE0U, 0x00020000U),
  77. EMIT_MASKWRITE(0xF8006068, 0x03FFFFFFU, 0x00284141U),
  78. EMIT_MASKWRITE(0xF800606C, 0x0000FFFFU, 0x00001610U),
  79. EMIT_MASKWRITE(0xF8006078, 0x03FFFFFFU, 0x00466111U),
  80. EMIT_MASKWRITE(0xF800607C, 0x000FFFFFU, 0x00032222U),
  81. EMIT_MASKWRITE(0xF80060A4, 0xFFFFFFFFU, 0x10200802U),
  82. EMIT_MASKWRITE(0xF80060A8, 0x0FFFFFFFU, 0x0690CB73U),
  83. EMIT_MASKWRITE(0xF80060AC, 0x000001FFU, 0x000001FEU),
  84. EMIT_MASKWRITE(0xF80060B0, 0x1FFFFFFFU, 0x1CFFFFFFU),
  85. EMIT_MASKWRITE(0xF80060B4, 0x00000200U, 0x00000200U),
  86. EMIT_MASKWRITE(0xF80060B8, 0x01FFFFFFU, 0x00200066U),
  87. EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000003U),
  88. EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000000U),
  89. EMIT_MASKWRITE(0xF80060C8, 0x000000FFU, 0x00000000U),
  90. EMIT_MASKWRITE(0xF80060DC, 0x00000001U, 0x00000000U),
  91. EMIT_MASKWRITE(0xF80060F0, 0x0000FFFFU, 0x00000000U),
  92. EMIT_MASKWRITE(0xF80060F4, 0x0000000FU, 0x00000008U),
  93. EMIT_MASKWRITE(0xF8006114, 0x000000FFU, 0x00000000U),
  94. EMIT_MASKWRITE(0xF8006118, 0x7FFFFFCFU, 0x40000001U),
  95. EMIT_MASKWRITE(0xF800611C, 0x7FFFFFCFU, 0x40000001U),
  96. EMIT_MASKWRITE(0xF8006120, 0x7FFFFFCFU, 0x40000001U),
  97. EMIT_MASKWRITE(0xF8006124, 0x7FFFFFCFU, 0x40000001U),
  98. EMIT_MASKWRITE(0xF800612C, 0x000FFFFFU, 0x00039C1BU),
  99. EMIT_MASKWRITE(0xF8006130, 0x000FFFFFU, 0x00037C35U),
  100. EMIT_MASKWRITE(0xF8006134, 0x000FFFFFU, 0x0003942FU),
  101. EMIT_MASKWRITE(0xF8006138, 0x000FFFFFU, 0x00038C1FU),
  102. EMIT_MASKWRITE(0xF8006140, 0x000FFFFFU, 0x00000035U),
  103. EMIT_MASKWRITE(0xF8006144, 0x000FFFFFU, 0x00000035U),
  104. EMIT_MASKWRITE(0xF8006148, 0x000FFFFFU, 0x00000035U),
  105. EMIT_MASKWRITE(0xF800614C, 0x000FFFFFU, 0x00000035U),
  106. EMIT_MASKWRITE(0xF8006154, 0x000FFFFFU, 0x0000009BU),
  107. EMIT_MASKWRITE(0xF8006158, 0x000FFFFFU, 0x000000B5U),
  108. EMIT_MASKWRITE(0xF800615C, 0x000FFFFFU, 0x000000AFU),
  109. EMIT_MASKWRITE(0xF8006160, 0x000FFFFFU, 0x0000009FU),
  110. EMIT_MASKWRITE(0xF8006168, 0x001FFFFFU, 0x0000013CU),
  111. EMIT_MASKWRITE(0xF800616C, 0x001FFFFFU, 0x00000134U),
  112. EMIT_MASKWRITE(0xF8006170, 0x001FFFFFU, 0x0000013AU),
  113. EMIT_MASKWRITE(0xF8006174, 0x001FFFFFU, 0x00000138U),
  114. EMIT_MASKWRITE(0xF800617C, 0x000FFFFFU, 0x000000DBU),
  115. EMIT_MASKWRITE(0xF8006180, 0x000FFFFFU, 0x000000F5U),
  116. EMIT_MASKWRITE(0xF8006184, 0x000FFFFFU, 0x000000EFU),
  117. EMIT_MASKWRITE(0xF8006188, 0x000FFFFFU, 0x000000DFU),
  118. EMIT_MASKWRITE(0xF8006190, 0x6FFFFEFEU, 0x00040080U),
  119. EMIT_MASKWRITE(0xF8006194, 0x000FFFFFU, 0x0001FC82U),
  120. EMIT_MASKWRITE(0xF8006204, 0xFFFFFFFFU, 0x00000000U),
  121. EMIT_MASKWRITE(0xF8006208, 0x000703FFU, 0x000003FFU),
  122. EMIT_MASKWRITE(0xF800620C, 0x000703FFU, 0x000003FFU),
  123. EMIT_MASKWRITE(0xF8006210, 0x000703FFU, 0x000003FFU),
  124. EMIT_MASKWRITE(0xF8006214, 0x000703FFU, 0x000003FFU),
  125. EMIT_MASKWRITE(0xF8006218, 0x000F03FFU, 0x000003FFU),
  126. EMIT_MASKWRITE(0xF800621C, 0x000F03FFU, 0x000003FFU),
  127. EMIT_MASKWRITE(0xF8006220, 0x000F03FFU, 0x000003FFU),
  128. EMIT_MASKWRITE(0xF8006224, 0x000F03FFU, 0x000003FFU),
  129. EMIT_MASKWRITE(0xF80062A8, 0x00000FF5U, 0x00000000U),
  130. EMIT_MASKWRITE(0xF80062AC, 0xFFFFFFFFU, 0x00000000U),
  131. EMIT_MASKWRITE(0xF80062B0, 0x003FFFFFU, 0x00005125U),
  132. EMIT_MASKWRITE(0xF80062B4, 0x0003FFFFU, 0x000012A8U),
  133. EMIT_MASKPOLL(0xF8000B74, 0x00002000U),
  134. EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000081U),
  135. EMIT_MASKPOLL(0xF8006054, 0x00000007U),
  136. EMIT_EXIT(),
  137. };
  138. static unsigned long ps7_mio_init_data_3_0[] = {
  139. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  140. EMIT_MASKWRITE(0xF8000B40, 0x00000FFFU, 0x00000600U),
  141. EMIT_MASKWRITE(0xF8000B44, 0x00000FFFU, 0x00000600U),
  142. EMIT_MASKWRITE(0xF8000B48, 0x00000FFFU, 0x00000672U),
  143. EMIT_MASKWRITE(0xF8000B4C, 0x00000FFFU, 0x00000672U),
  144. EMIT_MASKWRITE(0xF8000B50, 0x00000FFFU, 0x00000674U),
  145. EMIT_MASKWRITE(0xF8000B54, 0x00000FFFU, 0x00000674U),
  146. EMIT_MASKWRITE(0xF8000B58, 0x00000FFFU, 0x00000600U),
  147. EMIT_MASKWRITE(0xF8000B5C, 0xFFFFFFFFU, 0x0018C61CU),
  148. EMIT_MASKWRITE(0xF8000B60, 0xFFFFFFFFU, 0x00F9861CU),
  149. EMIT_MASKWRITE(0xF8000B64, 0xFFFFFFFFU, 0x00F9861CU),
  150. EMIT_MASKWRITE(0xF8000B68, 0xFFFFFFFFU, 0x00F9861CU),
  151. EMIT_MASKWRITE(0xF8000B6C, 0x00007FFFU, 0x00000209U),
  152. EMIT_MASKWRITE(0xF8000B70, 0x00000001U, 0x00000001U),
  153. EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000020U),
  154. EMIT_MASKWRITE(0xF8000B70, 0x07FEFFFFU, 0x00000823U),
  155. EMIT_MASKWRITE(0xF8000700, 0x00003FFFU, 0x00001602U),
  156. EMIT_MASKWRITE(0xF8000704, 0x00003FFFU, 0x00001602U),
  157. EMIT_MASKWRITE(0xF8000708, 0x00003FFFU, 0x00000602U),
  158. EMIT_MASKWRITE(0xF800070C, 0x00003FFFU, 0x00000602U),
  159. EMIT_MASKWRITE(0xF8000710, 0x00003FFFU, 0x00000602U),
  160. EMIT_MASKWRITE(0xF8000714, 0x00003FFFU, 0x00000602U),
  161. EMIT_MASKWRITE(0xF8000718, 0x00003FFFU, 0x00000602U),
  162. EMIT_MASKWRITE(0xF8000720, 0x00003FFFU, 0x00000602U),
  163. EMIT_MASKWRITE(0xF8000738, 0x00003FFFU, 0x000006E1U),
  164. EMIT_MASKWRITE(0xF800073C, 0x00003FFFU, 0x000006E0U),
  165. EMIT_MASKWRITE(0xF8000740, 0x00003FFFU, 0x000007A0U),
  166. EMIT_MASKWRITE(0xF8000744, 0x00003FFFU, 0x000007A0U),
  167. EMIT_MASKWRITE(0xF8000748, 0x00003FFFU, 0x000007A0U),
  168. EMIT_MASKWRITE(0xF800074C, 0x00003FFFU, 0x000007A0U),
  169. EMIT_MASKWRITE(0xF8000750, 0x00003FFFU, 0x000007A0U),
  170. EMIT_MASKWRITE(0xF8000754, 0x00003FFFU, 0x000007A0U),
  171. EMIT_MASKWRITE(0xF8000770, 0x00003FFFU, 0x00000702U),
  172. EMIT_MASKWRITE(0xF8000774, 0x00003FFFU, 0x00000702U),
  173. EMIT_MASKWRITE(0xF8000778, 0x00003FFFU, 0x00000702U),
  174. EMIT_MASKWRITE(0xF800077C, 0x00003FFFU, 0x00000702U),
  175. EMIT_MASKWRITE(0xF8000780, 0x00003FFFU, 0x00000702U),
  176. EMIT_MASKWRITE(0xF8000784, 0x00003FFFU, 0x00000702U),
  177. EMIT_MASKWRITE(0xF8000788, 0x00003FFFU, 0x00000703U),
  178. EMIT_MASKWRITE(0xF800078C, 0x00003FFFU, 0x00000703U),
  179. EMIT_MASKWRITE(0xF8000790, 0x00003FFFU, 0x00000703U),
  180. EMIT_MASKWRITE(0xF8000794, 0x00003FFFU, 0x00000703U),
  181. EMIT_MASKWRITE(0xF8000798, 0x00003FFFU, 0x00000703U),
  182. EMIT_MASKWRITE(0xF800079C, 0x00003FFFU, 0x00000703U),
  183. EMIT_MASKWRITE(0xF80007A0, 0x00003FFFU, 0x00000720U),
  184. EMIT_MASKWRITE(0xF80007A4, 0x00003FFFU, 0x00000721U),
  185. EMIT_MASKWRITE(0xF80007A8, 0x00003FFFU, 0x000007C0U),
  186. EMIT_MASKWRITE(0xF80007AC, 0x00003FFFU, 0x000007C1U),
  187. EMIT_MASKWRITE(0xF80007B0, 0x00003FFFU, 0x00000740U),
  188. EMIT_MASKWRITE(0xF80007B4, 0x00003FFFU, 0x00000740U),
  189. EMIT_MASKWRITE(0xF80007B8, 0x00003FFFU, 0x00000661U),
  190. EMIT_MASKWRITE(0xF80007BC, 0x00003FFFU, 0x00000660U),
  191. EMIT_MASKWRITE(0xF80007C0, 0x00003FFFU, 0x00000661U),
  192. EMIT_MASKWRITE(0xF80007C4, 0x00003FFFU, 0x00000661U),
  193. EMIT_MASKWRITE(0xF80007C8, 0x00003FFFU, 0x00000661U),
  194. EMIT_MASKWRITE(0xF80007CC, 0x00003FFFU, 0x00000660U),
  195. EMIT_MASKWRITE(0xF80007D0, 0x00003FFFU, 0x000006A0U),
  196. EMIT_MASKWRITE(0xF80007D4, 0x00003FFFU, 0x000006A0U),
  197. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  198. EMIT_EXIT(),
  199. };
  200. static unsigned long ps7_peripherals_init_data_3_0[] = {
  201. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  202. EMIT_MASKWRITE(0xF8000B48, 0x00000180U, 0x00000180U),
  203. EMIT_MASKWRITE(0xF8000B4C, 0x00000180U, 0x00000180U),
  204. EMIT_MASKWRITE(0xF8000B50, 0x00000180U, 0x00000180U),
  205. EMIT_MASKWRITE(0xF8000B54, 0x00000180U, 0x00000180U),
  206. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  207. EMIT_MASKWRITE(0xE000D000, 0x00080000U, 0x00080000U),
  208. EMIT_MASKWRITE(0xF8007000, 0x20000000U, 0x00000000U),
  209. EMIT_MASKDELAY(0xF8F00200, 1),
  210. EMIT_MASKDELAY(0xF8F00200, 1),
  211. EMIT_MASKDELAY(0xF8F00200, 1),
  212. EMIT_MASKDELAY(0xF8F00200, 1),
  213. EMIT_MASKDELAY(0xF8F00200, 1),
  214. EMIT_MASKDELAY(0xF8F00200, 1),
  215. EMIT_EXIT(),
  216. };
  217. static unsigned long ps7_post_config_3_0[] = {
  218. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  219. EMIT_MASKWRITE(0xF8000900, 0x0000000FU, 0x0000000FU),
  220. EMIT_MASKWRITE(0xF8000240, 0xFFFFFFFFU, 0x00000000U),
  221. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  222. EMIT_EXIT(),
  223. };
  224. static unsigned long ps7_pll_init_data_2_0[] = {
  225. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  226. EMIT_MASKWRITE(0xF8000110, 0x003FFFF0U, 0x000FA220U),
  227. EMIT_MASKWRITE(0xF8000100, 0x0007F000U, 0x00028000U),
  228. EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000010U),
  229. EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000001U),
  230. EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000000U),
  231. EMIT_MASKPOLL(0xF800010C, 0x00000001U),
  232. EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000000U),
  233. EMIT_MASKWRITE(0xF8000120, 0x1F003F30U, 0x1F000200U),
  234. EMIT_MASKWRITE(0xF8000114, 0x003FFFF0U, 0x0012C220U),
  235. EMIT_MASKWRITE(0xF8000104, 0x0007F000U, 0x00020000U),
  236. EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000010U),
  237. EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000001U),
  238. EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000000U),
  239. EMIT_MASKPOLL(0xF800010C, 0x00000002U),
  240. EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000000U),
  241. EMIT_MASKWRITE(0xF8000124, 0xFFF00003U, 0x0C200003U),
  242. EMIT_MASKWRITE(0xF8000118, 0x003FFFF0U, 0x001452C0U),
  243. EMIT_MASKWRITE(0xF8000108, 0x0007F000U, 0x0001E000U),
  244. EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000010U),
  245. EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000001U),
  246. EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000000U),
  247. EMIT_MASKPOLL(0xF800010C, 0x00000004U),
  248. EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000000U),
  249. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  250. EMIT_EXIT(),
  251. };
  252. static unsigned long ps7_clock_init_data_2_0[] = {
  253. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  254. EMIT_MASKWRITE(0xF8000128, 0x03F03F01U, 0x00700F01U),
  255. EMIT_MASKWRITE(0xF800013C, 0x00000011U, 0x00000001U),
  256. EMIT_MASKWRITE(0xF8000144, 0x03F03F71U, 0x00100801U),
  257. EMIT_MASKWRITE(0xF800014C, 0x00003F31U, 0x00000501U),
  258. EMIT_MASKWRITE(0xF8000154, 0x00003F33U, 0x00001401U),
  259. EMIT_MASKWRITE(0xF8000158, 0x00003F33U, 0x00000601U),
  260. EMIT_MASKWRITE(0xF800015C, 0x03F03F33U, 0x00600702U),
  261. EMIT_MASKWRITE(0xF8000160, 0x007F007FU, 0x00000000U),
  262. EMIT_MASKWRITE(0xF8000168, 0x00003F31U, 0x00000401U),
  263. EMIT_MASKWRITE(0xF8000170, 0x03F03F30U, 0x00400500U),
  264. EMIT_MASKWRITE(0xF80001C4, 0x00000001U, 0x00000001U),
  265. EMIT_MASKWRITE(0xF800012C, 0x01FFCCCDU, 0x01DE408DU),
  266. EMIT_MASKWRITE(0xF8000304, 0x00000001U, 0x00000000U),
  267. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  268. EMIT_EXIT(),
  269. };
  270. static unsigned long ps7_ddr_init_data_2_0[] = {
  271. EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000080U),
  272. EMIT_MASKWRITE(0xF8006004, 0x1FFFFFFFU, 0x00081081U),
  273. EMIT_MASKWRITE(0xF8006008, 0x03FFFFFFU, 0x03C0780FU),
  274. EMIT_MASKWRITE(0xF800600C, 0x03FFFFFFU, 0x02001001U),
  275. EMIT_MASKWRITE(0xF8006010, 0x03FFFFFFU, 0x00014001U),
  276. EMIT_MASKWRITE(0xF8006014, 0x001FFFFFU, 0x0004159BU),
  277. EMIT_MASKWRITE(0xF8006018, 0xF7FFFFFFU, 0x44E438D2U),
  278. EMIT_MASKWRITE(0xF800601C, 0xFFFFFFFFU, 0x720238E5U),
  279. EMIT_MASKWRITE(0xF8006020, 0xFFFFFFFCU, 0x27287290U),
  280. EMIT_MASKWRITE(0xF8006024, 0x0FFFFFFFU, 0x0000003CU),
  281. EMIT_MASKWRITE(0xF8006028, 0x00003FFFU, 0x00002007U),
  282. EMIT_MASKWRITE(0xF800602C, 0xFFFFFFFFU, 0x00000008U),
  283. EMIT_MASKWRITE(0xF8006030, 0xFFFFFFFFU, 0x00040930U),
  284. EMIT_MASKWRITE(0xF8006034, 0x13FF3FFFU, 0x000116D4U),
  285. EMIT_MASKWRITE(0xF8006038, 0x00001FC3U, 0x00000000U),
  286. EMIT_MASKWRITE(0xF800603C, 0x000FFFFFU, 0x00000777U),
  287. EMIT_MASKWRITE(0xF8006040, 0xFFFFFFFFU, 0xFFF00000U),
  288. EMIT_MASKWRITE(0xF8006044, 0x0FFFFFFFU, 0x0F666666U),
  289. EMIT_MASKWRITE(0xF8006048, 0x3FFFFFFFU, 0x0003C248U),
  290. EMIT_MASKWRITE(0xF8006050, 0xFF0F8FFFU, 0x77010800U),
  291. EMIT_MASKWRITE(0xF8006058, 0x0001FFFFU, 0x00000101U),
  292. EMIT_MASKWRITE(0xF800605C, 0x0000FFFFU, 0x00005003U),
  293. EMIT_MASKWRITE(0xF8006060, 0x000017FFU, 0x0000003EU),
  294. EMIT_MASKWRITE(0xF8006064, 0x00021FE0U, 0x00020000U),
  295. EMIT_MASKWRITE(0xF8006068, 0x03FFFFFFU, 0x00284141U),
  296. EMIT_MASKWRITE(0xF800606C, 0x0000FFFFU, 0x00001610U),
  297. EMIT_MASKWRITE(0xF8006078, 0x03FFFFFFU, 0x00466111U),
  298. EMIT_MASKWRITE(0xF800607C, 0x000FFFFFU, 0x00032222U),
  299. EMIT_MASKWRITE(0xF80060A0, 0x00FFFFFFU, 0x00008000U),
  300. EMIT_MASKWRITE(0xF80060A4, 0xFFFFFFFFU, 0x10200802U),
  301. EMIT_MASKWRITE(0xF80060A8, 0x0FFFFFFFU, 0x0690CB73U),
  302. EMIT_MASKWRITE(0xF80060AC, 0x000001FFU, 0x000001FEU),
  303. EMIT_MASKWRITE(0xF80060B0, 0x1FFFFFFFU, 0x1CFFFFFFU),
  304. EMIT_MASKWRITE(0xF80060B4, 0x000007FFU, 0x00000200U),
  305. EMIT_MASKWRITE(0xF80060B8, 0x01FFFFFFU, 0x00200066U),
  306. EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000003U),
  307. EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000000U),
  308. EMIT_MASKWRITE(0xF80060C8, 0x000000FFU, 0x00000000U),
  309. EMIT_MASKWRITE(0xF80060DC, 0x00000001U, 0x00000000U),
  310. EMIT_MASKWRITE(0xF80060F0, 0x0000FFFFU, 0x00000000U),
  311. EMIT_MASKWRITE(0xF80060F4, 0x0000000FU, 0x00000008U),
  312. EMIT_MASKWRITE(0xF8006114, 0x000000FFU, 0x00000000U),
  313. EMIT_MASKWRITE(0xF8006118, 0x7FFFFFFFU, 0x40000001U),
  314. EMIT_MASKWRITE(0xF800611C, 0x7FFFFFFFU, 0x40000001U),
  315. EMIT_MASKWRITE(0xF8006120, 0x7FFFFFFFU, 0x40000001U),
  316. EMIT_MASKWRITE(0xF8006124, 0x7FFFFFFFU, 0x40000001U),
  317. EMIT_MASKWRITE(0xF800612C, 0x000FFFFFU, 0x00039C1BU),
  318. EMIT_MASKWRITE(0xF8006130, 0x000FFFFFU, 0x00037C35U),
  319. EMIT_MASKWRITE(0xF8006134, 0x000FFFFFU, 0x0003942FU),
  320. EMIT_MASKWRITE(0xF8006138, 0x000FFFFFU, 0x00038C1FU),
  321. EMIT_MASKWRITE(0xF8006140, 0x000FFFFFU, 0x00000035U),
  322. EMIT_MASKWRITE(0xF8006144, 0x000FFFFFU, 0x00000035U),
  323. EMIT_MASKWRITE(0xF8006148, 0x000FFFFFU, 0x00000035U),
  324. EMIT_MASKWRITE(0xF800614C, 0x000FFFFFU, 0x00000035U),
  325. EMIT_MASKWRITE(0xF8006154, 0x000FFFFFU, 0x0000009BU),
  326. EMIT_MASKWRITE(0xF8006158, 0x000FFFFFU, 0x000000B5U),
  327. EMIT_MASKWRITE(0xF800615C, 0x000FFFFFU, 0x000000AFU),
  328. EMIT_MASKWRITE(0xF8006160, 0x000FFFFFU, 0x0000009FU),
  329. EMIT_MASKWRITE(0xF8006168, 0x001FFFFFU, 0x0000013CU),
  330. EMIT_MASKWRITE(0xF800616C, 0x001FFFFFU, 0x00000134U),
  331. EMIT_MASKWRITE(0xF8006170, 0x001FFFFFU, 0x0000013AU),
  332. EMIT_MASKWRITE(0xF8006174, 0x001FFFFFU, 0x00000138U),
  333. EMIT_MASKWRITE(0xF800617C, 0x000FFFFFU, 0x000000DBU),
  334. EMIT_MASKWRITE(0xF8006180, 0x000FFFFFU, 0x000000F5U),
  335. EMIT_MASKWRITE(0xF8006184, 0x000FFFFFU, 0x000000EFU),
  336. EMIT_MASKWRITE(0xF8006188, 0x000FFFFFU, 0x000000DFU),
  337. EMIT_MASKWRITE(0xF8006190, 0xFFFFFFFFU, 0x10040080U),
  338. EMIT_MASKWRITE(0xF8006194, 0x000FFFFFU, 0x0001FC82U),
  339. EMIT_MASKWRITE(0xF8006204, 0xFFFFFFFFU, 0x00000000U),
  340. EMIT_MASKWRITE(0xF8006208, 0x000F03FFU, 0x000803FFU),
  341. EMIT_MASKWRITE(0xF800620C, 0x000F03FFU, 0x000803FFU),
  342. EMIT_MASKWRITE(0xF8006210, 0x000F03FFU, 0x000803FFU),
  343. EMIT_MASKWRITE(0xF8006214, 0x000F03FFU, 0x000803FFU),
  344. EMIT_MASKWRITE(0xF8006218, 0x000F03FFU, 0x000003FFU),
  345. EMIT_MASKWRITE(0xF800621C, 0x000F03FFU, 0x000003FFU),
  346. EMIT_MASKWRITE(0xF8006220, 0x000F03FFU, 0x000003FFU),
  347. EMIT_MASKWRITE(0xF8006224, 0x000F03FFU, 0x000003FFU),
  348. EMIT_MASKWRITE(0xF80062A8, 0x00000FF7U, 0x00000000U),
  349. EMIT_MASKWRITE(0xF80062AC, 0xFFFFFFFFU, 0x00000000U),
  350. EMIT_MASKWRITE(0xF80062B0, 0x003FFFFFU, 0x00005125U),
  351. EMIT_MASKWRITE(0xF80062B4, 0x0003FFFFU, 0x000012A8U),
  352. EMIT_MASKPOLL(0xF8000B74, 0x00002000U),
  353. EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000081U),
  354. EMIT_MASKPOLL(0xF8006054, 0x00000007U),
  355. EMIT_EXIT(),
  356. };
  357. static unsigned long ps7_mio_init_data_2_0[] = {
  358. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  359. EMIT_MASKWRITE(0xF8000B40, 0x00000FFFU, 0x00000600U),
  360. EMIT_MASKWRITE(0xF8000B44, 0x00000FFFU, 0x00000600U),
  361. EMIT_MASKWRITE(0xF8000B48, 0x00000FFFU, 0x00000672U),
  362. EMIT_MASKWRITE(0xF8000B4C, 0x00000FFFU, 0x00000672U),
  363. EMIT_MASKWRITE(0xF8000B50, 0x00000FFFU, 0x00000674U),
  364. EMIT_MASKWRITE(0xF8000B54, 0x00000FFFU, 0x00000674U),
  365. EMIT_MASKWRITE(0xF8000B58, 0x00000FFFU, 0x00000600U),
  366. EMIT_MASKWRITE(0xF8000B5C, 0xFFFFFFFFU, 0x0018C61CU),
  367. EMIT_MASKWRITE(0xF8000B60, 0xFFFFFFFFU, 0x00F9861CU),
  368. EMIT_MASKWRITE(0xF8000B64, 0xFFFFFFFFU, 0x00F9861CU),
  369. EMIT_MASKWRITE(0xF8000B68, 0xFFFFFFFFU, 0x00F9861CU),
  370. EMIT_MASKWRITE(0xF8000B6C, 0x00007FFFU, 0x00000209U),
  371. EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000021U),
  372. EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000020U),
  373. EMIT_MASKWRITE(0xF8000B70, 0x07FFFFFFU, 0x00000823U),
  374. EMIT_MASKWRITE(0xF8000700, 0x00003FFFU, 0x00001602U),
  375. EMIT_MASKWRITE(0xF8000704, 0x00003FFFU, 0x00001602U),
  376. EMIT_MASKWRITE(0xF8000708, 0x00003FFFU, 0x00000602U),
  377. EMIT_MASKWRITE(0xF800070C, 0x00003FFFU, 0x00000602U),
  378. EMIT_MASKWRITE(0xF8000710, 0x00003FFFU, 0x00000602U),
  379. EMIT_MASKWRITE(0xF8000714, 0x00003FFFU, 0x00000602U),
  380. EMIT_MASKWRITE(0xF8000718, 0x00003FFFU, 0x00000602U),
  381. EMIT_MASKWRITE(0xF8000720, 0x00003FFFU, 0x00000602U),
  382. EMIT_MASKWRITE(0xF8000738, 0x00003FFFU, 0x000006E1U),
  383. EMIT_MASKWRITE(0xF800073C, 0x00003FFFU, 0x000006E0U),
  384. EMIT_MASKWRITE(0xF8000740, 0x00003FFFU, 0x000007A0U),
  385. EMIT_MASKWRITE(0xF8000744, 0x00003FFFU, 0x000007A0U),
  386. EMIT_MASKWRITE(0xF8000748, 0x00003FFFU, 0x000007A0U),
  387. EMIT_MASKWRITE(0xF800074C, 0x00003FFFU, 0x000007A0U),
  388. EMIT_MASKWRITE(0xF8000750, 0x00003FFFU, 0x000007A0U),
  389. EMIT_MASKWRITE(0xF8000754, 0x00003FFFU, 0x000007A0U),
  390. EMIT_MASKWRITE(0xF8000770, 0x00003FFFU, 0x00000702U),
  391. EMIT_MASKWRITE(0xF8000774, 0x00003FFFU, 0x00000702U),
  392. EMIT_MASKWRITE(0xF8000778, 0x00003FFFU, 0x00000702U),
  393. EMIT_MASKWRITE(0xF800077C, 0x00003FFFU, 0x00000702U),
  394. EMIT_MASKWRITE(0xF8000780, 0x00003FFFU, 0x00000702U),
  395. EMIT_MASKWRITE(0xF8000784, 0x00003FFFU, 0x00000702U),
  396. EMIT_MASKWRITE(0xF8000788, 0x00003FFFU, 0x00000703U),
  397. EMIT_MASKWRITE(0xF800078C, 0x00003FFFU, 0x00000703U),
  398. EMIT_MASKWRITE(0xF8000790, 0x00003FFFU, 0x00000703U),
  399. EMIT_MASKWRITE(0xF8000794, 0x00003FFFU, 0x00000703U),
  400. EMIT_MASKWRITE(0xF8000798, 0x00003FFFU, 0x00000703U),
  401. EMIT_MASKWRITE(0xF800079C, 0x00003FFFU, 0x00000703U),
  402. EMIT_MASKWRITE(0xF80007A0, 0x00003FFFU, 0x00000720U),
  403. EMIT_MASKWRITE(0xF80007A4, 0x00003FFFU, 0x00000721U),
  404. EMIT_MASKWRITE(0xF80007A8, 0x00003FFFU, 0x000007C0U),
  405. EMIT_MASKWRITE(0xF80007AC, 0x00003FFFU, 0x000007C1U),
  406. EMIT_MASKWRITE(0xF80007B0, 0x00003FFFU, 0x00000740U),
  407. EMIT_MASKWRITE(0xF80007B4, 0x00003FFFU, 0x00000740U),
  408. EMIT_MASKWRITE(0xF80007B8, 0x00003FFFU, 0x00000661U),
  409. EMIT_MASKWRITE(0xF80007BC, 0x00003FFFU, 0x00000660U),
  410. EMIT_MASKWRITE(0xF80007C0, 0x00003FFFU, 0x00000661U),
  411. EMIT_MASKWRITE(0xF80007C4, 0x00003FFFU, 0x00000661U),
  412. EMIT_MASKWRITE(0xF80007C8, 0x00003FFFU, 0x00000661U),
  413. EMIT_MASKWRITE(0xF80007CC, 0x00003FFFU, 0x00000660U),
  414. EMIT_MASKWRITE(0xF80007D0, 0x00003FFFU, 0x000006A0U),
  415. EMIT_MASKWRITE(0xF80007D4, 0x00003FFFU, 0x000006A0U),
  416. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  417. EMIT_EXIT(),
  418. };
  419. static unsigned long ps7_peripherals_init_data_2_0[] = {
  420. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  421. EMIT_MASKWRITE(0xF8000B48, 0x00000180U, 0x00000180U),
  422. EMIT_MASKWRITE(0xF8000B4C, 0x00000180U, 0x00000180U),
  423. EMIT_MASKWRITE(0xF8000B50, 0x00000180U, 0x00000180U),
  424. EMIT_MASKWRITE(0xF8000B54, 0x00000180U, 0x00000180U),
  425. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  426. EMIT_MASKWRITE(0xE000D000, 0x00080000U, 0x00080000U),
  427. EMIT_MASKWRITE(0xF8007000, 0x20000000U, 0x00000000U),
  428. EMIT_MASKDELAY(0xF8F00200, 1),
  429. EMIT_MASKDELAY(0xF8F00200, 1),
  430. EMIT_MASKDELAY(0xF8F00200, 1),
  431. EMIT_MASKDELAY(0xF8F00200, 1),
  432. EMIT_MASKDELAY(0xF8F00200, 1),
  433. EMIT_MASKDELAY(0xF8F00200, 1),
  434. EMIT_EXIT(),
  435. };
  436. static unsigned long ps7_post_config_2_0[] = {
  437. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  438. EMIT_MASKWRITE(0xF8000900, 0x0000000FU, 0x0000000FU),
  439. EMIT_MASKWRITE(0xF8000240, 0xFFFFFFFFU, 0x00000000U),
  440. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  441. EMIT_EXIT(),
  442. };
  443. static unsigned long ps7_pll_init_data_1_0[] = {
  444. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  445. EMIT_MASKWRITE(0xF8000110, 0x003FFFF0U, 0x000FA220U),
  446. EMIT_MASKWRITE(0xF8000100, 0x0007F000U, 0x00028000U),
  447. EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000010U),
  448. EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000001U),
  449. EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000000U),
  450. EMIT_MASKPOLL(0xF800010C, 0x00000001U),
  451. EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000000U),
  452. EMIT_MASKWRITE(0xF8000120, 0x1F003F30U, 0x1F000200U),
  453. EMIT_MASKWRITE(0xF8000114, 0x003FFFF0U, 0x0012C220U),
  454. EMIT_MASKWRITE(0xF8000104, 0x0007F000U, 0x00020000U),
  455. EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000010U),
  456. EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000001U),
  457. EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000000U),
  458. EMIT_MASKPOLL(0xF800010C, 0x00000002U),
  459. EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000000U),
  460. EMIT_MASKWRITE(0xF8000124, 0xFFF00003U, 0x0C200003U),
  461. EMIT_MASKWRITE(0xF8000118, 0x003FFFF0U, 0x001452C0U),
  462. EMIT_MASKWRITE(0xF8000108, 0x0007F000U, 0x0001E000U),
  463. EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000010U),
  464. EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000001U),
  465. EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000000U),
  466. EMIT_MASKPOLL(0xF800010C, 0x00000004U),
  467. EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000000U),
  468. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  469. EMIT_EXIT(),
  470. };
  471. static unsigned long ps7_clock_init_data_1_0[] = {
  472. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  473. EMIT_MASKWRITE(0xF8000128, 0x03F03F01U, 0x00700F01U),
  474. EMIT_MASKWRITE(0xF800013C, 0x00000011U, 0x00000001U),
  475. EMIT_MASKWRITE(0xF8000144, 0x03F03F71U, 0x00100801U),
  476. EMIT_MASKWRITE(0xF800014C, 0x00003F31U, 0x00000501U),
  477. EMIT_MASKWRITE(0xF8000154, 0x00003F33U, 0x00001401U),
  478. EMIT_MASKWRITE(0xF8000158, 0x00003F33U, 0x00000601U),
  479. EMIT_MASKWRITE(0xF800015C, 0x03F03F33U, 0x00600702U),
  480. EMIT_MASKWRITE(0xF8000160, 0x007F007FU, 0x00000000U),
  481. EMIT_MASKWRITE(0xF8000168, 0x00003F31U, 0x00000401U),
  482. EMIT_MASKWRITE(0xF8000170, 0x03F03F30U, 0x00400500U),
  483. EMIT_MASKWRITE(0xF80001C4, 0x00000001U, 0x00000001U),
  484. EMIT_MASKWRITE(0xF800012C, 0x01FFCCCDU, 0x01DE408DU),
  485. EMIT_MASKWRITE(0xF8000304, 0x00000001U, 0x00000000U),
  486. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  487. EMIT_EXIT(),
  488. };
  489. static unsigned long ps7_ddr_init_data_1_0[] = {
  490. EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000080U),
  491. EMIT_MASKWRITE(0xF8006004, 0x1FFFFFFFU, 0x00081081U),
  492. EMIT_MASKWRITE(0xF8006008, 0x03FFFFFFU, 0x03C0780FU),
  493. EMIT_MASKWRITE(0xF800600C, 0x03FFFFFFU, 0x02001001U),
  494. EMIT_MASKWRITE(0xF8006010, 0x03FFFFFFU, 0x00014001U),
  495. EMIT_MASKWRITE(0xF8006014, 0x001FFFFFU, 0x0004159BU),
  496. EMIT_MASKWRITE(0xF8006018, 0xF7FFFFFFU, 0x44E438D2U),
  497. EMIT_MASKWRITE(0xF800601C, 0xFFFFFFFFU, 0x720238E5U),
  498. EMIT_MASKWRITE(0xF8006020, 0xFFFFFFFCU, 0x27287290U),
  499. EMIT_MASKWRITE(0xF8006024, 0x0FFFFFFFU, 0x0000003CU),
  500. EMIT_MASKWRITE(0xF8006028, 0x00003FFFU, 0x00002007U),
  501. EMIT_MASKWRITE(0xF800602C, 0xFFFFFFFFU, 0x00000008U),
  502. EMIT_MASKWRITE(0xF8006030, 0xFFFFFFFFU, 0x00040930U),
  503. EMIT_MASKWRITE(0xF8006034, 0x13FF3FFFU, 0x000116D4U),
  504. EMIT_MASKWRITE(0xF8006038, 0x00001FC3U, 0x00000000U),
  505. EMIT_MASKWRITE(0xF800603C, 0x000FFFFFU, 0x00000777U),
  506. EMIT_MASKWRITE(0xF8006040, 0xFFFFFFFFU, 0xFFF00000U),
  507. EMIT_MASKWRITE(0xF8006044, 0x0FFFFFFFU, 0x0F666666U),
  508. EMIT_MASKWRITE(0xF8006048, 0x3FFFFFFFU, 0x0003C248U),
  509. EMIT_MASKWRITE(0xF8006050, 0xFF0F8FFFU, 0x77010800U),
  510. EMIT_MASKWRITE(0xF8006058, 0x0001FFFFU, 0x00000101U),
  511. EMIT_MASKWRITE(0xF800605C, 0x0000FFFFU, 0x00005003U),
  512. EMIT_MASKWRITE(0xF8006060, 0x000017FFU, 0x0000003EU),
  513. EMIT_MASKWRITE(0xF8006064, 0x00021FE0U, 0x00020000U),
  514. EMIT_MASKWRITE(0xF8006068, 0x03FFFFFFU, 0x00284141U),
  515. EMIT_MASKWRITE(0xF800606C, 0x0000FFFFU, 0x00001610U),
  516. EMIT_MASKWRITE(0xF80060A0, 0x00FFFFFFU, 0x00008000U),
  517. EMIT_MASKWRITE(0xF80060A4, 0xFFFFFFFFU, 0x10200802U),
  518. EMIT_MASKWRITE(0xF80060A8, 0x0FFFFFFFU, 0x0690CB73U),
  519. EMIT_MASKWRITE(0xF80060AC, 0x000001FFU, 0x000001FEU),
  520. EMIT_MASKWRITE(0xF80060B0, 0x1FFFFFFFU, 0x1CFFFFFFU),
  521. EMIT_MASKWRITE(0xF80060B4, 0x000007FFU, 0x00000200U),
  522. EMIT_MASKWRITE(0xF80060B8, 0x01FFFFFFU, 0x00200066U),
  523. EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000003U),
  524. EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000000U),
  525. EMIT_MASKWRITE(0xF80060C8, 0x000000FFU, 0x00000000U),
  526. EMIT_MASKWRITE(0xF80060DC, 0x00000001U, 0x00000000U),
  527. EMIT_MASKWRITE(0xF80060F0, 0x0000FFFFU, 0x00000000U),
  528. EMIT_MASKWRITE(0xF80060F4, 0x0000000FU, 0x00000008U),
  529. EMIT_MASKWRITE(0xF8006114, 0x000000FFU, 0x00000000U),
  530. EMIT_MASKWRITE(0xF8006118, 0x7FFFFFFFU, 0x40000001U),
  531. EMIT_MASKWRITE(0xF800611C, 0x7FFFFFFFU, 0x40000001U),
  532. EMIT_MASKWRITE(0xF8006120, 0x7FFFFFFFU, 0x40000001U),
  533. EMIT_MASKWRITE(0xF8006124, 0x7FFFFFFFU, 0x40000001U),
  534. EMIT_MASKWRITE(0xF800612C, 0x000FFFFFU, 0x00039C1BU),
  535. EMIT_MASKWRITE(0xF8006130, 0x000FFFFFU, 0x00037C35U),
  536. EMIT_MASKWRITE(0xF8006134, 0x000FFFFFU, 0x0003942FU),
  537. EMIT_MASKWRITE(0xF8006138, 0x000FFFFFU, 0x00038C1FU),
  538. EMIT_MASKWRITE(0xF8006140, 0x000FFFFFU, 0x00000035U),
  539. EMIT_MASKWRITE(0xF8006144, 0x000FFFFFU, 0x00000035U),
  540. EMIT_MASKWRITE(0xF8006148, 0x000FFFFFU, 0x00000035U),
  541. EMIT_MASKWRITE(0xF800614C, 0x000FFFFFU, 0x00000035U),
  542. EMIT_MASKWRITE(0xF8006154, 0x000FFFFFU, 0x0000009BU),
  543. EMIT_MASKWRITE(0xF8006158, 0x000FFFFFU, 0x000000B5U),
  544. EMIT_MASKWRITE(0xF800615C, 0x000FFFFFU, 0x000000AFU),
  545. EMIT_MASKWRITE(0xF8006160, 0x000FFFFFU, 0x0000009FU),
  546. EMIT_MASKWRITE(0xF8006168, 0x001FFFFFU, 0x0000013CU),
  547. EMIT_MASKWRITE(0xF800616C, 0x001FFFFFU, 0x00000134U),
  548. EMIT_MASKWRITE(0xF8006170, 0x001FFFFFU, 0x0000013AU),
  549. EMIT_MASKWRITE(0xF8006174, 0x001FFFFFU, 0x00000138U),
  550. EMIT_MASKWRITE(0xF800617C, 0x000FFFFFU, 0x000000DBU),
  551. EMIT_MASKWRITE(0xF8006180, 0x000FFFFFU, 0x000000F5U),
  552. EMIT_MASKWRITE(0xF8006184, 0x000FFFFFU, 0x000000EFU),
  553. EMIT_MASKWRITE(0xF8006188, 0x000FFFFFU, 0x000000DFU),
  554. EMIT_MASKWRITE(0xF8006190, 0xFFFFFFFFU, 0x10040080U),
  555. EMIT_MASKWRITE(0xF8006194, 0x000FFFFFU, 0x0001FC82U),
  556. EMIT_MASKWRITE(0xF8006204, 0xFFFFFFFFU, 0x00000000U),
  557. EMIT_MASKWRITE(0xF8006208, 0x000F03FFU, 0x000803FFU),
  558. EMIT_MASKWRITE(0xF800620C, 0x000F03FFU, 0x000803FFU),
  559. EMIT_MASKWRITE(0xF8006210, 0x000F03FFU, 0x000803FFU),
  560. EMIT_MASKWRITE(0xF8006214, 0x000F03FFU, 0x000803FFU),
  561. EMIT_MASKWRITE(0xF8006218, 0x000F03FFU, 0x000003FFU),
  562. EMIT_MASKWRITE(0xF800621C, 0x000F03FFU, 0x000003FFU),
  563. EMIT_MASKWRITE(0xF8006220, 0x000F03FFU, 0x000003FFU),
  564. EMIT_MASKWRITE(0xF8006224, 0x000F03FFU, 0x000003FFU),
  565. EMIT_MASKWRITE(0xF80062A8, 0x00000FF7U, 0x00000000U),
  566. EMIT_MASKWRITE(0xF80062AC, 0xFFFFFFFFU, 0x00000000U),
  567. EMIT_MASKWRITE(0xF80062B0, 0x003FFFFFU, 0x00005125U),
  568. EMIT_MASKWRITE(0xF80062B4, 0x0003FFFFU, 0x000012A8U),
  569. EMIT_MASKPOLL(0xF8000B74, 0x00002000U),
  570. EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000081U),
  571. EMIT_MASKPOLL(0xF8006054, 0x00000007U),
  572. EMIT_EXIT(),
  573. };
  574. static unsigned long ps7_mio_init_data_1_0[] = {
  575. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  576. EMIT_MASKWRITE(0xF8000B40, 0x00000FFFU, 0x00000600U),
  577. EMIT_MASKWRITE(0xF8000B44, 0x00000FFFU, 0x00000600U),
  578. EMIT_MASKWRITE(0xF8000B48, 0x00000FFFU, 0x00000672U),
  579. EMIT_MASKWRITE(0xF8000B4C, 0x00000FFFU, 0x00000672U),
  580. EMIT_MASKWRITE(0xF8000B50, 0x00000FFFU, 0x00000674U),
  581. EMIT_MASKWRITE(0xF8000B54, 0x00000FFFU, 0x00000674U),
  582. EMIT_MASKWRITE(0xF8000B58, 0x00000FFFU, 0x00000600U),
  583. EMIT_MASKWRITE(0xF8000B5C, 0xFFFFFFFFU, 0x0018C61CU),
  584. EMIT_MASKWRITE(0xF8000B60, 0xFFFFFFFFU, 0x00F9861CU),
  585. EMIT_MASKWRITE(0xF8000B64, 0xFFFFFFFFU, 0x00F9861CU),
  586. EMIT_MASKWRITE(0xF8000B68, 0xFFFFFFFFU, 0x00F9861CU),
  587. EMIT_MASKWRITE(0xF8000B6C, 0x000073FFU, 0x00000209U),
  588. EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000021U),
  589. EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000020U),
  590. EMIT_MASKWRITE(0xF8000B70, 0x07FFFFFFU, 0x00000823U),
  591. EMIT_MASKWRITE(0xF8000700, 0x00003FFFU, 0x00001602U),
  592. EMIT_MASKWRITE(0xF8000704, 0x00003FFFU, 0x00001602U),
  593. EMIT_MASKWRITE(0xF8000708, 0x00003FFFU, 0x00000602U),
  594. EMIT_MASKWRITE(0xF800070C, 0x00003FFFU, 0x00000602U),
  595. EMIT_MASKWRITE(0xF8000710, 0x00003FFFU, 0x00000602U),
  596. EMIT_MASKWRITE(0xF8000714, 0x00003FFFU, 0x00000602U),
  597. EMIT_MASKWRITE(0xF8000718, 0x00003FFFU, 0x00000602U),
  598. EMIT_MASKWRITE(0xF8000720, 0x00003FFFU, 0x00000602U),
  599. EMIT_MASKWRITE(0xF8000738, 0x00003FFFU, 0x000006E1U),
  600. EMIT_MASKWRITE(0xF800073C, 0x00003FFFU, 0x000006E0U),
  601. EMIT_MASKWRITE(0xF8000740, 0x00003FFFU, 0x000007A0U),
  602. EMIT_MASKWRITE(0xF8000744, 0x00003FFFU, 0x000007A0U),
  603. EMIT_MASKWRITE(0xF8000748, 0x00003FFFU, 0x000007A0U),
  604. EMIT_MASKWRITE(0xF800074C, 0x00003FFFU, 0x000007A0U),
  605. EMIT_MASKWRITE(0xF8000750, 0x00003FFFU, 0x000007A0U),
  606. EMIT_MASKWRITE(0xF8000754, 0x00003FFFU, 0x000007A0U),
  607. EMIT_MASKWRITE(0xF8000770, 0x00003FFFU, 0x00000702U),
  608. EMIT_MASKWRITE(0xF8000774, 0x00003FFFU, 0x00000702U),
  609. EMIT_MASKWRITE(0xF8000778, 0x00003FFFU, 0x00000702U),
  610. EMIT_MASKWRITE(0xF800077C, 0x00003FFFU, 0x00000702U),
  611. EMIT_MASKWRITE(0xF8000780, 0x00003FFFU, 0x00000702U),
  612. EMIT_MASKWRITE(0xF8000784, 0x00003FFFU, 0x00000702U),
  613. EMIT_MASKWRITE(0xF8000788, 0x00003FFFU, 0x00000703U),
  614. EMIT_MASKWRITE(0xF800078C, 0x00003FFFU, 0x00000703U),
  615. EMIT_MASKWRITE(0xF8000790, 0x00003FFFU, 0x00000703U),
  616. EMIT_MASKWRITE(0xF8000794, 0x00003FFFU, 0x00000703U),
  617. EMIT_MASKWRITE(0xF8000798, 0x00003FFFU, 0x00000703U),
  618. EMIT_MASKWRITE(0xF800079C, 0x00003FFFU, 0x00000703U),
  619. EMIT_MASKWRITE(0xF80007A0, 0x00003FFFU, 0x00000720U),
  620. EMIT_MASKWRITE(0xF80007A4, 0x00003FFFU, 0x00000721U),
  621. EMIT_MASKWRITE(0xF80007A8, 0x00003FFFU, 0x000007C0U),
  622. EMIT_MASKWRITE(0xF80007AC, 0x00003FFFU, 0x000007C1U),
  623. EMIT_MASKWRITE(0xF80007B0, 0x00003FFFU, 0x00000740U),
  624. EMIT_MASKWRITE(0xF80007B4, 0x00003FFFU, 0x00000740U),
  625. EMIT_MASKWRITE(0xF80007B8, 0x00003FFFU, 0x00000661U),
  626. EMIT_MASKWRITE(0xF80007BC, 0x00003FFFU, 0x00000660U),
  627. EMIT_MASKWRITE(0xF80007C0, 0x00003FFFU, 0x00000661U),
  628. EMIT_MASKWRITE(0xF80007C4, 0x00003FFFU, 0x00000661U),
  629. EMIT_MASKWRITE(0xF80007C8, 0x00003FFFU, 0x00000661U),
  630. EMIT_MASKWRITE(0xF80007CC, 0x00003FFFU, 0x00000660U),
  631. EMIT_MASKWRITE(0xF80007D0, 0x00003FFFU, 0x000006A0U),
  632. EMIT_MASKWRITE(0xF80007D4, 0x00003FFFU, 0x000006A0U),
  633. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  634. EMIT_EXIT(),
  635. };
  636. static unsigned long ps7_peripherals_init_data_1_0[] = {
  637. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  638. EMIT_MASKWRITE(0xF8000B48, 0x00000180U, 0x00000180U),
  639. EMIT_MASKWRITE(0xF8000B4C, 0x00000180U, 0x00000180U),
  640. EMIT_MASKWRITE(0xF8000B50, 0x00000180U, 0x00000180U),
  641. EMIT_MASKWRITE(0xF8000B54, 0x00000180U, 0x00000180U),
  642. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  643. EMIT_MASKWRITE(0xE000D000, 0x00080000U, 0x00080000U),
  644. EMIT_MASKWRITE(0xF8007000, 0x20000000U, 0x00000000U),
  645. EMIT_MASKDELAY(0xF8F00200, 1),
  646. EMIT_MASKDELAY(0xF8F00200, 1),
  647. EMIT_MASKDELAY(0xF8F00200, 1),
  648. EMIT_MASKDELAY(0xF8F00200, 1),
  649. EMIT_MASKDELAY(0xF8F00200, 1),
  650. EMIT_MASKDELAY(0xF8F00200, 1),
  651. EMIT_EXIT(),
  652. };
  653. static unsigned long ps7_post_config_1_0[] = {
  654. EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
  655. EMIT_MASKWRITE(0xF8000900, 0x0000000FU, 0x0000000FU),
  656. EMIT_MASKWRITE(0xF8000240, 0xFFFFFFFFU, 0x00000000U),
  657. EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
  658. EMIT_EXIT(),
  659. };
  660. static unsigned long *ps7_mio_init_data = ps7_mio_init_data_3_0;
  661. static unsigned long *ps7_pll_init_data = ps7_pll_init_data_3_0;
  662. static unsigned long *ps7_clock_init_data = ps7_clock_init_data_3_0;
  663. static unsigned long *ps7_ddr_init_data = ps7_ddr_init_data_3_0;
  664. static unsigned long *ps7_peripherals_init_data = ps7_peripherals_init_data_3_0;
  665. int ps7_post_config(void)
  666. {
  667. unsigned long si_ver = ps7GetSiliconVersion();
  668. int ret = -1;
  669. if (si_ver == PCW_SILICON_VERSION_1) {
  670. ret = ps7_config(ps7_post_config_1_0);
  671. if (ret != PS7_INIT_SUCCESS)
  672. return ret;
  673. } else if (si_ver == PCW_SILICON_VERSION_2) {
  674. ret = ps7_config(ps7_post_config_2_0);
  675. if (ret != PS7_INIT_SUCCESS)
  676. return ret;
  677. } else {
  678. ret = ps7_config(ps7_post_config_3_0);
  679. if (ret != PS7_INIT_SUCCESS)
  680. return ret;
  681. }
  682. return PS7_INIT_SUCCESS;
  683. }
  684. int ps7_init(void)
  685. {
  686. unsigned long si_ver = ps7GetSiliconVersion();
  687. int ret;
  688. if (si_ver == PCW_SILICON_VERSION_1) {
  689. ps7_mio_init_data = ps7_mio_init_data_1_0;
  690. ps7_pll_init_data = ps7_pll_init_data_1_0;
  691. ps7_clock_init_data = ps7_clock_init_data_1_0;
  692. ps7_ddr_init_data = ps7_ddr_init_data_1_0;
  693. ps7_peripherals_init_data = ps7_peripherals_init_data_1_0;
  694. } else if (si_ver == PCW_SILICON_VERSION_2) {
  695. ps7_mio_init_data = ps7_mio_init_data_2_0;
  696. ps7_pll_init_data = ps7_pll_init_data_2_0;
  697. ps7_clock_init_data = ps7_clock_init_data_2_0;
  698. ps7_ddr_init_data = ps7_ddr_init_data_2_0;
  699. ps7_peripherals_init_data = ps7_peripherals_init_data_2_0;
  700. } else {
  701. ps7_mio_init_data = ps7_mio_init_data_3_0;
  702. ps7_pll_init_data = ps7_pll_init_data_3_0;
  703. ps7_clock_init_data = ps7_clock_init_data_3_0;
  704. ps7_ddr_init_data = ps7_ddr_init_data_3_0;
  705. ps7_peripherals_init_data = ps7_peripherals_init_data_3_0;
  706. }
  707. ret = ps7_config(ps7_mio_init_data);
  708. if (ret != PS7_INIT_SUCCESS)
  709. return ret;
  710. ret = ps7_config(ps7_pll_init_data);
  711. if (ret != PS7_INIT_SUCCESS)
  712. return ret;
  713. ret = ps7_config(ps7_clock_init_data);
  714. if (ret != PS7_INIT_SUCCESS)
  715. return ret;
  716. ret = ps7_config(ps7_ddr_init_data);
  717. if (ret != PS7_INIT_SUCCESS)
  718. return ret;
  719. ret = ps7_config(ps7_peripherals_init_data);
  720. if (ret != PS7_INIT_SUCCESS)
  721. return ret;
  722. return PS7_INIT_SUCCESS;
  723. }