hpm6800evk.cfg 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. # Copyright (c) 2023 HPMicro
  2. # SPDX-License-Identifier: BSD-3-Clause
  3. flash bank xpi0 hpm_xpi 0x80000000 0x2000000 1 1 $_TARGET0 0xF3000000 0x7
  4. proc init_clock {} {
  5. $::_TARGET0 riscv dmi_write 0x39 0xF4000800
  6. $::_TARGET0 riscv dmi_write 0x3C 0xFFFFFFFF
  7. $::_TARGET0 riscv dmi_write 0x39 0xF4000810
  8. $::_TARGET0 riscv dmi_write 0x3C 0xFFFFFFFF
  9. $::_TARGET0 riscv dmi_write 0x39 0xF4000820
  10. $::_TARGET0 riscv dmi_write 0x3C 0xFFFFFFFF
  11. $::_TARGET0 riscv dmi_write 0x39 0xF4000830
  12. $::_TARGET0 riscv dmi_write 0x3C 0xFFFFFFFF
  13. echo "clocks has been enabled!"
  14. }
  15. proc init_ddr3 {} {
  16. # ddr dcdc setup
  17. $::_TARGET0 riscv dmi_write 0x39 0xF4104080
  18. $::_TARGET0 riscv dmi_write 0x3C 0x10578
  19. # ddr3 setup
  20. $::_TARGET0 riscv dmi_write 0x39 0xF40C0180
  21. $::_TARGET0 riscv dmi_write 0x3C 0x30000019
  22. $::_TARGET0 riscv dmi_write 0x39 0xF400180C
  23. $::_TARGET0 riscv dmi_write 0x3C 0x09100401
  24. $::_TARGET0 riscv dmi_write 0x39 0xF4153000
  25. $::_TARGET0 riscv dmi_write 0x3C 0xF0000010
  26. $::_TARGET0 riscv dmi_write 0x39 0xF30101B0
  27. $::_TARGET0 riscv dmi_write 0x3C 0
  28. $::_TARGET0 riscv dmi_write 0x39 0xF4150040
  29. $::_TARGET0 riscv dmi_write 0x3C 0xf004641f
  30. $::_TARGET0 riscv dmi_write 0x39 0xF4153000
  31. $::_TARGET0 riscv dmi_write 0x3C 0xf0000011
  32. $::_TARGET0 riscv dmi_write 0x39 0xF3013000
  33. $::_TARGET0 riscv dmi_write 0x3C 0xf4000000
  34. $::_TARGET0 riscv dmi_write 0x39 0xF3010490
  35. $::_TARGET0 riscv dmi_write 0x3C 1
  36. $::_TARGET0 riscv dmi_write 0x39 0xF3010000
  37. $::_TARGET0 riscv dmi_write 0x3C 0x1040001
  38. $::_TARGET0 riscv dmi_write 0x39 0xF30100D0
  39. $::_TARGET0 riscv dmi_write 0x3C 0x4002004e
  40. $::_TARGET0 riscv dmi_write 0x39 0xF3010110
  41. $::_TARGET0 riscv dmi_write 0x3C 0x05010407
  42. $::_TARGET0 riscv dmi_write 0x39 0xF3010190
  43. $::_TARGET0 riscv dmi_write 0x3C 0x07040102
  44. $::_TARGET0 riscv dmi_write 0x39 0xF3010194
  45. $::_TARGET0 riscv dmi_write 0x3C 0x20404
  46. $::_TARGET0 riscv dmi_write 0x39 0xF30101A4
  47. $::_TARGET0 riscv dmi_write 0x3C 0x20008
  48. $::_TARGET0 riscv dmi_write 0x39 0xF3010240
  49. $::_TARGET0 riscv dmi_write 0x3C 0x06000600
  50. $::_TARGET0 riscv dmi_write 0x39 0xF3010200
  51. $::_TARGET0 riscv dmi_write 0x3C 0x1F1F1F
  52. $::_TARGET0 riscv dmi_write 0x39 0xF3010204
  53. $::_TARGET0 riscv dmi_write 0x3C 0x121212
  54. $::_TARGET0 riscv dmi_write 0x39 0xF3010208
  55. $::_TARGET0 riscv dmi_write 0x3C 0
  56. $::_TARGET0 riscv dmi_write 0x39 0xF301020C
  57. $::_TARGET0 riscv dmi_write 0x3C 0
  58. $::_TARGET0 riscv dmi_write 0x39 0xF3010210
  59. $::_TARGET0 riscv dmi_write 0x3C 0x1F1F
  60. $::_TARGET0 riscv dmi_write 0x39 0xF3010214
  61. $::_TARGET0 riscv dmi_write 0x3C 0x06030303
  62. $::_TARGET0 riscv dmi_write 0x39 0xF3010218
  63. $::_TARGET0 riscv dmi_write 0x3C 0x0F060606
  64. $::_TARGET0 riscv dmi_write 0x39 0xF3013000
  65. $::_TARGET0 riscv dmi_write 0x3C 0xFC000000
  66. $::_TARGET0 riscv dmi_write 0x39 0xF4150054
  67. $::_TARGET0 riscv dmi_write 0x3C 0xc70
  68. $::_TARGET0 riscv dmi_write 0x39 0xF4150058
  69. $::_TARGET0 riscv dmi_write 0x3C 0x6
  70. $::_TARGET0 riscv dmi_write 0x39 0xF415005c
  71. $::_TARGET0 riscv dmi_write 0x3C 0x18
  72. $::_TARGET0 riscv dmi_write 0x39 0xF4150048
  73. $::_TARGET0 riscv dmi_write 0x3C 0x919c8866
  74. $::_TARGET0 riscv dmi_write 0x39 0xF415004c
  75. $::_TARGET0 riscv dmi_write 0x3C 0x1a838360
  76. $::_TARGET0 riscv dmi_write 0x39 0xF415008c
  77. $::_TARGET0 riscv dmi_write 0x3C 0xf06d50
  78. $::_TARGET0 riscv dmi_write 0x39 0xF4150050
  79. $::_TARGET0 riscv dmi_write 0x3C 0x3002d200
  80. $::_TARGET0 riscv dmi_write 0x39 0xF30101b0
  81. $::_TARGET0 riscv dmi_write 0x3C 1
  82. sleep 100
  83. $::_TARGET0 riscv dmi_write 0x39 0xF4150068
  84. $::_TARGET0 riscv dmi_write 0x3C 0x930035C7
  85. $::_TARGET0 riscv dmi_write 0x39 0xF4150004
  86. $::_TARGET0 riscv dmi_write 0x3C 0xFF81
  87. sleep 200
  88. echo "ddr3 has been enabled!"
  89. }
  90. proc init_dram {} {
  91. # ddr dcdc setup
  92. $::_TARGET0 riscv dmi_write 0x39 0xF4104080
  93. $::_TARGET0 riscv dmi_write 0x3C 0x10708
  94. # pll1 setup
  95. $::_TARGET0 riscv dmi_write 0x39 0xF40c0180
  96. $::_TARGET0 riscv dmi_write 0x3C 0xb0000016
  97. $::_TARGET0 riscv dmi_write 0x39 0xF40c0184
  98. $::_TARGET0 riscv dmi_write 0x3C 0
  99. $::_TARGET0 riscv dmi_write 0x39 0xF40c0188
  100. $::_TARGET0 riscv dmi_write 0x3C 0xe4e1c00
  101. #ddr setup
  102. $::_TARGET0 riscv dmi_write 0x39 0xF3010000
  103. $::_TARGET0 riscv dmi_write 0x3C 0x3040000
  104. $::_TARGET0 riscv dmi_write 0x39 0xF30101B0
  105. $::_TARGET0 riscv dmi_write 0x3C 0
  106. $::_TARGET0 riscv dmi_write 0x39 0xF4150044
  107. $::_TARGET0 riscv dmi_write 0x3C 0x40a
  108. $::_TARGET0 riscv dmi_write 0x39 0xF4150040
  109. $::_TARGET0 riscv dmi_write 0x3C 0xf004641f
  110. $::_TARGET0 riscv dmi_write 0x39 0xF4153000
  111. $::_TARGET0 riscv dmi_write 0x3C 0xf0000011
  112. $::_TARGET0 riscv dmi_write 0x39 0xF3013000
  113. $::_TARGET0 riscv dmi_write 0x3C 0xf4000000
  114. $::_TARGET0 riscv dmi_write 0x39 0xF3010490
  115. $::_TARGET0 riscv dmi_write 0x3C 1
  116. $::_TARGET0 riscv dmi_write 0x39 0xF3010000
  117. $::_TARGET0 riscv dmi_write 0x3C 0x1040000
  118. $::_TARGET0 riscv dmi_write 0x39 0xF3010190
  119. $::_TARGET0 riscv dmi_write 0x3C 0x07010101
  120. $::_TARGET0 riscv dmi_write 0x39 0xF3010194
  121. $::_TARGET0 riscv dmi_write 0x3C 0x20404
  122. $::_TARGET0 riscv dmi_write 0x39 0xF30101A4
  123. $::_TARGET0 riscv dmi_write 0x3C 0x20008
  124. $::_TARGET0 riscv dmi_write 0x39 0xF3010240
  125. $::_TARGET0 riscv dmi_write 0x3C 0x6000600
  126. $::_TARGET0 riscv dmi_write 0x39 0xF3010200
  127. $::_TARGET0 riscv dmi_write 0x3C 0x1f1f1f
  128. $::_TARGET0 riscv dmi_write 0x39 0xF3010204
  129. $::_TARGET0 riscv dmi_write 0x3C 0x70707
  130. $::_TARGET0 riscv dmi_write 0x39 0xF3010208
  131. $::_TARGET0 riscv dmi_write 0x3C 0
  132. $::_TARGET0 riscv dmi_write 0x39 0xF301020c
  133. $::_TARGET0 riscv dmi_write 0x3C 0
  134. $::_TARGET0 riscv dmi_write 0x39 0xF3010210
  135. $::_TARGET0 riscv dmi_write 0x3C 0x1f1f
  136. $::_TARGET0 riscv dmi_write 0x39 0xF3010214
  137. $::_TARGET0 riscv dmi_write 0x3C 0x6060606
  138. $::_TARGET0 riscv dmi_write 0x39 0xF3010218
  139. $::_TARGET0 riscv dmi_write 0x3C 0xf0f0606
  140. $::_TARGET0 riscv dmi_write 0x39 0xF3013000
  141. $::_TARGET0 riscv dmi_write 0x3C 0xfc000000
  142. $::_TARGET0 riscv dmi_write 0x39 0xF4150020
  143. $::_TARGET0 riscv dmi_write 0x3C 0x3000100
  144. $::_TARGET0 riscv dmi_write 0x39 0xF4150028
  145. $::_TARGET0 riscv dmi_write 0x3C 0x18002356
  146. $::_TARGET0 riscv dmi_write 0x39 0xF415002c
  147. $::_TARGET0 riscv dmi_write 0x3C 0x0aac4156
  148. $::_TARGET0 riscv dmi_write 0x39 0xF4150054
  149. $::_TARGET0 riscv dmi_write 0x3C 0xe73
  150. $::_TARGET0 riscv dmi_write 0x39 0xF4150058
  151. $::_TARGET0 riscv dmi_write 0x3C 0x5
  152. $::_TARGET0 riscv dmi_write 0x39 0xF415005c
  153. $::_TARGET0 riscv dmi_write 0x3C 0
  154. $::_TARGET0 riscv dmi_write 0x39 0xF4150048
  155. $::_TARGET0 riscv dmi_write 0x3C 0xf2adfe53
  156. $::_TARGET0 riscv dmi_write 0x39 0xF415004c
  157. $::_TARGET0 riscv dmi_write 0x3C 0x22820362
  158. $::_TARGET0 riscv dmi_write 0x39 0xF4150050
  159. $::_TARGET0 riscv dmi_write 0x3C 0x30020100
  160. $::_TARGET0 riscv dmi_write 0x39 0xF415008c
  161. $::_TARGET0 riscv dmi_write 0x3C 0xf06d50
  162. $::_TARGET0 riscv dmi_write 0x39 0xF30101b0
  163. $::_TARGET0 riscv dmi_write 0x3C 1
  164. sleep 100
  165. $::_TARGET0 riscv dmi_write 0x39 0xF4150068
  166. $::_TARGET0 riscv dmi_write 0x3C 0x91003587
  167. $::_TARGET0 riscv dmi_write 0x39 0xF4150004
  168. $::_TARGET0 riscv dmi_write 0x3C 0xF501
  169. sleep 200
  170. echo "ddr has been enabled!"
  171. }
  172. $_TARGET0 configure -event reset-end {
  173. init_clock
  174. # init_ddr3
  175. }
  176. $_TARGET0 configure -event reset-init {
  177. init_clock
  178. init_ddr3
  179. }
  180. $_TARGET0 configure -event gdb-attach {
  181. reset halt
  182. }