JTAG 烧录
Read time: 2 minute(s)
本芯片的 BROM 支持 JTAG 烧录模式。 在该模式下,可以通过 JTAG 下载组件数据并且让芯片执行特定烧录命令的方式对启动介质进行烧录。
-
通过下列方式进入 BROM 升级模式:
-
空片启动失败进入
-
设置 WRI BOOTINFO 寄存器,软件进入
-
按下 BOOTPIN 进入
要进入 JTAG 烧录模式,首先要进入 BROM 升级模式。
-
- 通过下列地址设置所执行的命令参数。JTAG 烧录过程中,每次通过 JTAG 配置一个烧录任务,相关的任务信息写入配置地址:
表 1. 配置地址 命令 地址 描述 备注 CMD 0x30040000 CMD Address - ARG0 0x300400004 ARG0 Address - ARG1 0x30040008 ARG1 Address - ARG2 0x3004000C ARG2 Address - ARG3 0x30040010 ARG3 Address - - 0x30040014 RET Address 任务执行完毕后,程序会主动停止到指定断点处,并且将结果写入 ret 地址。 - 0x30000010 Continue Run Address 如果需要继续执行,则需要将 pc 指针修改到 0x30000010,然后继续执行。
图 1. 支持的命令 -
在 BROM 升级模式下,需要确认此时 JTAG 可以连接芯片。此时使用 JTAG 连接芯片,即可进入 JTAG 烧录模式,然后通过设置特定的命令,执行烧录命令。注: 在使能了安全启动的情况下,仅能通过输入 JTAG 解锁密钥的方式使能 JTAG。以下使用 SPI NOR Flash 烧录为例,演示烧录流程:
- 进入 BROM 升级模式,连接 JTAG。
- 擦除对应的烧写区域:
echo set cmd = JTAG_CMD_SPINOR_ERASE set {int}0x30040000=0x544A0001 echo set arg0 = SPI0, ext flash set {int}0x30040004=0 echo set arg1 = flash address set {int}0x30040008=0 echo set arg2 = erase length set {int}0x3004000C=0x200000 continue
- 下载数据并且执行烧录:
echo download data to SRAM restore data.aic binary 0x30044000 echo set cmd = JTAG_CMD_SPINOR_WRITE set {int}0x30040000=0x544A0002 echo set arg0 = SPI0, ext flash set {int}0x30040004=0 echo set arg1 = flash address set {int}0x30040008=0 echo set arg2 = data length set {int}0x3004000C=0x80000 echo set arg3 = data src address set {int}0x30040010=0x30044000 echo Run command set $pc=0x30000010 continue