]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
KVM: arm64: nv: Add FEAT_RAS vSError sys regs to table
authorOliver Upton <oliver.upton@linux.dev>
Tue, 8 Jul 2025 17:25:12 +0000 (10:25 -0700)
committerOliver Upton <oliver.upton@linux.dev>
Tue, 8 Jul 2025 18:36:34 +0000 (11:36 -0700)
Prepare to implement RAS for NV by adding the missing EL2 sysregs for
the vSError context.

Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20250708172532.1699409-8-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/include/asm/kvm_host.h
arch/arm64/include/asm/vncr_mapping.h
arch/arm64/kvm/sys_regs.c

index 8af4a5d400779c8ef686596f769418c8f263cb1e..468df45383714be5b2e42a2bbd4c4ad7611e81a3 100644 (file)
@@ -565,6 +565,10 @@ enum vcpu_sysreg {
 
        VNCR(POR_EL1),  /* Permission Overlay Register 1 (EL1) */
 
+       /* FEAT_RAS registers */
+       VNCR(VDISR_EL2),
+       VNCR(VSESR_EL2),
+
        VNCR(HFGRTR_EL2),
        VNCR(HFGWTR_EL2),
        VNCR(HFGITR_EL2),
index 6f556e993644365460da0ef82c76826d52889f37..f4ec53166d8e11590330b9f8580d8f2ecdeea466 100644 (file)
@@ -84,6 +84,7 @@
 #define VNCR_ICH_HCR_EL2        0x4C0
 #define VNCR_ICH_VMCR_EL2       0x4C8
 #define VNCR_VDISR_EL2          0x500
+#define VNCR_VSESR_EL2         0x508
 #define VNCR_PMBLIMITR_EL1      0x800
 #define VNCR_PMBPTR_EL1         0x810
 #define VNCR_PMBSR_EL1          0x820
index 76c2f0da821f8c992cc4a706555dc5b099438316..b6d75d473ab8864af590f38f4bd6c70cc25c632b 100644 (file)
@@ -3344,6 +3344,7 @@ static const struct sys_reg_desc sys_reg_descs[] = {
        EL2_REG(AFSR0_EL2, access_rw, reset_val, 0),
        EL2_REG(AFSR1_EL2, access_rw, reset_val, 0),
        EL2_REG_REDIR(ESR_EL2, reset_val, 0),
+       EL2_REG_VNCR(VSESR_EL2, reset_unknown, 0),
        { SYS_DESC(SYS_FPEXC32_EL2), undef_access, reset_val, FPEXC32_EL2, 0x700 },
 
        EL2_REG_REDIR(FAR_EL2, reset_val, 0),
@@ -3372,6 +3373,7 @@ static const struct sys_reg_desc sys_reg_descs[] = {
        EL2_REG(VBAR_EL2, access_rw, reset_val, 0),
        EL2_REG(RVBAR_EL2, access_rw, reset_val, 0),
        { SYS_DESC(SYS_RMR_EL2), undef_access },
+       EL2_REG_VNCR(VDISR_EL2, reset_unknown, 0),
 
        EL2_REG_VNCR(ICH_AP0R0_EL2, reset_val, 0),
        EL2_REG_VNCR(ICH_AP0R1_EL2, reset_val, 0),