-
Notifications
You must be signed in to change notification settings - Fork 815
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
[hmac,dv] Allow reset w/o CSR accesses complete #25843
Conversation
martin-velay
commented
Jan 10, 2025
•
edited
Loading
edited
- This PR is a temporary fix to allow the reset to complete without waiting for complete CSR accesses. This is done by setting the flag can_reset_with_csr_accesses to 1 in the env_cfg file. Ideally, this should go away once the a better reset approach will be in place via a reset agent.
- The approach here is to try to exit ASAP from all the tasks to skip the CSR accesses.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I'm not sure that's quite going to work. I think that e.g. sar_stop_and_continue
calls csr_spinwait
. What happens if a reset appears when we're half-way through the call?
I think the fix is probably to make it so that each of the sar_*
functions exit early if they see a reset, then exit early after they have completed.
@rswarbrick |
I think that will run into the original problem that caused all of this "outstanding access" tracking in the first place. The problem is that killing a sequence in the middle of a CSR operation leaves things in an inconsistent state. |
@rswarbrick, this fix is not linked to the "outstanding access" issue. The error seen here was something like: |
Sorry: what I mean is that the processes in the fork will start CSR operations. If a reset happens to appear in the intervening time then the My proposed solution is a way to "complete the operation quickly". A lame temporary approach would be something like a delay just after the |
I think this is a similar issue we had faced in the GPIO, during some rnd_reset_stress_all test. |
ae1b9b3
to
27dd3c7
Compare
- This PR is a temporary fix to allow the reset to complete without waiting for complete CSR accesses. This is done by setting the flag can_reset_with_csr_accesses to 1 in the env_cfg file. Ideally, this should go away once the a better reset approach will be in place via a reset agent. - The approach here is to try to exit ASAP from all the tasks to skip the CSR accesses. Signed-off-by: Martin Velay <[email protected]>
27dd3c7
to
c1dd192
Compare