HomeFreeBSD

gicv3: Support indirect ITS tables

Description

gicv3: Support indirect ITS tables

The GICv3 ITS device supports two options for device tables. Currently
we support a single table to hold all device IDs, however when the
device ID space grows large this can be too large for the GITS_BASER
register to describe.

To handle this case, and to reduce the memory needed when this space
is sparse support the second option, the indirect table. The indirect
table is a 2 level table where the first level contains the physical
address of the second with a valid bit. The second level is an ITS
page sized table where each entry is the original entry size.

As we don't need to allocate a second level table for devices IDs that
don't exist this can reduce the allocation size.

Reviewed by: gallatin
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D41555

Details

Provenance
andrewAuthored on Aug 22 2023, 4:01 PM
Reviewer
gallatin
Differential Revision
D41555: gicv3: Support indirect ITS tables
Parents
rG7ad28b73ec1f: arm: Add a userspace physical timer check
Branches
Unknown
Tags
Unknown