Debug - Daisy Chain (For Sapphire RV32 and RV64 SoC)
About this task
TMS and TCK signals are
common signals which means these signals are required to be routed to all devices on
the board. The first device's TDI is connected to the debugger and
its TDO is connected to the TDI of the next
device. The connection is shown in the following figure.After generating the SoC, you need to manually edit the debug launch script to include the device information in the chain. The debug launch script is available in embedded_sw/<soc>/bsp/efinix/<soc_ type>/openocd/debug_<type>.cfg. The debug launch script you select depends on the tap type that is being used on the first device, which is either Trion hardened tap, Titanium hardened tap, Topaz hardened tap or soft tap.
You need to insert information as described:
Procedure
Results
| Additional Tap Devices (Max) | JTAG Mapping |
|---|---|
| 1 | 88012211 |
| 2 | 88012222 |
| 3 | 88012233 |
| 4 | 88012244 |
| 5 | 88012255 |
| 6 | 88012266 |
| 7 | 88012277 |
| 8 | 88012288 |
Example 2: Four devices in the daisy chain, and two of them are running on Sapphire SoC. The debug launch script is:
set _CHIPNAME other
set _CHIPNAME1 fpga_spinal1
set _CHIPNAME2 fpga other2
set _CHIPNAME1 fpga_spinal3
#device closest to TDO
jtag newtap $_CHIPNAME bridge -irlen <unknown> -ircapture <unknown> -irmask <unknown>
jtag newtap $_CHIPNAME1 bridge -expected-id $_CPUTAPID -irlen <unknown> -ircapture <unknown> -irmask <unknown>
jtag newtap $_CHIPNAME2 bridge -irlen <unknown> -ircapture <unknown> -irmask <unknown>
jtag newtap $_CHIPNAME3 bridge -expected-id $_CPUTAPID -irlen <unknown> -ircapture <unknown> -irmask <unknown>
#device closest to TDI
target create $_CHIPNAME1.cpu0 vexriscv -endian $_ENDIAN -chain-position $_CHIPNAME1.bridge -coreid 0 -dbgbase 0x10B80000
vexriscv readWaitCycles 12
vexriscv cpuConfigFile $CPU0_YAML
vexriscv jtagMapping 8 8 0 1 2 2 3 3
target create $_CHIPNAME3.cpu0 vexriscv -endian $_ENDIAN -chain-position $_CHIPNAME3.bridge -coreid 0 -dbgbase 0x10B80000
vexriscv readWaitCycles 12
vexriscv cpuConfigFile $CPU0_YAML
vexriscv jtagMapping 8 8 0 1 2 2 3 3