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

Order interrupt connections based on hart #2003

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

abejgonzalez
Copy link
Contributor

Related issue: riscv-boom/riscv-boom#278

Type of change: bug report

Impact: no functional change

Development Phase: implementation

Release Notes
When the first tile elaborated is not given hartId == 0 then interrupts will be misnumbered in the CLINT/PLIC causing interrupts to go to the wrong tile and thus breaking the default bringup. This is not an issue when using the WithNSmallCores mixin because the RocketTilesKey is filled with tiles starting from hartId == 0, 1, 2.... However, if you end up assigning arbitrary hartIds to tiles then this breaks since the elaborated tile hartId may not match how the interrupts are connected (which expects hartId == 0 to be connected first, then hartId == 1, etc).

An example of how this breaks is if the hartId ordering is swapped to start from N-1 to 0. Another example of this issue showing up is when using something like https://github.com/riscv-boom/riscv-boom/blob/a8ca568f68d28ff34bc90ffecd3b5101b3c8d53f/src/main/scala/system/ConfigMixins.scala#L82-L90 to renumber the hartIds.

@aswaterman aswaterman requested a review from hcook July 13, 2019 05:12
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.

2 participants