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)
Mar 6 2024, 3:57 PM
Unknown Object (File)
Jan 18 2024, 1:19 PM
Unknown Object (File)
Jan 5 2024, 10:28 PM
Unknown Object (File)
Dec 31 2023, 1:25 PM
Unknown Object (File)
Dec 23 2023, 2:55 AM
Unknown Object (File)
Dec 10 2023, 8:05 PM
Unknown Object (File)
Dec 8 2023, 12:46 AM
Unknown Object (File)
Nov 9 2023, 9:16 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 Skipped
Unit
Tests Skipped
Build Status
Buildable 51793
Build 48684: arc lint + arc unit

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.