Page MenuHomeFreeBSD

gicv3: Use an offset to find the redist registers
ClosedPublic

Authored by andrew on May 25 2023, 10:05 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jun 14, 3:43 PM
Unknown Object (File)
Wed, Jun 5, 11:28 AM
Unknown Object (File)
Mon, Jun 3, 9:12 PM
Unknown Object (File)
Sat, May 25, 11:02 PM
Unknown Object (File)
May 3 2024, 12:26 AM
Unknown Object (File)
May 2 2024, 3:28 PM
Unknown Object (File)
May 1 2024, 5:10 PM
Unknown Object (File)
May 1 2024, 12:09 PM
Tokens
"Like" token, awarded by schakrabarti_microsoft.com.

Details

Summary

To find the redistributor registers use the resource we have already
found and add an offset. This removed the need to create a
per-redistributor resource as it can now be a pointer to the resource
found in attach.

While here check the offset is within the bounds of the resource. Some
ACPI tables list each redistributor as a separate memory range, even
if they are physically contiguous. In this case we may not have each
resource virtually contiguous with neighbouring resources. This can
lead to a data abort when reading past the resource range.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.May 25 2023, 1:29 PM

Tested on Hyper-V on ARM64 and it is working. The panic from gic redistributor is not coming.

Fix contigfree (hopefully on correct branch)

This revision now requires review to proceed.May 31 2023, 2:17 PM
This revision was not accepted when it landed; it landed in state Needs Review.May 31 2023, 2:20 PM
This revision was automatically updated to reflect the committed changes.