Page MenuHomeFreeBSD

arm64: update and align armreg.h with ARMv8.9 features
ClosedPublic

Authored by harry.moulton_arm.com on Feb 3 2025, 4:51 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Mar 5, 2:37 PM
Unknown Object (File)
Mon, Mar 3, 8:29 PM
Unknown Object (File)
Sun, Mar 2, 1:34 AM
Unknown Object (File)
Sun, Feb 23, 7:59 PM
Unknown Object (File)
Sun, Feb 23, 3:59 AM
Unknown Object (File)
Mon, Feb 17, 5:37 PM
Unknown Object (File)
Feb 16 2025, 5:32 AM
Unknown Object (File)
Feb 13 2025, 6:10 PM
Subscribers

Details

Summary

Update armreg.h to contain feature bit definitions for all architecture
versions up to and including ARMv8.9. This includes a number of
corrections for PAC_frac, PAN and ETS definitions.

Sponsored by: Arm Ltd
Signed-off-by: Harry Moulton <harry.moulton@arm.com>

Diff Detail

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

Event Timeline

sys/arm64/include/armreg.h
1399–1400

1 is documented as also being not implemented (unlike previous versions of the Arm ARM)

1596–1619

Should we name the ID_AA64MMFR3_S*ERR_IMPL as ID_AA64MMFR3_S*ERR_ALL and ID_AA64MMFR3_A*ERR_IMPL as ID_AA64MMFR3_A*ERR_SOME? There are more values that indicate the presence of register fields, and how they can be used.

1823–1824

I try to keep the field in numeric order

sys/arm64/include/armreg.h
1399–1400

In this case then would we just leave it as _ETS_NONE, and not add the second "not implemented" field?

sys/arm64/include/armreg.h
1399–1400

In the unlikely case HW reports 1 here we will need to include it in the ETS table in identcpu.c so will need macros for both "not implemented" values. If not the kernel will report Unknown ETS(1).

Add definition for ETS 0b1 value, renamed S*ERR and A*ERR values, and re-ordered MTE_frac definitions.

This revision is now accepted and ready to land.Feb 13 2025, 6:17 PM