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

If S external interrupt is injected to S with mvien & mvip than there is no clear rule to determine its priority #97

Open
evgeniy-paltsev opened this issue Oct 9, 2024 · 2 comments

Comments

@evgeniy-paltsev
Copy link

If we inject S-mode external interrupt (SEI) with virtual interrupts mechanism (mvien & mvip) we need to know it's priority

  • to put it to stopi.IPRIO
  • to use it for S-mode interrupt arbitration (if several interrupts are pending in sip register)

If we inject SEI interrupt we can't get its priority from IMSIC HW and we can't get its priority from S-mode iprio array (as iprio.SEI (bits 15:8 of iprio2) must be read-only zero).

For other S-mode interrupts the AIA spec defines algorithm to determine priority if corresponding field is 0 in S-mode iprio array:

image

However such rules can't be used for SEI as it only covers the cases when default priority is either lower or higher than SEI (which is not true if we are checking about SEI itself)

So, what is the rule for SEI interrupt priority in case of injection?

@zhuotianshu
Copy link

Hi, I have same question (#91) with yours.
ARC mentioned this problem (https://lists.riscv.org/g/tech-privileged/topic/arc_minutes_2024_09_03/108421694), but the solution seems ambiguous. I am also waiting for a more explicit descirption.

@jhauser-us
Copy link
Collaborator

As @zhuotianshu says, this issue is a duplicate of #91. A clearer answer has now been given there.

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

No branches or pull requests

3 participants