betrusted-io / betrusted-soc

Betrusted main SoC design
Other
135 stars 21 forks source link

jtag highz feature #29

Open mazsi-on-precursor opened 2 years ago

mazsi-on-precursor commented 2 years ago

i have trouble using the hardware JTAG interface over the Raspberry Pi Debug HAT after the system is fully booted: the JTAG programmer reports

TDO seems to be stuck at 1

i think the GPIO/retrospective JTAG interface in the SoC interferes with the external programmer, the GPIO JTAG preventing the external programmer from properly driving the TCK/TMS/TDI signals.

(if i repeatedly reboot the precursors board, then there are short time windows during the bootup when the external JTAG programmer works - when the PROG pin is not driven anymore, but the FPGA is not yet programmed / the GPIO JTAG outputs are not yet driven.)

could you add support for putting the SoC's GPIO/retrospective JTAG pins into HIGZ?

if this is part of the in-depth defense (to make tinkering over JTAG more difficult), than an accompanying xous command to activate it would also be useful (e.g. jtag highz). running any other JTAG commands (e.g. jtag dna) could start driving the JTAG signals again.

bunnie commented 9 months ago

You're right, this is one of the things that's done to make jtag tinkering harder/more annoying. However, one way around it is to assert PROG while examining JTAG. This means the FPGA is cleared of its program data but you can still issue JTAG commands to it.