找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1511|回复: 1

使用EJTAG刷新久久派pmon固件的过程记录

[复制链接]

25

主题

61

回帖

400

积分

超级版主

积分
400
发表于 2024-12-18 00:06:59 | 显示全部楼层 |阅读模式
本帖最后由 杜比 于 2024-12-18 00:27 编辑

烧写固件的主要过程:


  1. cpu0 -program_cachelock pmon_bin/gzrom-dtb.bin
  2. #program_cachelock pmon_bin/gzrom-dtb.bin
  3. #spi_memen
  4. #letl en 1
  5. #expr 0x8000000016010000+0x4
  6. #d1q 0x8000000016010004 1
  7. #letl o 0x47
  8. #do if 1
  9. #expr 0x8000000016010000+0x4
  10. #expr 0x47|1
  11. #m1  0x8000000016010004 0x47
  12. #loop_break
  13. #ret
  14. #letl file pmon_bin/gzrom-dtb.bin
  15. #echo_on
  16. #stop
  17. #setconfig usb_ejtag.put_speed 0x400
  18. #setconfig callbin.stacksize 0x1000
  19. #setconfig helpaddr 0x900000001c000000
  20. #setconfig put.pack_size 0x10000
  21. #call cache_init_and_lock
  22. #call cache_init
  23. #setconfig core.nocache 0
  24. #setconfig cacheflush.nohelp_size 0x1000000
  25. #set csr0 0xb0
  26. #set csr180 0x800000000000000f
  27. #set csr181 0x900000000000001f
  28. #setconfig core.nocache 1
  29. #ret
  30. #call fixup_window
  31. #d4q 0x8000000016000100 1
  32. #expr 0x10f20020|0x20
  33. #m4 0x8000000016000100 0x10f20020
  34. #m8 0x8000000016000090 0x000000001c0000f2 0x000000001c0000f2
  35. #ret
  36. #call cache_lock
  37. #m8 0x8000000016000200  0x800000001c000000
  38. #m8 0x8000000016000240  0xfffffffffffc0000
  39. #ret
  40. #smemset8 0x900000001c000000 0 0x800
  41. #setconfig helpaddr 0x900000001c000000
  42. #setconfig callbin.stacksize 0x1000
  43. #test cache_init_and_lock == cache_init_and_lock
  44. #do if 1
  45. #expr 0x40000-0x800
  46. #memset8 0x900000001c000800 0 0x3f800
  47. #end
  48. #ret
  49. #setconfig core.nocache 1
  50. #test program_cachelock == sprogram_cachelock_spi
  51. #if 0  letl s 's'
  52. #test program_cachelock == fprogram_cachelock_spi
  53. #if 0  letl s 'f'
  54. #save
  55. ##setconfig flash.type byte
  56. #setconfig flash.type page
  57. #setconfig spi.inited 0
  58. #spi_memen 0
  59. #letl en 0
  60. #expr 0x8000000016010000+0x4
  61. #d1q 0x8000000016010004 1
  62. #letl o 0x47
  63. #do if 0
  64. #expr 0x8000000016010000+0x4
  65. #expr 0x47&~1
  66. #m1  0x8000000016010004 0x46
  67. #end
  68. #ret
  69. #call spi_init 4
  70. #letl d 4
  71. #expr 0x8000000016010000+0x1
  72. #m1 0x8000000016010001 0xc0
  73. #expr 0x8000000016010000+0x4
  74. #expr 4<<4
  75. #m1 0x8000000016010004 0x40
  76. #expr 0x8000000016010000+0x3
  77. #expr (0x5&~3)|((4>>2)&3)
  78. #m1 0x8000000016010003 0x5
  79. #expr 0x8000000016010000+0x6
  80. #m1 0x8000000016010006 0x1
  81. #expr 0x8000000016010000+0x0
  82. #expr (0x51&~3)|(4&3)
  83. #m1 0x8000000016010000 0x50
  84. #m4 0xdb000000000fff00 0x8000000016010000
  85. #setconfig spi.inited 1
  86. #ret
  87. #erase      
  88. ## 绿灯开始闪烁
  89. #test -s pmon_bin/gzrom-dtb.bin
  90. #letl len 1044980
  91. #letl once 0x20000
  92. #letl i 0
  93. #expr 0<1044980
  94. #do while 0x1
  95. #put pmon_bin/gzrom-dtb.bin 0x900000001c010000 0x20000 0
  96. pack: 1,time : 6, download_size : 0x20000, download rate=21845 B/S
  97. ##setconfig log.disas 1
  98. ##log /tmp/log-$i.txt
  99. #test program_cachelock == program_cachelock_bin
  100. #do if 0
  101. #Sprogram 0x900000001c010000 0 131072
  102. 0x0000000000000000      (0)
  103. 0x0000000000010000      (65536)
  104. #end
  105. ##letl s s
  106. ##setconfig log.disas 0
  107. ##log
  108. #end
  109. #expr 0+0x20000
  110. #letl i 0x20000
  111. #expr 0x20000<1044980
  112. #do while 0x1
  113. #put pmon_bin/gzrom-dtb.bin 0x900000001c010000 0x20000 0x20000
  114. pack: 1,time : 6, download_size : 0x20000, download rate=21845 B/S
  115. ##setconfig log.disas 1
  116. ##log /tmp/log-$i.txt
  117. #test program_cachelock == program_cachelock_bin
  118. #do if 0
  119. #Sprogram 0x900000001c010000 0x20000 131072
  120. 0x0000000000020000      (131072)
  121. 0x0000000000030000      (196608)
  122. #end
  123. ##letl s s
  124. ##setconfig log.disas 0
  125. ##log
  126. #end
  127. #expr 0x20000+0x20000
  128. #letl i 0x40000
  129. #expr 0x40000<1044980
  130. #do while 0x1
  131. #put pmon_bin/gzrom-dtb.bin 0x900000001c010000 0x20000 0x40000
  132. pack: 1,time : 6, download_size : 0x20000, download rate=21845 B/S
  133. ##setconfig log.disas 1
  134. ##log /tmp/log-$i.txt
  135. #test program_cachelock == program_cachelock_bin
  136. #do if 0
  137. #Sprogram 0x900000001c010000 0x40000 131072
  138. 0x0000000000040000      (262144)
  139. 0x0000000000050000      (327680)
  140. #end
  141. ##letl s s
  142. ##setconfig log.disas 0
  143. ##log
  144. #end
  145. #expr 0x40000+0x20000
  146. #letl i 0x60000
  147. #expr 0x60000<1044980
  148. #do while 0x1
  149. #put pmon_bin/gzrom-dtb.bin 0x900000001c010000 0x20000 0x60000
  150. pack: 1,time : 6, download_size : 0x20000, download rate=21845 B/S
  151. ##setconfig log.disas 1
  152. ##log /tmp/log-$i.txt
  153. #test program_cachelock == program_cachelock_bin
  154. #do if 0
  155. #Sprogram 0x900000001c010000 0x60000 131072
  156. 0x0000000000060000      (393216)
  157. 0x0000000000070000      (458752)
  158. #end
  159. ##letl s s
  160. ##setconfig log.disas 0
  161. ##log
  162. #end
  163. #expr 0x60000+0x20000
  164. #letl i 0x80000
  165. #expr 0x80000<1044980
  166. #do while 0x1
  167. #put pmon_bin/gzrom-dtb.bin 0x900000001c010000 0x20000 0x80000
  168. pack: 1,time : 6, download_size : 0x20000, download rate=21845 B/S
  169. ##setconfig log.disas 1
  170. ##log /tmp/log-$i.txt
  171. #test program_cachelock == program_cachelock_bin
  172. #do if 0
  173. #Sprogram 0x900000001c010000 0x80000 131072
  174. 0x0000000000080000      (524288)
  175. 0x0000000000090000      (589824)
  176. #end
  177. ##letl s s
  178. ##setconfig log.disas 0
  179. ##log
  180. #end
  181. #expr 0x80000+0x20000
  182. #letl i 0xa0000
  183. #expr 0xa0000<1044980
  184. #do while 0x1
  185. #put pmon_bin/gzrom-dtb.bin 0x900000001c010000 0x20000 0xa0000
  186. pack: 1,time : 6, download_size : 0x20000, download rate=21845 B/S
  187. ##setconfig log.disas 1
  188. ##log /tmp/log-$i.txt
  189. #test program_cachelock == program_cachelock_bin
  190. #do if 0
  191. #Sprogram 0x900000001c010000 0xa0000 131072
  192. 0x00000000000a0000      (655360)
  193. 0x00000000000b0000      (720896)
  194. #end
  195. ##letl s s
  196. ##setconfig log.disas 0
  197. ##log
  198. #end
  199. #expr 0xa0000+0x20000
  200. #letl i 0xc0000
  201. #expr 0xc0000<1044980
  202. #do while 0x1
  203. #put pmon_bin/gzrom-dtb.bin 0x900000001c010000 0x20000 0xc0000
  204. pack: 1,time : 6, download_size : 0x20000, download rate=21845 B/S
  205. ##setconfig log.disas 1
  206. ##log /tmp/log-$i.txt
  207. #test program_cachelock == program_cachelock_bin
  208. #do if 0
  209. #Sprogram 0x900000001c010000 0xc0000 131072
  210. 0x00000000000c0000      (786432)
  211. 0x00000000000d0000      (851968)
  212. #end
  213. ##letl s s
  214. ##setconfig log.disas 0
  215. ##log
  216. #end
  217. #expr 0xc0000+0x20000
  218. #letl i 0xe0000
  219. #expr 0xe0000<1044980
  220. #do while 0x1
  221. #put pmon_bin/gzrom-dtb.bin 0x900000001c010000 0x20000 0xe0000
  222. pack: 1,time : 6, download_size : 0x1f1f4, download rate=21246 B/S
  223. ##setconfig log.disas 1
  224. ##log /tmp/log-$i.txt
  225. #test program_cachelock == program_cachelock_bin
  226. #do if 0
  227. #Sprogram 0x900000001c010000 0xe0000 127476
  228. 0x00000000000e0000      (917504)
  229. 0x00000000000f0000      (983040)
  230. #end
  231. ##letl s s
  232. ##setconfig log.disas 0
  233. ##log
  234. #end
  235. #expr 0xe0000+0x20000
  236. #letl i 0x100000
  237. #expr 0x100000<1044980
  238. #do while 0x0
  239. #setconfig helpaddr 0x900000000000f000
  240. #setconfig put.pack_size 0x100000
  241. #ret
  242. cpu0 -

