Page MenuHomeFreeBSD

arm64: Add an initial GICv5 ITS driver
Needs ReviewPublic

Authored by andrew on Dec 16 2025, 12:09 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, May 14, 6:03 PM
Unknown Object (File)
Thu, May 14, 6:02 PM
Unknown Object (File)
Thu, May 14, 6:02 PM
Unknown Object (File)
Thu, May 14, 6:01 PM
Unknown Object (File)
Sun, May 3, 10:40 AM
Unknown Object (File)
Wed, Apr 29, 8:50 AM
Unknown Object (File)
Mon, Apr 27, 2:50 PM
Unknown Object (File)
Fri, Apr 24, 3:41 PM
Subscribers

Details

Reviewers
manu
Group Reviewers
arm64
Summary

Add a driver to support the GICv5 interrupt translation service (ITS).
The ITS is responsible to handling ITS events & translating them to an
interrupt to be delivered to the interrupt routing service (IRS).

An example event is a MSI or MSI-X is delivered. The ITS will generate
an LPI depending on which device sent the interrupt and the value the
device wrote.

This is a similar concept to the GICv3 ITS, however the implementation
details are different so it needs a new driver.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 73102
Build 69985: arc lint + arc unit

Event Timeline

  • Clean up table size/alignment handling
  • Read the table PA range from the register
  • Support 2 level device tables
  • Support a non-coherent ITS
  • Cleanup better on attach failure
  • Implement more functions