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
F110353068: D40263.id122648.diff
Mon, Feb 17, 5:40 AM
F110340853: D40263.id.diff
Mon, Feb 17, 1:55 AM
Unknown Object (File)
Fri, Feb 7, 12:16 PM
Unknown Object (File)
Jan 16 2025, 10:42 AM
Unknown Object (File)
Jan 4 2025, 1:43 PM
Unknown Object (File)
Nov 24 2024, 11:39 AM
Unknown Object (File)
Nov 22 2024, 9:10 AM
Unknown Object (File)
Nov 18 2024, 7:52 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.