复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

25

主题

61

回帖

400

积分

超级版主

积分
400
 楼主| 发表于 2024-12-18 00:12:26 | 显示全部楼层
本帖最后由 杜比 于 2024-12-18 00:21 编辑

启动ejtag和加载2k300配置文件的主要过程

  1. sudo ./la_dbg_tool_usb -t          // 启动硬件调试器的命令和参数,因为访问硬件,需要root账户权限执行
  2. [sudo] password for bexsder:
  3. cpu0 -source configs/config.ls2k300   // 执行2K300配置文件,进行硬件调试器针对2k300的各种初始化和配置

  4. ##jtag_clk 1 2
  5. #jtag_clk 8 2
  6. #letl clk 8
  7. #expr 0x10000|8
  8. #usblooptest 0x81000070  0x10008
  9. #expr 3>2
  10. #do if 0x1
  11. #letl phase 2
  12. #expr 0x20000|2
  13. #usblooptest 0x81000070  0x20002
  14. #end
  15. #ret
  16. #setconfig core.cpucount 1
  17. #setconfig core.cpuwidth 64
  18. #setconfig core.abisize 64
  19. #setconfig helpaddr 0x900000000000f000
  20. #setconfig putelf.uncached 0
  21. #setconfig usb_ejtag.put_speed 0
  22. #setconfig usb_ejtag.get_speed 0
  23. #setconfig core.nocache 1
  24. #setconfig jtag.pcswidth 83
  25. #setconfig jtag.synci 1
  26. #setconfig jtag.jrhb 1
  27. #setconfig jtag.jalrhb 1
  28. #setconfig put.fastdata 0
  29. #setenv ENV_memsize 256
  30. ##setenv ENV_highmemsize 1792
  31. #setenv ENV_cpuclock 800000000
  32. #let spibase 0x8000000016010000
  33. #setconfig spi.iobase 0x8000000016010000
  34. #letl ejtag_spibase 0xdb000000000fff00
  35. ##setconfig flash.type byte
  36. #setconfig flash.type page
  37. #usblooptest 0x81000070 0x20001
  38. #fix_ejtag_la
  39. #expr1 ( match "/srv/pubs/mlk300/uisrc-lab-ls2k300/tools/ejtag-debug/la_dbg_tool_usb" .*usb ) == 0
  40. #if 0x0 ret
  41. #usbver
  42. #expr 0x20201220==0x20150105
  43. #do if 0x0
  44. #usblooptest 0x4c
  45. #expr 0x00000000!=0
  46. #elsif 0x0
  47. #loop_break
  48. #ret
  49. #expr "(0x1 << 16)"
  50. #letl PLL_L1_LOCKED     0x10000
  51. #expr "(0x1 << 2)"
  52. #letl PLL_L1_ENA                0x4
  53. #expr "(0x1 << 2)"
  54. #letl PLL_MEM_ENA       0x4
  55. #expr "(01 << 16)"
  56. #letl PLL_MEM_LOCKED    0x10000
  57. #letl PLL_CHANG_COMMIT 0x1
  58. #letl DDR_REFC   4
  59. #letl DDR_DIV    1
  60. #letl DDR_DIV_L2    4
  61. #letl GPU_DIV_L2    5
  62. #letl PLL_IN 100000000
  63. #expr 333000000/10*1*4*4/(100000000/10)
  64. #letl DDR_LOOPC 0x35
  65. ##/* CPU @ 1000Mhz */
  66. #letl L1_LOOPC    80
  67. #letl L1_REFC     4
  68. #letl L1_DIV      1
  69. #letl L2_DIV      2
  70. #expr 1000000000/10*1*4*2/(100000000/10)
  71. #letl L1_LOOPC 0x50
  72. ##dc 200M
  73. ##gmac 125M
  74. #letl DC_LOOPC    80
  75. #letl DC_REFC     4
  76. #letl DC_DIV      1
  77. #letl DC_DIV_L2   8
  78. #letl GMAC_DIV    16
  79. ##letl DC_LOOPC {250000000/10*${DC_DIV}*${DC_REFC}*${DC_DIV_L2}/(${PLL_IN}/10)}
  80. ##letl PIX0_LOOPC       109
  81. #letl PIX0_REFC 5
  82. #letl PIX0_DIV  1
  83. #letl PIX0_DIV_L2       20
  84. #expr 64000000/10*1*5*20/(100000000/10)
  85. #letl PIX0_LOOPC 0x40
  86. ##letl PIX1_LOOPC       109
  87. #letl PIX1_REFC 5
  88. #letl PIX1_DIV  1
  89. #letl PIX1_DIV_L2       20
  90. #expr 64000000/10*1*5*20/(100000000/10)
  91. #letl PIX0_LOOPC 0x40
  92. #let rtc_reg 0xffffffffbff6c100
  93. #letl pcicfgbase  0x800000fe00000000
  94. #letl pcicfgbase1  0x800000fe00000000
  95. ##letl pcicfgbase  0x8000000016800000
  96. ##letl pcicfgbase1 0x8000000016800000
  97. #letl i2creg 0xffffffffbfe01000
  98. #dellabel cache_init
  99. #source "scripts/gmac.cmd"
  100. #letl phy 16
  101. #letl base 0xffffffffbfe10000
  102. #letl coherent_base 0x9800000000000000
  103. #letl base 0x800000001f020000
  104. #letl phy 24
  105. ##letl base {($(pci_config_read 0 0x3 0 0x10)&~0xf)|0x9000000000000000}
  106. #source scripts/nand.cmd
  107. #letl nand_msize nand_osize nand_cap nand_esize 8192 256 7 0x20000
  108. #letl ncmd 0xffffffffbfe06000
  109. #letl orderreg 0xffffffffbfe10c00
  110. #letl ncmd 0xffffffffbfe06000
  111. #letl orderreg 0xffffffffbfe10c00
  112. #source scripts/spi.cmd
  113. #let spibase 0x8000000016010000
  114. #let spi_cs 0
  115. #let spi_speed 4
  116. #let spibase 0x8000000016010000
  117. #let spi_cs 0
  118. #dellabel gdb_module_setup
  119. ##acpi_gmac_suspend()
  120. ##{
  121. ##devmem 0x4004002c 32 $(($(devmem 0x4004002c)|0x203))
  122. ##devmem 0x4005002c 32 $(($(devmem 0x4005002c)|0x203))
  123. ##devmem 0x1fe0702c 32 0x70
  124. ##devmem 0x1fe07028 32 0x0000ffff
  125. ##devmem 0x1fe0700c 32 0x0000ffff
  126. ##devmem 0x1fe07008 32 $(($(devmem 0x1fe07008)|0x80))
  127. ##devmem 0x1fe07004 32 $(($(devmem 0x1fe07004)|0x80))
  128. ##devmem 0x1fe07014 32 $(((1<<13)|(${1:-5}<<10)))
  129. ##}
  130. #source scripts/i2c.cmd
  131. #let i2c_noack 0
  132. #source scripts/spi.cmd
  133. #let spibase 0x8000000016010000
  134. #let spi_cs 0
  135. #let spi_speed 4
  136. #let spi_cs 0
  137. #source scripts/dumpserial.cmd
  138. #let kargs 'g console=ttyS0,115200 log_buf_len=10M initcall_debug=1 loglevel=20 nousb'
  139. #let kernel /tmp/vmlinuz
  140. #let rd /tmp/rootfs.cpio.gz
  141. #let iobase 0x8000000000000000

复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-5-19 23:15 , Processed in 0.049927 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表