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

Debug SBA: Don't reset sbState if dmactive is set to 0 #2265

Merged
merged 1 commit into from
Jan 21, 2020

Conversation

ernie-sifive
Copy link
Contributor

Related issue:

Type of change: bug report

Impact: no functional change

Development Phase: implementation

Release Notes

sbState tracks the progress of a TileLink transaction initiated by the debug module SBA interface. When a read transaction is initiated by the DM, sbState progresses from Idle to SBReadRequest to SBReadResponse and back to idle. The states control what is driven onto the TL interface, including driving d.ready to 1 when sbState is in the SBReadResponse state.

If there is a TL transaction in progress and the debugger sets dmactive to 0, sbState is immediately returned to Idle, thereby forcing d.ready to 0. This can potentially hang TileLink.

This PR disconnects sbState from dmactive so that any transaction started by the DM is followed to completion even if the DM is subsequently disabled.

Copy link
Contributor

@rmac-sifive rmac-sifive left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, thanks for fixing

@ernie-sifive ernie-sifive merged commit c2668be into master Jan 21, 2020
@ernie-sifive ernie-sifive deleted the dmactive-in-sbtotl branch January 21, 2020 19:19
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