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)
Mon, Nov 17, 6:16 PM
Unknown Object (File)
Sun, Nov 16, 7:37 AM
Unknown Object (File)
Fri, Nov 14, 10:36 PM
Unknown Object (File)
Wed, Nov 12, 6:00 PM
Unknown Object (File)
Fri, Nov 7, 12:37 PM
Unknown Object (File)
Tue, Nov 4, 5:42 PM
Unknown Object (File)
Mon, Nov 3, 1:56 AM
Unknown Object (File)
Mon, Nov 3, 1:55 AM
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 Skipped
Unit
Tests Skipped
Build Status
Buildable 62224
Build 59108: arc lint + arc unit

Event Timeline

sys/arm64/include/armreg.h
1399

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

1595–1618

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.

1822–1823

I try to keep the field in numeric order

sys/arm64/include/armreg.h
1399

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

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