Edit online

JTAG 烧录

Read time: 2 minute(s)
本芯片的 BROM 支持 JTAG 烧录模式。 在该模式下,可以通过 JTAG 下载组件数据并且让芯片执行特定烧录命令的方式对启动介质进行烧录。
  1. 通过下列方式进入 BROM 升级模式:

    1. 空片启动失败进入

    2. 设置 WRI BOOTINFO 寄存器,软件进入

    3. 按下 BOOTPIN 进入

    要进入 JTAG 烧录模式,首先要进入 BROM 升级模式。

  2. 通过下列地址设置所执行的命令参数。
    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. 支持的命令
  3. 在 BROM 升级模式下,需要确认此时 JTAG 可以连接芯片。此时使用 JTAG 连接芯片,即可进入 JTAG 烧录模式,然后通过设置特定的命令,执行烧录命令。
    注: 在使能了安全启动的情况下,仅能通过输入 JTAG 解锁密钥的方式使能 JTAG。
    以下使用 SPI NOR Flash 烧录为例,演示烧录流程:
    1. 进入 BROM 升级模式,连接 JTAG。
    2. 擦除对应的烧写区域:
      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
    3. 下载数据并且执行烧录:
      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