Closed engdoreis closed 1 year ago
I think I have been to track down the issue: the CW310 backend always reconfigures the reset and strap pins on init. At the same time, the gdb coordinator script starts the opentitantool console after starting OpenOCD. This means that when it initializes the CW310 backend, this will mess up with the pins for a few milliseconds.
I have been able to confirm in tests that this is a failure mode that we have observed. I am currently running tests in CI to see if this solves the issue completely or not.
Awesome work everyone! Since we do not use the gdb coordinator script for manufacturing (for the complexity reasons) this should not be an issue.
Long term, as a lot of us have discussed, we should remove the gdb coordinator script and the custom gdb/openocd Bazel test rule and move the GDB coordination into opentitantool, since we don't need it for writing custom tests now that we drive OpenOCD with opentitanlib directly.
can we close this now? @pamaury @andreaskurth
nevermind I see #18554 links to close this when merged. Thanks everyone!
After the freeze, I can also remove the POR connection to SRSTn on the ARM JTAG connectors. The POR functionality was documented, but when I hooked it up, I didn't anticipate the confusion that would cause, nor how it might get driven from tools that think it's ARM's SRSTn.
The commit for this is https://github.com/a-will/opentitan/commit/414cd10d113263843b55d4aedc76bd70c3108790, but I won't create a PR for that right now (to avoid the added load to CI).
Thanks everyone for helping to root cause this!
Hierarchy of regression failure
Chip Level
Failure Description
The ROM E2E tests that use the
rv_dm + openocd + gdb
are shaky lately.The reason should be investigated, and the tests should be improved.
Steps to Reproduce
Tests with similar or related failures