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

[ArmGicDxe]: Add support for ESPI sources #10869

Open
NicholasGraves opened this issue Mar 17, 2025 · 0 comments
Open

[ArmGicDxe]: Add support for ESPI sources #10869

NicholasGraves opened this issue Mar 17, 2025 · 0 comments
Labels
package:armpkg priority:medium Moderate impact. Should be prioritized over lower priority issues. state:needs-maintainer-feedback state:needs-owner state:needs-triage type:feature-request A new feature proposal

Comments

@NicholasGraves
Copy link
Contributor

Feature Overview

ArmGicDxe does not include support for extended shared peripheral interrupts. For example, ArmGicV3Dxe.c crashes when using interrupt sources in the ESPI range because mGicNumInterrupts only evaluates the SPI range.

ESPI sources should be supported with the same feature set as SPI sources if the GIC supports ESPI.

Solution Overview

  • Extend gRegisteredInterruptHandlers to support ESPI sources. This could be done naively using the ESPI source value as a direct index into the array or with translation into a contiguous array of handlers.
  • Check source validity against both SPI and ESPI sources in the various ArmGicDxe functions that check source validity already.
  • Refactor mGicNumInterrupts and its uses to handle non-contiguous interrupt sources. One simple option would be to expose both mGicNumSpiSources and mGicNumEspiSources instead.
  • Use the ESPI-specific registers to enable/disable/clear/set priority/etc of ESPI sources.

Alternatives Considered

No response

What packages are impacted?

ArmPkg

Urgency

Medium

Are you going to implement the feature request?

Someone else needs to implement the feature

Do you need maintainer feedback?

Maintainer feedback requested

Anything else?

I cannot commit to implementing this at the moment, but I might have the availability to do so in the future. If I do end up with the time to do this, I will edit this description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package:armpkg priority:medium Moderate impact. Should be prioritized over lower priority issues. state:needs-maintainer-feedback state:needs-owner state:needs-triage type:feature-request A new feature proposal
Projects
None yet
Development

No branches or pull requests

1 participant