git: 00bcb77ebcbc - main - arm64: Make register definitions const

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Wed, 28 Jun 2023 20:47:36 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=00bcb77ebcbcb89bd27205b289699d711a0caf3d

commit 00bcb77ebcbcb89bd27205b289699d711a0caf3d
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-06-28 20:13:37 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-06-28 20:29:49 +0000

    arm64: Make register definitions const
    
    No functional change intended.
    
    Reviewed by:    andrew
    MFC after:      2 weeks
    Sponsored by:   The FreeBSD Foundation
    Sponsored by:   Klara, Inc. (hardware)
    Differential Revision:  https://reviews.freebsd.org/D40502
---
 sys/arm64/arm64/identcpu.c | 401 +++++++++++++++++++++++----------------------
 1 file changed, 201 insertions(+), 200 deletions(-)

diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c
index 01e663ff47c2..20ef74f58de2 100644
--- a/sys/arm64/arm64/identcpu.c
+++ b/sys/arm64/arm64/identcpu.c
@@ -328,8 +328,8 @@ struct mrs_field_hwcap {
 
 struct mrs_field {
 	const char	*name;
-	struct mrs_field_value *values;
-	struct mrs_field_hwcap *hwcaps;
+	const struct mrs_field_value *values;
+	const struct mrs_field_hwcap *hwcaps;
 	uint64_t	mask;
 	bool		sign;
 	u_int		type;
@@ -353,53 +353,53 @@ struct mrs_field {
 #define	MRS_FIELD_END	{ .type = MRS_INVALID, }
 
 /* ID_AA64AFR0_EL1 */
-static struct mrs_field id_aa64afr0_fields[] = {
+static const struct mrs_field id_aa64afr0_fields[] = {
 	MRS_FIELD_END,
 };
 
 
 /* ID_AA64AFR1_EL1 */
-static struct mrs_field id_aa64afr1_fields[] = {
+static const struct mrs_field id_aa64afr1_fields[] = {
 	MRS_FIELD_END,
 };
 
 
 /* ID_AA64DFR0_EL1 */
-static struct mrs_field_value id_aa64dfr0_tracefilt[] = {
+static const struct mrs_field_value id_aa64dfr0_tracefilt[] = {
 	MRS_FIELD_VALUE(ID_AA64DFR0_TraceFilt_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64DFR0_TraceFilt_8_4, "Trace v8.4"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64dfr0_doublelock[] = {
+static const struct mrs_field_value id_aa64dfr0_doublelock[] = {
 	MRS_FIELD_VALUE(ID_AA64DFR0_DoubleLock_IMPL, "DoubleLock"),
 	MRS_FIELD_VALUE(ID_AA64DFR0_DoubleLock_NONE, ""),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64dfr0_pmsver[] = {
+static const struct mrs_field_value id_aa64dfr0_pmsver[] = {
 	MRS_FIELD_VALUE(ID_AA64DFR0_PMSVer_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64DFR0_PMSVer_SPE, "SPE"),
 	MRS_FIELD_VALUE(ID_AA64DFR0_PMSVer_SPE_8_3, "SPE v8.3"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64dfr0_ctx_cmps[] = {
+static const struct mrs_field_value id_aa64dfr0_ctx_cmps[] = {
 	MRS_FIELD_VALUE_COUNT(ID_AA64DFR0, CTX_CMPs, "CTX BKPT"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64dfr0_wrps[] = {
+static const struct mrs_field_value id_aa64dfr0_wrps[] = {
 	MRS_FIELD_VALUE_COUNT(ID_AA64DFR0, WRPs, "Watchpoint"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64dfr0_brps[] = {
+static const struct mrs_field_value id_aa64dfr0_brps[] = {
 	MRS_FIELD_VALUE_COUNT(ID_AA64DFR0, BRPs, "Breakpoint"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64dfr0_pmuver[] = {
+static const struct mrs_field_value id_aa64dfr0_pmuver[] = {
 	MRS_FIELD_VALUE(ID_AA64DFR0_PMUVer_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64DFR0_PMUVer_3, "PMUv3"),
 	MRS_FIELD_VALUE(ID_AA64DFR0_PMUVer_3_1, "PMUv3 v8.1"),
@@ -409,13 +409,13 @@ static struct mrs_field_value id_aa64dfr0_pmuver[] = {
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64dfr0_tracever[] = {
+static const struct mrs_field_value id_aa64dfr0_tracever[] = {
 	MRS_FIELD_VALUE(ID_AA64DFR0_TraceVer_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64DFR0_TraceVer_IMPL, "Trace"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64dfr0_debugver[] = {
+static const struct mrs_field_value id_aa64dfr0_debugver[] = {
 	MRS_FIELD_VALUE(ID_AA64DFR0_DebugVer_8, "Debugv8"),
 	MRS_FIELD_VALUE(ID_AA64DFR0_DebugVer_8_VHE, "Debugv8_VHE"),
 	MRS_FIELD_VALUE(ID_AA64DFR0_DebugVer_8_2, "Debugv8.2"),
@@ -423,7 +423,7 @@ static struct mrs_field_value id_aa64dfr0_debugver[] = {
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field id_aa64dfr0_fields[] = {
+static const struct mrs_field id_aa64dfr0_fields[] = {
 	MRS_FIELD(ID_AA64DFR0, TraceFilt, false, MRS_EXACT,
 	    id_aa64dfr0_tracefilt),
 	MRS_FIELD(ID_AA64DFR0, DoubleLock, false, MRS_EXACT,
@@ -443,158 +443,158 @@ static struct mrs_field id_aa64dfr0_fields[] = {
 
 
 /* ID_AA64DFR1_EL1 */
-static struct mrs_field id_aa64dfr1_fields[] = {
+static const struct mrs_field id_aa64dfr1_fields[] = {
 	MRS_FIELD_END,
 };
 
 
 /* ID_AA64ISAR0_EL1 */
-static struct mrs_field_value id_aa64isar0_rndr[] = {
+static const struct mrs_field_value id_aa64isar0_rndr[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR0_RNDR_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR0_RNDR_IMPL, "RNG"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_rndr_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_rndr_caps[] = {
 	MRS_HWCAP(&elf_hwcap2, HWCAP2_RNG, ID_AA64ISAR0_RNDR_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_tlb[] = {
+static const struct mrs_field_value id_aa64isar0_tlb[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_TLBIOS, "TLBI-OS"),
 	MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_TLBIOSR, "TLBI-OSR"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64isar0_ts[] = {
+static const struct mrs_field_value id_aa64isar0_ts[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR0_TS_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR0_TS_CondM_8_4, "CondM-8.4"),
 	MRS_FIELD_VALUE(ID_AA64ISAR0_TS_CondM_8_5, "CondM-8.5"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_ts_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_ts_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_FLAGM, ID_AA64ISAR0_TS_CondM_8_4),
 	MRS_HWCAP(&elf_hwcap2, HWCAP2_FLAGM2, ID_AA64ISAR0_TS_CondM_8_5),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_fhm[] = {
+static const struct mrs_field_value id_aa64isar0_fhm[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, FHM, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_fhm_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_fhm_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_ASIMDFHM, ID_AA64ISAR0_FHM_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_dp[] = {
+static const struct mrs_field_value id_aa64isar0_dp[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, DP, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_dp_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_dp_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_ASIMDDP, ID_AA64ISAR0_DP_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_sm4[] = {
+static const struct mrs_field_value id_aa64isar0_sm4[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, SM4, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_sm4_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_sm4_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_SM4, ID_AA64ISAR0_SM4_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_sm3[] = {
+static const struct mrs_field_value id_aa64isar0_sm3[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, SM3, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_sm3_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_sm3_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_SM3, ID_AA64ISAR0_SM3_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_sha3[] = {
+static const struct mrs_field_value id_aa64isar0_sha3[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, SHA3, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_sha3_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_sha3_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_SHA3, ID_AA64ISAR0_SHA3_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_rdm[] = {
+static const struct mrs_field_value id_aa64isar0_rdm[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, RDM, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_rdm_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_rdm_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_ASIMDRDM, ID_AA64ISAR0_RDM_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_atomic[] = {
+static const struct mrs_field_value id_aa64isar0_atomic[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, Atomic, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_atomic_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_atomic_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_ATOMICS, ID_AA64ISAR0_Atomic_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_crc32[] = {
+static const struct mrs_field_value id_aa64isar0_crc32[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, CRC32, NONE, BASE),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_crc32_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_crc32_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_CRC32, ID_AA64ISAR0_CRC32_BASE),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_sha2[] = {
+static const struct mrs_field_value id_aa64isar0_sha2[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, SHA2, NONE, BASE),
 	MRS_FIELD_VALUE(ID_AA64ISAR0_SHA2_512, "SHA2+SHA512"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_sha2_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_sha2_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_SHA2, ID_AA64ISAR0_SHA2_BASE),
 	MRS_HWCAP(&elf_hwcap, HWCAP_SHA512, ID_AA64ISAR0_SHA2_512),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_sha1[] = {
+static const struct mrs_field_value id_aa64isar0_sha1[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, SHA1, NONE, BASE),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_sha1_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_sha1_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_SHA1, ID_AA64ISAR0_SHA1_BASE),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar0_aes[] = {
+static const struct mrs_field_value id_aa64isar0_aes[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, AES, NONE, BASE),
 	MRS_FIELD_VALUE(ID_AA64ISAR0_AES_PMULL, "AES+PMULL"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar0_aes_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar0_aes_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_AES, ID_AA64ISAR0_AES_BASE),
 	MRS_HWCAP(&elf_hwcap, HWCAP_PMULL, ID_AA64ISAR0_AES_PMULL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field id_aa64isar0_fields[] = {
+static const struct mrs_field id_aa64isar0_fields[] = {
 	MRS_FIELD_HWCAP(ID_AA64ISAR0, RNDR, false, MRS_LOWER,
 	    id_aa64isar0_rndr, id_aa64isar0_rndr_caps),
 	MRS_FIELD(ID_AA64ISAR0, TLB, false, MRS_EXACT, id_aa64isar0_tlb),
@@ -627,116 +627,116 @@ static struct mrs_field id_aa64isar0_fields[] = {
 
 
 /* ID_AA64ISAR1_EL1 */
-static struct mrs_field_value id_aa64isar1_i8mm[] = {
+static const struct mrs_field_value id_aa64isar1_i8mm[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, I8MM, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_i8mm_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_i8mm_caps[] = {
 	MRS_HWCAP(&elf_hwcap2, HWCAP2_I8MM, ID_AA64ISAR1_I8MM_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_dgh[] = {
+static const struct mrs_field_value id_aa64isar1_dgh[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, DGH, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_dgh_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_dgh_caps[] = {
 	MRS_HWCAP(&elf_hwcap2, HWCAP2_DGH, ID_AA64ISAR1_DGH_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_bf16[] = {
+static const struct mrs_field_value id_aa64isar1_bf16[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, BF16, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_bf16_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_bf16_caps[] = {
 	MRS_HWCAP(&elf_hwcap2, HWCAP2_BF16, ID_AA64ISAR1_BF16_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_specres[] = {
+static const struct mrs_field_value id_aa64isar1_specres[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR1_SPECRES_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_SPECRES_IMPL, "PredInv"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64isar1_sb[] = {
+static const struct mrs_field_value id_aa64isar1_sb[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, SB, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_sb_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_sb_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_SB, ID_AA64ISAR1_SB_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_frintts[] = {
+static const struct mrs_field_value id_aa64isar1_frintts[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, FRINTTS, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_frintts_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_frintts_caps[] = {
 	MRS_HWCAP(&elf_hwcap2, HWCAP2_FRINT, ID_AA64ISAR1_FRINTTS_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_gpi[] = {
+static const struct mrs_field_value id_aa64isar1_gpi[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, GPI, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_gpi_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_gpi_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_PACG, ID_AA64ISAR1_GPI_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_gpa[] = {
+static const struct mrs_field_value id_aa64isar1_gpa[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, GPA, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_gpa_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_gpa_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_PACG, ID_AA64ISAR1_GPA_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_lrcpc[] = {
+static const struct mrs_field_value id_aa64isar1_lrcpc[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_RCPC_8_3, "RCPC-8.3"),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_RCPC_8_4, "RCPC-8.4"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_lrcpc_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_lrcpc_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_LRCPC, ID_AA64ISAR1_LRCPC_RCPC_8_3),
 	MRS_HWCAP(&elf_hwcap, HWCAP_ILRCPC, ID_AA64ISAR1_LRCPC_RCPC_8_4),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_fcma[] = {
+static const struct mrs_field_value id_aa64isar1_fcma[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, FCMA, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_fcma_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_fcma_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_FCMA, ID_AA64ISAR1_FCMA_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_jscvt[] = {
+static const struct mrs_field_value id_aa64isar1_jscvt[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, JSCVT, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_jscvt_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_jscvt_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_JSCVT, ID_AA64ISAR1_JSCVT_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_api[] = {
+static const struct mrs_field_value id_aa64isar1_api[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR1_API_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_API_PAC, "API PAC"),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_API_EPAC, "API EPAC"),
@@ -747,12 +747,12 @@ static struct mrs_field_value id_aa64isar1_api[] = {
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_api_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_api_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_PACA, ID_AA64ISAR1_API_PAC),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_apa[] = {
+static const struct mrs_field_value id_aa64isar1_apa[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR1_APA_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_APA_PAC, "APA PAC"),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_APA_EPAC, "APA EPAC"),
@@ -763,25 +763,25 @@ static struct mrs_field_value id_aa64isar1_apa[] = {
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_apa_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_apa_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_PACA, ID_AA64ISAR1_APA_PAC),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar1_dpb[] = {
+static const struct mrs_field_value id_aa64isar1_dpb[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR1_DPB_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_DPB_DCCVAP, "DCPoP"),
 	MRS_FIELD_VALUE(ID_AA64ISAR1_DPB_DCCVADP, "DCCVADP"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar1_dpb_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar1_dpb_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_DCPOP, ID_AA64ISAR1_DPB_DCCVAP),
 	MRS_HWCAP(&elf_hwcap2, HWCAP2_DCPODP, ID_AA64ISAR1_DPB_DCCVADP),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field id_aa64isar1_fields[] = {
+static const struct mrs_field id_aa64isar1_fields[] = {
 	MRS_FIELD_HWCAP(ID_AA64ISAR1, I8MM, false, MRS_LOWER,
 	    id_aa64isar1_i8mm, id_aa64isar1_i8mm_caps),
 	MRS_FIELD_HWCAP(ID_AA64ISAR1, DGH, false, MRS_LOWER, id_aa64isar1_dgh,
@@ -815,22 +815,22 @@ static struct mrs_field id_aa64isar1_fields[] = {
 
 
 /* ID_AA64ISAR2_EL1 */
-static struct mrs_field_value id_aa64isar2_pac_frac[] = {
+static const struct mrs_field_value id_aa64isar2_pac_frac[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR2, PAC_frac, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64isar2_bc[] = {
+static const struct mrs_field_value id_aa64isar2_bc[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR2, BC, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64isar2_mops[] = {
+static const struct mrs_field_value id_aa64isar2_mops[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR2, MOPS, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64isar2_apa3[] = {
+static const struct mrs_field_value id_aa64isar2_apa3[] = {
 	MRS_FIELD_VALUE(ID_AA64ISAR2_APA3_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64ISAR2_APA3_PAC, "APA3 PAC"),
 	MRS_FIELD_VALUE(ID_AA64ISAR2_APA3_EPAC, "APA3 EPAC"),
@@ -841,32 +841,32 @@ static struct mrs_field_value id_aa64isar2_apa3[] = {
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar2_apa3_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar2_apa3_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_PACA, ID_AA64ISAR2_APA3_PAC),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar2_gpa3[] = {
+static const struct mrs_field_value id_aa64isar2_gpa3[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR2, GPA3, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64isar2_gpa3_caps[] = {
+static const struct mrs_field_hwcap id_aa64isar2_gpa3_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_PACG, ID_AA64ISAR2_GPA3_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64isar2_rpres[] = {
+static const struct mrs_field_value id_aa64isar2_rpres[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR2, RPRES, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64isar2_wfxt[] = {
+static const struct mrs_field_value id_aa64isar2_wfxt[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR2, WFxT, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field id_aa64isar2_fields[] = {
+static const struct mrs_field id_aa64isar2_fields[] = {
 	MRS_FIELD(ID_AA64ISAR2, PAC_frac, false, MRS_EXACT,
 	    id_aa64isar2_pac_frac),
 	MRS_FIELD(ID_AA64ISAR2, BC, false, MRS_EXACT, id_aa64isar2_bc),
@@ -882,69 +882,69 @@ static struct mrs_field id_aa64isar2_fields[] = {
 
 
 /* ID_AA64MMFR0_EL1 */
-static struct mrs_field_value id_aa64mmfr0_exs[] = {
+static const struct mrs_field_value id_aa64mmfr0_exs[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR0, ExS, ALL, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_tgran4_2[] = {
+static const struct mrs_field_value id_aa64mmfr0_tgran4_2[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran4_2_TGran4, ""),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran4_2_NONE, "No S2 TGran4"),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran4_2_IMPL, "S2 TGran4"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_tgran64_2[] = {
+static const struct mrs_field_value id_aa64mmfr0_tgran64_2[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran64_2_TGran64, ""),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran64_2_NONE, "No S2 TGran64"),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran64_2_IMPL, "S2 TGran64"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_tgran16_2[] = {
+static const struct mrs_field_value id_aa64mmfr0_tgran16_2[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran16_2_TGran16, ""),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran16_2_NONE, "No S2 TGran16"),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_TGran16_2_IMPL, "S2 TGran16"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_tgran4[] = {
+static const struct mrs_field_value id_aa64mmfr0_tgran4[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR0, TGran4,NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_tgran64[] = {
+static const struct mrs_field_value id_aa64mmfr0_tgran64[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR0, TGran64, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_tgran16[] = {
+static const struct mrs_field_value id_aa64mmfr0_tgran16[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR0, TGran16, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_bigendel0[] = {
+static const struct mrs_field_value id_aa64mmfr0_bigendel0[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR0, BigEndEL0, FIXED, MIXED),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_snsmem[] = {
+static const struct mrs_field_value id_aa64mmfr0_snsmem[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR0, SNSMem, NONE, DISTINCT),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_bigend[] = {
+static const struct mrs_field_value id_aa64mmfr0_bigend[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR0, BigEnd, FIXED, MIXED),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_asidbits[] = {
+static const struct mrs_field_value id_aa64mmfr0_asidbits[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR0_ASIDBits_8, "8bit ASID"),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_ASIDBits_16, "16bit ASID"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr0_parange[] = {
+static const struct mrs_field_value id_aa64mmfr0_parange[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR0_PARange_4G, "4GB PA"),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_PARange_64G, "64GB PA"),
 	MRS_FIELD_VALUE(ID_AA64MMFR0_PARange_1T, "1TB PA"),
@@ -955,7 +955,7 @@ static struct mrs_field_value id_aa64mmfr0_parange[] = {
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field id_aa64mmfr0_fields[] = {
+static const struct mrs_field id_aa64mmfr0_fields[] = {
 	MRS_FIELD(ID_AA64MMFR0, ExS, false, MRS_EXACT, id_aa64mmfr0_exs),
 	MRS_FIELD(ID_AA64MMFR0, TGran4_2, false, MRS_EXACT,
 	    id_aa64mmfr0_tgran4_2),
@@ -981,53 +981,53 @@ static struct mrs_field id_aa64mmfr0_fields[] = {
 
 
 /* ID_AA64MMFR1_EL1 */
-static struct mrs_field_value id_aa64mmfr1_xnx[] = {
+static const struct mrs_field_value id_aa64mmfr1_xnx[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR1, XNX, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr1_specsei[] = {
+static const struct mrs_field_value id_aa64mmfr1_specsei[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR1, SpecSEI, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr1_pan[] = {
+static const struct mrs_field_value id_aa64mmfr1_pan[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR1, PAN, NONE, IMPL),
 	MRS_FIELD_VALUE(ID_AA64MMFR1_PAN_ATS1E1, "PAN+ATS1E1"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr1_lo[] = {
+static const struct mrs_field_value id_aa64mmfr1_lo[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR1, LO, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr1_hpds[] = {
+static const struct mrs_field_value id_aa64mmfr1_hpds[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR1_HPDS_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64MMFR1_HPDS_HPD, "HPD"),
 	MRS_FIELD_VALUE(ID_AA64MMFR1_HPDS_TTPBHA, "HPD+TTPBHA"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr1_vh[] = {
+static const struct mrs_field_value id_aa64mmfr1_vh[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR1, VH, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr1_vmidbits[] = {
+static const struct mrs_field_value id_aa64mmfr1_vmidbits[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR1_VMIDBits_8, "8bit VMID"),
 	MRS_FIELD_VALUE(ID_AA64MMFR1_VMIDBits_16, "16bit VMID"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr1_hafdbs[] = {
+static const struct mrs_field_value id_aa64mmfr1_hafdbs[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR1_HAFDBS_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64MMFR1_HAFDBS_AF, "HAF"),
 	MRS_FIELD_VALUE(ID_AA64MMFR1_HAFDBS_AF_DBS, "HAF+DS"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field id_aa64mmfr1_fields[] = {
+static const struct mrs_field id_aa64mmfr1_fields[] = {
 	MRS_FIELD(ID_AA64MMFR1, XNX, false, MRS_EXACT, id_aa64mmfr1_xnx),
 	MRS_FIELD(ID_AA64MMFR1, SpecSEI, false, MRS_EXACT,
 	    id_aa64mmfr1_specsei),
@@ -1043,94 +1043,94 @@ static struct mrs_field id_aa64mmfr1_fields[] = {
 
 
 /* ID_AA64MMFR2_EL1 */
-static struct mrs_field_value id_aa64mmfr2_e0pd[] = {
+static const struct mrs_field_value id_aa64mmfr2_e0pd[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, E0PD, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_evt[] = {
+static const struct mrs_field_value id_aa64mmfr2_evt[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR2_EVT_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64MMFR2_EVT_8_2, "EVT-8.2"),
 	MRS_FIELD_VALUE(ID_AA64MMFR2_EVT_8_5, "EVT-8.5"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_bbm[] = {
+static const struct mrs_field_value id_aa64mmfr2_bbm[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR2_BBM_LEVEL0, ""),
 	MRS_FIELD_VALUE(ID_AA64MMFR2_BBM_LEVEL1, "BBM level 1"),
 	MRS_FIELD_VALUE(ID_AA64MMFR2_BBM_LEVEL2, "BBM level 2"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_ttl[] = {
+static const struct mrs_field_value id_aa64mmfr2_ttl[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, TTL, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_fwb[] = {
+static const struct mrs_field_value id_aa64mmfr2_fwb[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, FWB, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_ids[] = {
+static const struct mrs_field_value id_aa64mmfr2_ids[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, IDS, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_at[] = {
+static const struct mrs_field_value id_aa64mmfr2_at[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, AT, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64mmfr2_at_caps[] = {
+static const struct mrs_field_hwcap id_aa64mmfr2_at_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_USCAT, ID_AA64MMFR2_AT_IMPL),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64mmfr2_st[] = {
+static const struct mrs_field_value id_aa64mmfr2_st[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, ST, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_nv[] = {
+static const struct mrs_field_value id_aa64mmfr2_nv[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, NV, NONE, 8_3),
 	MRS_FIELD_VALUE(ID_AA64MMFR2_NV_8_4, "NV v8.4"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_ccidx[] = {
+static const struct mrs_field_value id_aa64mmfr2_ccidx[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR2_CCIDX_32, "32bit CCIDX"),
 	MRS_FIELD_VALUE(ID_AA64MMFR2_CCIDX_64, "64bit CCIDX"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_varange[] = {
+static const struct mrs_field_value id_aa64mmfr2_varange[] = {
 	MRS_FIELD_VALUE(ID_AA64MMFR2_VARange_48, "48bit VA"),
 	MRS_FIELD_VALUE(ID_AA64MMFR2_VARange_52, "52bit VA"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_iesb[] = {
+static const struct mrs_field_value id_aa64mmfr2_iesb[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, IESB, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_lsm[] = {
+static const struct mrs_field_value id_aa64mmfr2_lsm[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, LSM, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_uao[] = {
+static const struct mrs_field_value id_aa64mmfr2_uao[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, UAO, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64mmfr2_cnp[] = {
+static const struct mrs_field_value id_aa64mmfr2_cnp[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64MMFR2, CnP, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field id_aa64mmfr2_fields[] = {
+static const struct mrs_field id_aa64mmfr2_fields[] = {
 	MRS_FIELD(ID_AA64MMFR2, E0PD, false, MRS_EXACT, id_aa64mmfr2_e0pd),
 	MRS_FIELD(ID_AA64MMFR2, EVT, false, MRS_EXACT, id_aa64mmfr2_evt),
 	MRS_FIELD(ID_AA64MMFR2, BBM, false, MRS_EXACT, id_aa64mmfr2_bbm),
@@ -1153,67 +1153,67 @@ static struct mrs_field id_aa64mmfr2_fields[] = {
 
 
 /* ID_AA64PFR0_EL1 */
-static struct mrs_field_value id_aa64pfr0_csv3[] = {
+static const struct mrs_field_value id_aa64pfr0_csv3[] = {
 	MRS_FIELD_VALUE(ID_AA64PFR0_CSV3_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64PFR0_CSV3_ISOLATED, "CSV3"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_csv2[] = {
+static const struct mrs_field_value id_aa64pfr0_csv2[] = {
 	MRS_FIELD_VALUE(ID_AA64PFR0_CSV2_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64PFR0_CSV2_ISOLATED, "CSV2"),
 	MRS_FIELD_VALUE(ID_AA64PFR0_CSV2_SCXTNUM, "SCXTNUM"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_dit[] = {
+static const struct mrs_field_value id_aa64pfr0_dit[] = {
 	MRS_FIELD_VALUE(ID_AA64PFR0_DIT_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64PFR0_DIT_PSTATE, "PSTATE.DIT"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64pfr0_dit_caps[] = {
+static const struct mrs_field_hwcap id_aa64pfr0_dit_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_DIT, ID_AA64PFR0_DIT_PSTATE),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64pfr0_amu[] = {
+static const struct mrs_field_value id_aa64pfr0_amu[] = {
 	MRS_FIELD_VALUE(ID_AA64PFR0_AMU_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64PFR0_AMU_V1, "AMUv1"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_mpam[] = {
+static const struct mrs_field_value id_aa64pfr0_mpam[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64PFR0, MPAM, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_sel2[] = {
+static const struct mrs_field_value id_aa64pfr0_sel2[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64PFR0, SEL2, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_sve[] = {
+static const struct mrs_field_value id_aa64pfr0_sve[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64PFR0, SVE, NONE, IMPL),
 	MRS_FIELD_VALUE_END,
 };
 
 #if 0
 /* Enable when we add SVE support */
-static struct mrs_field_hwcap id_aa64pfr0_sve_caps[] = {
+static const struct mrs_field_hwcap id_aa64pfr0_sve_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_SVE, ID_AA64PFR0_SVE_IMPL),
 	MRS_HWCAP_END
 };
 #endif
 
-static struct mrs_field_value id_aa64pfr0_ras[] = {
+static const struct mrs_field_value id_aa64pfr0_ras[] = {
 	MRS_FIELD_VALUE(ID_AA64PFR0_RAS_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64PFR0_RAS_IMPL, "RAS"),
 	MRS_FIELD_VALUE(ID_AA64PFR0_RAS_8_4, "RAS v8.4"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_gic[] = {
+static const struct mrs_field_value id_aa64pfr0_gic[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64PFR0, GIC, CPUIF_NONE, CPUIF_EN),
 	MRS_FIELD_VALUE(ID_AA64PFR0_GIC_CPUIF_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64PFR0_GIC_CPUIF_EN, "GIC"),
@@ -1221,55 +1221,55 @@ static struct mrs_field_value id_aa64pfr0_gic[] = {
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_advsimd[] = {
+static const struct mrs_field_value id_aa64pfr0_advsimd[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64PFR0, AdvSIMD, NONE, IMPL),
 	MRS_FIELD_VALUE(ID_AA64PFR0_AdvSIMD_HP, "AdvSIMD+HP"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64pfr0_advsimd_caps[] = {
+static const struct mrs_field_hwcap id_aa64pfr0_advsimd_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_ASIMD, ID_AA64PFR0_AdvSIMD_IMPL),
 	MRS_HWCAP(&elf_hwcap, HWCAP_ASIMDHP, ID_AA64PFR0_AdvSIMD_HP),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64pfr0_fp[] = {
+static const struct mrs_field_value id_aa64pfr0_fp[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64PFR0, FP, NONE, IMPL),
 	MRS_FIELD_VALUE(ID_AA64PFR0_FP_HP, "FP+HP"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_hwcap id_aa64pfr0_fp_caps[] = {
+static const struct mrs_field_hwcap id_aa64pfr0_fp_caps[] = {
 	MRS_HWCAP(&elf_hwcap, HWCAP_FP, ID_AA64PFR0_FP_IMPL),
 	MRS_HWCAP(&elf_hwcap, HWCAP_FPHP, ID_AA64PFR0_FP_HP),
 	MRS_HWCAP_END
 };
 
-static struct mrs_field_value id_aa64pfr0_el3[] = {
+static const struct mrs_field_value id_aa64pfr0_el3[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64PFR0, EL3, NONE, 64),
 	MRS_FIELD_VALUE(ID_AA64PFR0_EL3_64_32, "EL3 32"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_el2[] = {
+static const struct mrs_field_value id_aa64pfr0_el2[] = {
 	MRS_FIELD_VALUE_NONE_IMPL(ID_AA64PFR0, EL2, NONE, 64),
 	MRS_FIELD_VALUE(ID_AA64PFR0_EL2_64_32, "EL2 32"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_el1[] = {
+static const struct mrs_field_value id_aa64pfr0_el1[] = {
 	MRS_FIELD_VALUE(ID_AA64PFR0_EL1_64, "EL1"),
 	MRS_FIELD_VALUE(ID_AA64PFR0_EL1_64_32, "EL1 32"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr0_el0[] = {
+static const struct mrs_field_value id_aa64pfr0_el0[] = {
 	MRS_FIELD_VALUE(ID_AA64PFR0_EL0_64, "EL0"),
 	MRS_FIELD_VALUE(ID_AA64PFR0_EL0_64_32, "EL0 32"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field id_aa64pfr0_fields[] = {
+static const struct mrs_field id_aa64pfr0_fields[] = {
 	MRS_FIELD(ID_AA64PFR0, CSV3, false, MRS_EXACT, id_aa64pfr0_csv3),
 	MRS_FIELD(ID_AA64PFR0, CSV2, false, MRS_EXACT, id_aa64pfr0_csv2),
 	MRS_FIELD_HWCAP(ID_AA64PFR0, DIT, false, MRS_LOWER, id_aa64pfr0_dit,
@@ -1293,26 +1293,26 @@ static struct mrs_field id_aa64pfr0_fields[] = {
 
 
 /* ID_AA64PFR1_EL1 */
-static struct mrs_field_value id_aa64pfr1_mte[] = {
+static const struct mrs_field_value id_aa64pfr1_mte[] = {
 	MRS_FIELD_VALUE(ID_AA64PFR1_MTE_NONE, ""),
 	MRS_FIELD_VALUE(ID_AA64PFR1_MTE_IMPL_EL0, "MTE EL0"),
 	MRS_FIELD_VALUE(ID_AA64PFR1_MTE_IMPL, "MTE"),
 	MRS_FIELD_VALUE_END,
 };
 
-static struct mrs_field_value id_aa64pfr1_ssbs[] = {
*** 403 LINES SKIPPED ***