Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[opentitanlib] add DFT disabling strap config and workaround #20683

Merged
merged 7 commits into from
Dec 20, 2023

Conversation

timothytrippel
Copy link
Contributor

DFT straps were put on the same pins as the console UART (IOC3 and 4). This causes JTAG reliability issues in test unlocked states if we do not pull the straps low when they should be sampled. This provides a software workaround.

Note: this depends on #20682, only review the last commit.

This replaces #20622.

@timothytrippel timothytrippel self-assigned this Dec 20, 2023
@timothytrippel timothytrippel requested review from a team as code owners December 20, 2023 01:05
@timothytrippel timothytrippel removed request for a team December 20, 2023 01:05
@timothytrippel
Copy link
Contributor Author

@jesultra The original mechanism we discussed did not work, potentially due to OT overriding the weak pull-downs that cause UART frames to be missed, so after some discussion with @cfrantz, we opted for a command line flag that defaults to false (since this special strapping config is only needed during provisioning in TEST_UNLOCKED* LC states anyway).

This updates the CP provisioning test harness and firmware to make it
reentrant at later lifecycle stages.

Signed-off-by: Tim Trippel <[email protected]>
This updates the FT provisioning test harness and firmware to make it
reentrant at later lifecycle stages.

Signed-off-by: Tim Trippel <[email protected]>
This reset is unnecessary because the we perform a bootstrap when we
load the next personalization binary.

Signed-off-by: Tim Trippel <[email protected]>
The final personalization binary has not been completed (certificate
templates are missing), so it has been temporarily disabled.

Signed-off-by: Tim Trippel <[email protected]>
This reduces the RMA unlock token data regex string to make the
provisioning flow more reliable.

Signed-off-by: Tim Trippel <[email protected]>
This consolidates the LC state read code into a testutil for reuse
across test harnesses. Additionally, this fixes a bug in the FT
provisioning test harness that was making an incorrect assumption about
the current LC state of the device.

Signed-off-by: Tim Trippel <[email protected]>
DFT straps were put on the same pins as the console UART (IOC3 and 4).
This causes JTAG reliability issues in test unlocked states if we do
not pull the straps low when they should be sampled. This provides a
software workaround.

Signed-off-by: Tim Trippel <[email protected]>
@timothytrippel timothytrippel merged commit a6b971f into lowRISC:master Dec 20, 2023
30 of 31 checks passed
@timothytrippel timothytrippel deleted the fix-dft-strap-issue branch December 20, 2023 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants