Page MenuHomeFreeBSD

gicv3: In its_init_cpu_lpi record each cpu's PENDBASER
ClosedPublic

Authored by imp on Feb 23 2024, 4:47 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, May 1, 6:53 AM
Unknown Object (File)
Sat, Apr 27, 8:11 AM
Unknown Object (File)
Sat, Apr 27, 8:11 AM
Unknown Object (File)
Sat, Apr 27, 8:11 AM
Unknown Object (File)
Sat, Apr 27, 8:10 AM
Unknown Object (File)
Sat, Apr 27, 8:06 AM
Unknown Object (File)
Sat, Apr 27, 6:11 AM
Unknown Object (File)
Mon, Apr 22, 5:04 PM
Subscribers

Details

Summary

When we're using the preallocated memory for gicv3, record each cpu's
PEND_BASER where we'd normally allocate memory for it. Make sure that
memory is in the excluded list and map the PA to VA and store that,
to mimic what we do with the allocation case.

Sponsored by: Netflix

Diff Detail

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

Event Timeline

Better panic message
Fix GICV3_ITS_MASK usage and definition

With the latest update, this now boots on the same hardware my hacky version that I abandoned did.

sys/arm64/arm64/gicv3_its.c
297

The GICR_PENDBASER table is 64k aligned. Bits 15:12 are reserved zero.

844

We should add GICR_PENDBASER_PA_MASK or similar to gic_v3_reg.h & use that to extract the physical address.

849

It looks like this adds spaces before the brace.

imp retitled this revision from gicv3: In its_init_cpu_lpi record each cpu's pend_base to gicv3: In its_init_cpu_lpi record each cpu's PENDBASER.Feb 27 2024, 4:27 PM
imp marked 3 inline comments as done.Feb 27 2024, 4:29 PM
imp added inline comments.
sys/arm64/arm64/gicv3_its.c
297

Indeed. https://reviews.freebsd.org/D44096 for the PA_MASKS I created. Thanks for catching that they were different (though in practice due to the stricter alignment, it all worked out -- yikes)

844

Done, I also defined GICR_PROPBASER_PA_MASK as well.

849

doh! Fixed.

imp marked 3 inline comments as done.

Review Comments

This revision is now accepted and ready to land.Feb 27 2024, 6:14 PM