[Libre-soc-bugs] [Bug 763] Work on I/O Core Pad JTAG Tests

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Jan 30 17:17:32 GMT 2022


https://bugs.libre-soc.org/show_bug.cgi?id=763

--- Comment #1 from Andrey Miroshnikov <andrey at technepisteme.xyz> ---
Luke, before closing the bug, I wanted to find the cause of the TDO issue.
To make the issue easier to find, I focused on checking the uart rx/tx signals.

Pad input rx cleared. UART rx/tx internal loopback disabled:

1. EX_TEST, BS data is 0x80000 (set uart rx core i)
2. EX_TEST, BS data is 0x40000 (set uart tx pad o)
3. EX_TEST, BS data is 0xC0000 (set uart rx core i and tx pad o)

In all cases, the rx core input and tx pad output waveforms are correct.
TDO however is all zeroes. When tx pad output is high (cases 2 and 3), one of
the TDO bits MUST be set to coincide with tx pad output.

The same set of test cases was repeated with the rx/tx loopback connection (on
the core side):

4. EX_TEST, BS data is 0x80000 (set uart rx core i)
5. EX_TEST, BS data is 0x40000 (set uart tx pad o)
6. EX_TEST, BS data is 0xC0000 (set uart rx core i and tx pad o)

The waveforms show the tx core output being set when rx core input is set which
is correct.
However TDO is again all zeroes.


TDO does however, show the correct data when rx pad i is set, with the
BS_SAMPLE mode:
7. BS_SAMPLE, BS data is 0x00000

This test case should show the rx pad/core i and tx core/pad o set (because
loopback is working, and jtag is passthrough), and this is what is observed.
TDO is correct, 1100 0000 0000 0000 0000. Upper two bits indicate rx pad in and
tx core out.

The ios dict only contains read-only signals, so perhaps they are not shifted
out into TDO during an external test (EX_TEST)?

Checking yosys diagram, I can see that io_bd Boundary Scan register controls
signals coming out of JTAG (core inputs and pad outputs) and it is shifted out
to TDO.
Checking c4m-jtag/c4m/nmigen/jtag/tap.py, I haven't been able to find how tdo
would connect to io_bd (but I did see connection to sr, the main shift
register).

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list