为RK3588手工启用JTAG
因为RK3588的JTAG信号是与其它设备复用的,所以有些情况下需要手工切换和启用JTAG信号。
根据RK3588的TRM手册,关键的配置寄存器名叫BUS_IOC_GPIO4D_IOMUX_SEL_L,它的高16位是写启用位,低16位定义如下:
挥码枪的SD接头连线如下:

也就是把SD的D2和D3用作JTAG(TCK、TMS),D0和D1用作串口(UART2).
因为此,在使用挥码枪调试时,BUS_IOC_GPIO4D_IOMUX_SEL_L的值应该是0x5500.Bit 8-15的两个5用来启用TCK和TMS,Bit 0-8的两个0用来选取UART2.
以下是在NDB调试器下看到的正确值。
!dd 0x0`fd5f8000+0x98
00000000`fd5f8098 00005500 00000011 00000000 00000000
00000000`fd5f80a8 00000000 00000000 00000000 00000000
00000000`fd5f80b8 00000000 00000000 00000000 00000000
00000000`fd5f80c8 00000000 00000000 00000000 00000000
00000000`fd5f80d8 00000000 00000000 00000000 00000000
00000000`fd5f80e8 00000000 00000000 00000000 00000000
00000000`fd5f80f8 00000000 00000000 00000000 00000000
00000000`fd5f8108 00000000 00009aa0 00000009 00000000
通过U-Boot命令行启用JTAG
在3588系统启动的U-Boot阶段,按U-Boot热键进入U-Boot命令行。U-Boot热键没有明确的标准,在幽兰上是11.
在U-Boot命令行中执行如下命令进修改BUS_IOC_GPIO4D_IOMUX_SEL_L寄存器:
mw 0xfd5f8098 0xffff5500
使用devmem启用JTAG
进入到Linux系统后,可以使用devmem命令来修改BUS_IOC_GPIO4D_IOMUX_SEL_L寄存器,参考命令如下:
devmem 0xfd5f8098 w 0xffff5500
作者:Zhang Yinkui 创建时间:2024-09-23 15:29
最后编辑:Zhang Yinkui 更新时间:2025-12-30 20:40
最后编辑:Zhang Yinkui 更新时间:2025-12-30 20:40