Page MenuHomeFreeBSD

ARM64 GICv3 Cache bits
Needs ReviewPublic

Authored by phk on Sat, Jan 4, 1:45 PM.

Details

Reviewers
andrew
jrtc27
manu
Summary

This is the minimal subset of D478819 relating only to the cache bits.

Attempt to set the cache bits to GITS_BASER_CACHE_RAWAWB, but respect that sub-field may be read-only.

This works on my T14s Snapdragon machine.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

phk requested review of this revision.Sat, Jan 4, 1:45 PM
sys/arm64/arm64/gicv3_its.c
672

I don't understand this

sys/arm64/arm64/gicv3_its.c
672

As I explained in D478819: ARM's spec does not mandate/guarantee that the cache bits can be modified.

Therefore the value we write, be it zero in case of ITS_FLAGS_ERRATA_CAVIUM_22375 or RAWAWB otherwise, may not be what we read back.

QED: We should not ENXIO if the cache bits we read differ from the cache bits we wrote.

sys/arm64/arm64/gicv3_its.c
672

No, Andy’s point is the parentheses are in the wrong place so this is nonsensical.

Changed != to ^ in write-read-back check.

sys/arm64/arm64/gicv3_its.c
672

Ohh, duH! I forgot to change the != to ^.

new patch in a sec.