* [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers
@ 2024-12-10 5:52 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1 Anshuman Khandual
` (45 more replies)
0 siblings, 46 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This series enables fine grained undefined for FEAT_FGT2 managed registers
via adding their respective FGT and CGT trap configuration. But first this
adds many system register definitions in tools/sysreg, which are required
there after.
patches 1-43: define system registers in tools/sysreg format
patch 44: enables FEAT_FGT2 registers access from virtual EL2
patch 45: enables FGT for FEAT_FGT2
patch 46: enables CGT for FEAT_FGT2
Some notes:
As kvm_has_feat() does not support non-ID registers following replacements
have been made for validating presence of correspnding features
- ID_AA64DFR0_EL1.ExtTrcBuff is tested for HDFGRTR2_EL2.nPMSDSFR_EL1
- ID_AA64DFR0_EL1.PMSVer is tested for HDFGRTR2_EL2.nPMSDSFR_EL1
Following FGT enabled registers don't have corresponding CGT requirements
- TRCITECR_EL1
- PMSSCR_EL1
- PMCCNTSVR_EL1
- PMICNTSVR_EL1
- RCWSMASK_EL1
- ERXGSR_EL1
- PFAR_EL1
This series applies on v6.13-rc1
Changes in V2:
- Dropped patches for ID_AA64DFR0_EL1 and ID_AA64DFR2_EL1 (changes merged mainline)
- Added patch for ID_AA64MMFR4_EL1
- Updated all tools sysreg definitions as per DDI0601 2024-09
- Added HFGITR2_EL2 register based fields in encoding_to_fgt[]
- Updated HFGITR2_EL2_[nDCCIVAPS|TSBCSYNC] in kvm_init_nv_sysregs()
- Updated HFGITR2_EL2_[nDCCIVAPS|TSBCSYNC] in kvm_calculate_traps()
- Dropped check_cntr_accessible_N and CGT_CNTR_ACCESSIBLE_N constructs
- SYS_PMEVCNTSVR_EL1(N) access traps have been forwarded to CGT_MDCR_HPMN
- Updated check_mdcr_hpmn() to handle SYS_PMEVCNTSVR_EL1(N) registers
- Changed behaviour as BEHAVE_FORWARD_RW for CGT_MDCR_EnSPM
Changes in V1:
https://lore.kernel.org/all/20241001024356.1096072-1-anshuman.khandual@arm.com/
- Added all system register definitions required for FEAT_FGT2 traps
- Added all system register access traps managed with new FEAT_FGT2
i.e HDFGRTR2_EL2, HDFGWTR2_EL2, HFGRTR2_GROUP, HFGWTR2_GROUP and
HFGITR2_GROUP for their VNCR access, FGT and CGT
- Added all FGT for all register accesses managed with FEAT_FGT2
- Added all CGT for all register accesses managed with FEAT_FGT2
Changes in RFC V1:
https://lore.kernel.org/linux-arm-kernel/20240620065807.151540-1-anshuman.khandual@arm.com/
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: James Morse <james.morse@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.linux.dev
Cc: linux-kernel@vger.kernel.org
Anshuman Khandual (46):
arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1
arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1
arm64/sysreg: Update register fields for ID_AA64PFR0_EL1
arm64/sysreg: Update register fields for TRBIDR_EL1
arm64/sysreg: Add register fields for HDFGRTR2_EL2
arm64/sysreg: Add register fields for HDFGWTR2_EL2
arm64/sysreg: Add register fields for HFGITR2_EL2
arm64/sysreg: Add register fields for HFGRTR2_EL2
arm64/sysreg: Add register fields for HFGWTR2_EL2
arm64/sysreg: Add register fields for MDSELR_EL1
arm64/sysreg: Add register fields for PMSIDR_EL1
arm64/sysreg: Add register fields for TRBMPAM_EL1
arm64/sysreg: Add register fields for PMSDSFR_EL1
arm64/sysreg: Add register fields for SPMDEVAFF_EL1
arm64/sysreg: Add register fields for PFAR_EL1
arm64/sysreg: Add register fields for PMIAR_EL1
arm64/sysreg: Add register fields for PMECR_EL1
arm64/sysreg: Add register fields for PMUACR_EL1
arm64/sysreg: Add register fields for PMCCNTSVR_EL1
arm64/sysreg: Add register fields for SPMSCR_EL1
arm64/sysreg: Add register fields for SPMACCESSR_EL1
arm64/sysreg: Add register fields for PMICNTR_EL0
arm64/sysreg: Add register fields for PMICFILTR_EL0
arm64/sysreg: Add register fields for SPMCR_EL0
arm64/sysreg: Add register fields for SPMOVSCLR_EL0
arm64/sysreg: Add register fields for SPMOVSSET_EL0
arm64/sysreg: Add register fields for SPMINTENCLR_EL1
arm64/sysreg: Add register fields for SPMINTENSET_EL1
arm64/sysreg: Add register fields for SPMCNTENCLR_EL0
arm64/sysreg: Add register fields for SPMCNTENSET_EL0
arm64/sysreg: Add register fields for SPMSELR_EL0
arm64/sysreg: Add register fields for PMICNTSVR_EL1
arm64/sysreg: Add register fields for SPMIIDR_EL1
arm64/sysreg: Add register fields for SPMDEVARCH_EL1
arm64/sysreg: Add register fields for SPMCFGR_EL1
arm64/sysreg: Add register fields for PMSSCR_EL1
arm64/sysreg: Add register fields for PMZR_EL0
arm64/sysreg: Add register fields for SPMCGCR0_EL1
arm64/sysreg: Add register fields for SPMCGCR1_EL1
arm64/sysreg: Add register fields for MDSTEPOP_EL1
arm64/sysreg: Add register fields for ERXGSR_EL1
arm64/sysreg: Add register fields for SPMACCESSR_EL2
arm64/sysreg: Add remaining debug registers affected by HDFGxTR2_EL2
KVM: arm64: nv: Add FEAT_FGT2 registers access from virtual EL2
KVM: arm64: nv: Add FEAT_FGT2 registers based FGU handling
KVM: arm64: nv: Add trap forwarding for FEAT_FGT2 described registers
arch/arm64/include/asm/kvm_arm.h | 20 +
arch/arm64/include/asm/kvm_host.h | 12 +
arch/arm64/include/asm/sysreg.h | 10 +
arch/arm64/include/asm/vncr_mapping.h | 5 +
arch/arm64/kvm/emulate-nested.c | 345 ++++++++
arch/arm64/kvm/hyp/include/hyp/switch.h | 26 +
arch/arm64/kvm/nested.c | 58 ++
arch/arm64/kvm/sys_regs.c | 70 ++
arch/arm64/tools/sysreg | 1031 ++++++++++++++++++++++-
9 files changed, 1570 insertions(+), 7 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 85+ messages in thread
* [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-11 15:48 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 02/46] arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1 Anshuman Khandual
` (44 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This updates ID_AA64MMFR0_EL1.FGT and ID_AA64MMFR0_EL1.PARANGE register
fields as per the definitions based on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index b081b54d6d22..a6cbe0dcd63b 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -1591,6 +1591,7 @@ EndEnum
UnsignedEnum 59:56 FGT
0b0000 NI
0b0001 IMP
+ 0b0010 FGT2
EndEnum
Res0 55:48
UnsignedEnum 47:44 EXS
@@ -1652,6 +1653,7 @@ Enum 3:0 PARANGE
0b0100 44
0b0101 48
0b0110 52
+ 0b0111 56
EndEnum
EndSysreg
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 02/46] arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-11 16:28 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 03/46] arm64/sysreg: Update register fields for ID_AA64PFR0_EL1 Anshuman Khandual
` (43 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This updates ID_AA64MMFR4_EL1 register as per the definitions based on
DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index a6cbe0dcd63b..b5bda7c94689 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -1872,12 +1872,21 @@ EndEnum
EndSysreg
Sysreg ID_AA64MMFR4_EL1 3 0 0 7 4
-Res0 63:40
+Res0 63:48
+UnsignedEnum 47:44 SRMASK
+ 0b0000 NI
+ 0b0001 IMP
+EndEnum
+Res0 43:40
UnsignedEnum 39:36 E3DSE
0b0000 NI
0b0001 IMP
EndEnum
-Res0 35:28
+Res0 35:32
+UnsignedEnum 31:28 RMEGDI
+ 0b0000 NI
+ 0b0001 IMP
+EndEnum
SignedEnum 27:24 E2H0
0b0000 IMP
0b1110 NI_NV1
@@ -1886,6 +1895,7 @@ EndEnum
UnsignedEnum 23:20 NV_frac
0b0000 NV_NV2
0b0001 NV2_ONLY
+ 0b0010 SOFTWARE
EndEnum
UnsignedEnum 19:16 FGWTE3
0b0000 NI
@@ -1905,7 +1915,10 @@ SignedEnum 7:4 EIESB
0b0010 ToELx
0b1111 ANY
EndEnum
-Res0 3:0
+UnsignedEnum 3:0 PoPS
+ 0b0000 NI
+ 0b0001 IMP
+EndEnum
EndSysreg
Sysreg SCTLR_EL1 3 0 1 0 0
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 03/46] arm64/sysreg: Update register fields for ID_AA64PFR0_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 02/46] arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 15:08 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1 Anshuman Khandual
` (42 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This updates ID_AA64PFR0_EL1.RAS and ID_AA64PFR0_EL1.RME register fields as
per the definitions based on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index b5bda7c94689..59351931d907 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -873,6 +873,8 @@ EndEnum
UnsignedEnum 55:52 RME
0b0000 NI
0b0001 IMP
+ 0b0010 GPC2
+ 0b0011 GPC3
EndEnum
UnsignedEnum 51:48 DIT
0b0000 NI
@@ -899,6 +901,7 @@ UnsignedEnum 31:28 RAS
0b0000 NI
0b0001 IMP
0b0010 V1P1
+ 0b0011 V2
EndEnum
UnsignedEnum 27:24 GIC
0b0000 NI
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (2 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 03/46] arm64/sysreg: Update register fields for ID_AA64PFR0_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 15:12 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 05/46] arm64/sysreg: Add register fields for HDFGRTR2_EL2 Anshuman Khandual
` (41 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for TRBIDR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 59351931d907..10b1a0998d99 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -3295,13 +3295,24 @@ Field 31:0 TRG
EndSysreg
Sysreg TRBIDR_EL1 3 0 9 11 7
-Res0 63:12
+Res0 63:48
+Field 47:32 MaxBuffSize
+Res0 31:16
+UnsignedEnum 15:12 MPAM
+ 0b0000 NI
+ 0b0001 PMG
+ 0b0010 IMP
+EndEnum
Enum 11:8 EA
0b0000 NON_DESC
0b0001 IGNORE
0b0010 SERROR
EndEnum
-Res0 7:6
+UnsignedEnum 7:6 AddrMode
+ 0b00 VIRT_PHYS
+ 0b01 VIRT_ONLY
+ 0b10 PHYS_ONLY
+EndEnum
Field 5 F
Field 4 P
Field 3:0 Align
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 05/46] arm64/sysreg: Add register fields for HDFGRTR2_EL2
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (3 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-18 14:45 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 06/46] arm64/sysreg: Add register fields for HDFGWTR2_EL2 Anshuman Khandual
` (40 subsequent siblings)
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for HDFGRTR2_EL2 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 10b1a0998d99..a56f7384d0db 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2562,6 +2562,35 @@ Field 1 ICIALLU
Field 0 ICIALLUIS
EndSysreg
+Sysreg HDFGRTR2_EL2 3 4 3 1 0
+Res0 63:25
+Field 24 nPMBMAR_EL1
+Field 23 nMDSTEPOP_EL1
+Field 22 nTRBMPAM_EL1
+Res0 21
+Field 20 nTRCITECR_EL1
+Field 19 nPMSDSFR_EL1
+Field 18 nSPMDEVAFF_EL1
+Field 17 nSPMID
+Field 16 nSPMSCR_EL1
+Field 15 nSPMACCESSR_EL1
+Field 14 nSPMCR_EL0
+Field 13 nSPMOVS
+Field 12 nSPMINTEN
+Field 11 nSPMCNTEN
+Field 10 nSPMSELR_EL0
+Field 9 nSPMEVTYPERn_EL0
+Field 8 nSPMEVCNTRn_EL0
+Field 7 nPMSSCR_EL1
+Field 6 nPMSSDATA
+Field 5 nMDSELR_EL1
+Field 4 nPMUACR_EL1
+Field 3 nPMICFILTR_EL0
+Field 2 nPMICNTR_EL0
+Field 1 nPMIAR_EL1
+Field 0 nPMECR_EL1
+EndSysreg
+
Sysreg HDFGRTR_EL2 3 4 3 1 4
Field 63 PMBIDR_EL1
Field 62 nPMSNEVFR_EL1
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 06/46] arm64/sysreg: Add register fields for HDFGWTR2_EL2
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (4 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 05/46] arm64/sysreg: Add register fields for HDFGRTR2_EL2 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-18 15:11 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2 Anshuman Khandual
` (39 subsequent siblings)
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for HDFGWTR2_EL2 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index a56f7384d0db..1a7d8c03f844 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2591,6 +2591,34 @@ Field 1 nPMIAR_EL1
Field 0 nPMECR_EL1
EndSysreg
+Sysreg HDFGWTR2_EL2 3 4 3 1 1
+Res0 63:25
+Field 24 nPMBMAR_EL1
+Field 23 nMDSTEPOP_EL1
+Field 22 nTRBMPAM_EL1
+Field 21 nPMZR_EL0
+Field 20 nTRCITECR_EL1
+Field 19 nPMSDSFR_EL1
+Res0 18:17
+Field 16 nSPMSCR_EL1
+Field 15 nSPMACCESSR_EL1
+Field 14 nSPMCR_EL0
+Field 13 nSPMOVS
+Field 12 nSPMINTEN
+Field 11 nSPMCNTEN
+Field 10 nSPMSELR_EL0
+Field 9 nSPMEVTYPERn_EL0
+Field 8 nSPMEVCNTRn_EL0
+Field 7 nPMSSCR_EL1
+Res0 6
+Field 5 nMDSELR_EL1
+Field 4 nPMUACR_EL1
+Field 3 nPMICFILTR_EL0
+Field 2 nPMICNTR_EL0
+Field 1 nPMIAR_EL1
+Field 0 nPMECR_EL1
+EndSysreg
+
Sysreg HDFGRTR_EL2 3 4 3 1 4
Field 63 PMBIDR_EL1
Field 62 nPMSNEVFR_EL1
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (5 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 06/46] arm64/sysreg: Add register fields for HDFGWTR2_EL2 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 15:17 ` Mark Brown
` (2 more replies)
2024-12-10 5:52 ` [PATCH V2 08/46] arm64/sysreg: Add register fields for HFGRTR2_EL2 Anshuman Khandual
` (38 subsequent siblings)
45 siblings, 3 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for HFGITR2_EL2 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 1a7d8c03f844..9d339f735648 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2791,6 +2791,12 @@ Field 1 AMEVCNTR00_EL0
Field 0 AMCNTEN0
EndSysreg
+Sysreg HFGITR2_EL2 3 4 3 1 7
+Res0 63:2
+Field 1 nDCCIVAPS
+Field 0 TSBCSYNC
+EndSysreg
+
Sysreg ZCR_EL2 3 4 1 2 0
Fields ZCR_ELx
EndSysreg
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 08/46] arm64/sysreg: Add register fields for HFGRTR2_EL2
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (6 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 15:20 ` Mark Brown
2024-12-18 15:19 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 09/46] arm64/sysreg: Add register fields for HFGWTR2_EL2 Anshuman Khandual
` (37 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for HFGRTR2_EL2 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 9d339f735648..9513ae05dc93 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2619,6 +2619,25 @@ Field 1 nPMIAR_EL1
Field 0 nPMECR_EL1
EndSysreg
+Sysreg HFGRTR2_EL2 3 4 3 1 2
+Res0 63:15
+Field 14 nACTLRALIAS_EL1
+Field 13 nACTLRMASK_EL1
+Field 12 nTCR2ALIAS_EL1
+Field 11 nTCRALIAS_EL1
+Field 10 nSCTLRALIAS2_EL1
+Field 9 nSCTLRALIAS_EL1
+Field 8 nCPACRALIAS_EL1
+Field 7 nTCR2MASK_EL1
+Field 6 nTCRMASK_EL1
+Field 5 nSCTLR2MASK_EL1
+Field 4 nSCTLRMASK_EL1
+Field 3 nCPACRMASK_EL1
+Field 2 nRCWSMASK_EL1
+Field 1 nERXGSR_EL1
+Field 0 nPFAR_EL1
+EndSysreg
+
Sysreg HDFGRTR_EL2 3 4 3 1 4
Field 63 PMBIDR_EL1
Field 62 nPMSNEVFR_EL1
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 09/46] arm64/sysreg: Add register fields for HFGWTR2_EL2
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (7 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 08/46] arm64/sysreg: Add register fields for HFGRTR2_EL2 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 20:52 ` Mark Brown
2024-12-18 15:22 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 10/46] arm64/sysreg: Add register fields for MDSELR_EL1 Anshuman Khandual
` (36 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for HFGWTR2_EL2 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 9513ae05dc93..30a0d3ee71a7 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2638,6 +2638,25 @@ Field 1 nERXGSR_EL1
Field 0 nPFAR_EL1
EndSysreg
+Sysreg HFGWTR2_EL2 3 4 3 1 3
+Res0 63:15
+Field 14 nACTLRALIAS_EL1
+Field 13 nACTLRMASK_EL1
+Field 12 nTCR2ALIAS_EL1
+Field 11 nTCRALIAS_EL1
+Field 10 nSCTLRALIAS2_EL1
+Field 9 nSCTLRALIAS_EL1
+Field 8 nCPACRALIAS_EL1
+Field 7 nTCR2MASK_EL1
+Field 6 nTCRMASK_EL1
+Field 5 nSCTLR2MASK_EL1
+Field 4 nSCTLRMASK_EL1
+Field 3 nCPACRMASK_EL1
+Field 2 nRCWSMASK_EL1
+Res0 1
+Field 0 nPFAR_EL1
+EndSysreg
+
Sysreg HDFGRTR_EL2 3 4 3 1 4
Field 63 PMBIDR_EL1
Field 62 nPMSNEVFR_EL1
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 10/46] arm64/sysreg: Add register fields for MDSELR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (8 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 09/46] arm64/sysreg: Add register fields for HFGWTR2_EL2 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 20:57 ` Mark Brown
2024-12-18 15:25 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 11/46] arm64/sysreg: Add register fields for PMSIDR_EL1 Anshuman Khandual
` (35 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for MDSELR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 30a0d3ee71a7..be0091060350 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -93,6 +93,17 @@ Res0 63:32
Field 31:0 DTRTX
EndSysreg
+Sysreg MDSELR_EL1 2 0 0 4 2
+Res0 63:6
+Enum 5:4 BANK
+ 0b00 BANK_0
+ 0b01 BANK_1
+ 0b10 BANK_2
+ 0b11 BANK_3
+EndEnum
+Res0 3:0
+EndSysreg
+
Sysreg OSECCR_EL1 2 0 0 6 2
Res0 63:32
Field 31:0 EDECCR
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 11/46] arm64/sysreg: Add register fields for PMSIDR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (9 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 10/46] arm64/sysreg: Add register fields for MDSELR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 21:03 ` Mark Brown
2024-12-18 15:28 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 12/46] arm64/sysreg: Add register fields for TRBMPAM_EL1 Anshuman Khandual
` (34 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMSIDR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index be0091060350..a5e31e4c4474 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2172,7 +2172,16 @@ Field 15:0 MINLAT
EndSysreg
Sysreg PMSIDR_EL1 3 0 9 9 7
-Res0 63:25
+Res0 63:33
+Field 32 SME
+UnsignedEnum 31:28 ALTCLK
+ 0b0000 NI
+ 0b0001 IMP
+ 0b1111 IMP_DEF
+EndEnum
+Field 27 FPF
+Field 26 EFT
+Field 25 CRR
Field 24 PBT
Field 23:20 FORMAT
Enum 19:16 COUNTSIZE
@@ -2190,7 +2199,10 @@ Enum 11:8 INTERVAL
0b0111 3072
0b1000 4096
EndEnum
-Res0 7
+UnsignedEnum 7 FDS
+ 0b0 NI
+ 0b1 IMP
+EndEnum
Field 6 FnE
Field 5 ERND
Field 4 LDS
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 12/46] arm64/sysreg: Add register fields for TRBMPAM_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (10 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 11/46] arm64/sysreg: Add register fields for PMSIDR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 22:11 ` Mark Brown
2024-12-18 15:30 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 13/46] arm64/sysreg: Add register fields for PMSDSFR_EL1 Anshuman Khandual
` (33 subsequent siblings)
45 siblings, 2 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for TRBMPAM_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index a5e31e4c4474..78564b24b187 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -3413,6 +3413,19 @@ EndEnum
Field 7:0 Attr
EndSysreg
+Sysreg TRBMPAM_EL1 3 0 9 11 5
+Res0 63:27
+Field 26 EN
+UnsignedEnum 25:24 MPAM_SP
+ 0b00 SECURE_PARTID
+ 0b01 NON_SECURE_PARTID
+ 0b10 ROOT_PARTID
+ 0b11 REALM_PARTID
+EndEnum
+Field 23:16 PMG
+Field 15:0 PARTID
+EndSysreg
+
Sysreg TRBTRG_EL1 3 0 9 11 6
Res0 63:32
Field 31:0 TRG
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 13/46] arm64/sysreg: Add register fields for PMSDSFR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (11 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 12/46] arm64/sysreg: Add register fields for TRBMPAM_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-18 15:34 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 14/46] arm64/sysreg: Add register fields for SPMDEVAFF_EL1 Anshuman Khandual
` (32 subsequent siblings)
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMSDSFR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 78564b24b187..fcb4ecd85d35 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2245,6 +2245,73 @@ Field 16 COLL
Field 15:0 MSS
EndSysreg
+Sysreg PMSDSFR_EL1 3 0 9 10 4
+Field 63 S63
+Field 62 S62
+Field 61 S61
+Field 60 S60
+Field 59 S59
+Field 58 S58
+Field 57 S57
+Field 56 S56
+Field 55 S55
+Field 54 S54
+Field 53 S53
+Field 52 S52
+Field 51 S51
+Field 50 S50
+Field 49 S49
+Field 48 S48
+Field 47 S47
+Field 46 S46
+Field 45 S45
+Field 44 S44
+Field 43 S43
+Field 42 S42
+Field 41 S41
+Field 40 S40
+Field 39 S39
+Field 38 S38
+Field 37 S37
+Field 36 S36
+Field 35 S35
+Field 34 S34
+Field 33 S33
+Field 32 S32
+Field 31 S31
+Field 30 S30
+Field 29 S29
+Field 28 S28
+Field 27 S27
+Field 26 S26
+Field 25 S25
+Field 24 S24
+Field 23 S23
+Field 22 S22
+Field 21 S21
+Field 20 S20
+Field 19 S19
+Field 18 S18
+Field 17 S17
+Field 16 S16
+Field 15 S15
+Field 14 S14
+Field 13 S13
+Field 12 S12
+Field 11 S11
+Field 10 S10
+Field 9 S9
+Field 8 S8
+Field 7 S7
+Field 6 S6
+Field 5 S5
+Field 4 S4
+Field 3 S3
+Field 2 S2
+Field 1 S1
+Field 0 S0
+EndSysreg
+
Sysreg PMBIDR_EL1 3 0 9 10 7
Res0 63:12
Enum 11:8 EA
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 14/46] arm64/sysreg: Add register fields for SPMDEVAFF_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (12 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 13/46] arm64/sysreg: Add register fields for PMSDSFR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-18 15:38 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 15/46] arm64/sysreg: Add register fields for PFAR_EL1 Anshuman Khandual
` (31 subsequent siblings)
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMDEVAFF_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index fcb4ecd85d35..18b814ff2c41 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -114,6 +114,18 @@ Res0 63:1
Field 0 OSLK
EndSysreg
+Sysreg SPMDEVAFF_EL1 2 0 9 13 6
+Res0 63:40
+Field 39:32 Aff3
+Field 31 F0V
+Field 30 U
+Res0 29:25
+Field 24 MT
+Field 23:16 Aff2
+Field 15:8 Aff1
+Field 7:0 Aff0
+EndSysreg
+
Sysreg ID_PFR0_EL1 3 0 0 1 0
Res0 63:32
UnsignedEnum 31:28 RAS
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 15/46] arm64/sysreg: Add register fields for PFAR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (13 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 14/46] arm64/sysreg: Add register fields for SPMDEVAFF_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-18 15:42 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 16/46] arm64/sysreg: Add register fields for PMIAR_EL1 Anshuman Khandual
` (30 subsequent siblings)
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PFAR_EL1 as per the definitions based on
DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 18b814ff2c41..e33edb41721a 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -3533,3 +3533,10 @@ Field 5 F
Field 4 P
Field 3:0 Align
EndSysreg
+
+Sysreg PFAR_EL1 3 0 6 0 5
+Field 63 NS
+Field 62 NSE
+Res0 61:56
+Field 55:0 PA
+EndSysreg
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 16/46] arm64/sysreg: Add register fields for PMIAR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (14 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 15/46] arm64/sysreg: Add register fields for PFAR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-18 15:44 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 17/46] arm64/sysreg: Add register fields for PMECR_EL1 Anshuman Khandual
` (29 subsequent siblings)
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMIAR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index e33edb41721a..ff09da6c0b1e 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2349,6 +2349,10 @@ Res0 63:5
Field 4:0 SEL
EndSysreg
+Sysreg PMIAR_EL1 3 0 9 14 7
+Field 63:0 ADDRESS
+EndSysreg
+
SysregFields CONTEXTIDR_ELx
Res0 63:32
Field 31:0 PROCID
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 17/46] arm64/sysreg: Add register fields for PMECR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (15 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 16/46] arm64/sysreg: Add register fields for PMIAR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-18 15:46 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1 Anshuman Khandual
` (28 subsequent siblings)
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMECR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index ff09da6c0b1e..214ad6da1dff 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2349,6 +2349,21 @@ Res0 63:5
Field 4:0 SEL
EndSysreg
+Sysreg PMECR_EL1 3 0 9 14 5
+Res0 63:5
+UnsignedEnum 4:3 SSE
+ 0b00 DISABLED
+ 0b10 ENABLED_PROHIBITED
+ 0b11 ENABLED_ALLOWED
+EndEnum
+Field 2 KPME
+UnsignedEnum 1:0 PMEE
+ 0b00 PMUIRQ_E_PMU_D
+ 0b10 PMUIRQ_D_PMU_D
+ 0b11 PMUIRQ_D_PMU_E
+EndEnum
+EndSysreg
+
Sysreg PMIAR_EL1 3 0 9 14 7
Field 63:0 ADDRESS
EndSysreg
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (16 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 17/46] arm64/sysreg: Add register fields for PMECR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-16 23:15 ` Rob Herring
2024-12-10 5:52 ` [PATCH V2 19/46] arm64/sysreg: Add register fields for PMCCNTSVR_EL1 Anshuman Khandual
` (27 subsequent siblings)
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMUACR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 214ad6da1dff..462adb8031ca 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2349,6 +2349,43 @@ Res0 63:5
Field 4:0 SEL
EndSysreg
+Sysreg PMUACR_EL1 3 0 9 14 4
+Res0 63:33
+Field 32 FM
+Field 31 C
+Field 30 P30
+Field 29 P29
+Field 28 P28
+Field 27 P27
+Field 26 P26
+Field 25 P25
+Field 24 P24
+Field 23 P23
+Field 22 P22
+Field 21 P21
+Field 20 P20
+Field 19 P19
+Field 18 P18
+Field 17 P17
+Field 16 P16
+Field 15 P15
+Field 14 P14
+Field 13 P13
+Field 12 P12
+Field 11 P11
+Field 10 P10
+Field 9 P9
+Field 8 P8
+Field 7 P7
+Field 6 P6
+Field 5 P5
+Field 4 P4
+Field 3 P3
+Field 2 P2
+Field 1 P1
+Field 0 P0
+EndSysreg
+
Sysreg PMECR_EL1 3 0 9 14 5
Res0 63:5
UnsignedEnum 4:3 SSE
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 19/46] arm64/sysreg: Add register fields for PMCCNTSVR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (17 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 20/46] arm64/sysreg: Add register fields for SPMSCR_EL1 Anshuman Khandual
` (26 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMCCNTSVR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 462adb8031ca..00d0015d7df4 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -126,6 +126,10 @@ Field 15:8 Aff1
Field 7:0 Aff0
EndSysreg
+Sysreg PMCCNTSVR_EL1 2 0 14 11 7
+Field 63:0 CCNT
+EndSysreg
+
Sysreg ID_PFR0_EL1 3 0 0 1 0
Res0 63:32
UnsignedEnum 31:28 RAS
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 20/46] arm64/sysreg: Add register fields for SPMSCR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (18 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 19/46] arm64/sysreg: Add register fields for PMCCNTSVR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 21/46] arm64/sysreg: Add register fields for SPMACCESSR_EL1 Anshuman Khandual
` (25 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMSCR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 00d0015d7df4..22d2ba231059 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -130,6 +130,15 @@ Sysreg PMCCNTSVR_EL1 2 0 14 11 7
Field 63:0 CCNT
EndSysreg
+Sysreg SPMSCR_EL1 2 7 9 14 7
+Field 63:32 IMP_DEF
+Field 31 RAO
+Res0 30:5
+Field 4 NAO
+Res0 3:1
+Field 0 SO
+EndSysreg
+
Sysreg ID_PFR0_EL1 3 0 0 1 0
Res0 63:32
UnsignedEnum 31:28 RAS
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 21/46] arm64/sysreg: Add register fields for SPMACCESSR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (19 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 20/46] arm64/sysreg: Add register fields for SPMSCR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 22/46] arm64/sysreg: Add register fields for PMICNTR_EL0 Anshuman Khandual
` (24 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMACCESSR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 22d2ba231059..ff833f6f7f6d 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -114,6 +114,41 @@ Res0 63:1
Field 0 OSLK
EndSysreg
+Sysreg SPMACCESSR_EL1 2 0 9 13 3
+Field 63:62 P31
+Field 61:60 P30
+Field 59:58 P29
+Field 57:56 P28
+Field 55:54 P27
+Field 53:52 P26
+Field 51:50 P25
+Field 49:48 P24
+Field 47:46 P23
+Field 45:44 P22
+Field 43:42 P21
+Field 41:40 P20
+Field 39:38 P19
+Field 37:36 P18
+Field 35:34 P17
+Field 33:32 P16
+Field 31:30 P15
+Field 29:28 P14
+Field 27:26 P13
+Field 25:24 P12
+Field 23:22 P11
+Field 21:20 P10
+Field 19:18 P9
+Field 17:16 P8
+Field 15:14 P7
+Field 13:12 P6
+Field 11:10 P5
+Field 9:8 P4
+Field 7:6 P3
+Field 5:4 P2
+Field 3:2 P1
+Field 1:0 P0
+EndSysreg
+
Sysreg SPMDEVAFF_EL1 2 0 9 13 6
Res0 63:40
Field 39:32 Aff3
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 22/46] arm64/sysreg: Add register fields for PMICNTR_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (20 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 21/46] arm64/sysreg: Add register fields for SPMACCESSR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 23/46] arm64/sysreg: Add register fields for PMICFILTR_EL0 Anshuman Khandual
` (23 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMICNTR_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index ff833f6f7f6d..8baf57c06dbd 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2591,6 +2591,10 @@ UnsignedEnum 2:0 F8S1
EndEnum
EndSysreg
+Sysreg PMICNTR_EL0 3 3 9 4 0
+Field 63:0 ICNT
+EndSysreg
+
SysregFields HFGxTR_EL2
Field 63 nAMAIR2_EL1
Field 62 nMAIR2_EL1
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 23/46] arm64/sysreg: Add register fields for PMICFILTR_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (21 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 22/46] arm64/sysreg: Add register fields for PMICNTR_EL0 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 24/46] arm64/sysreg: Add register fields for SPMCR_EL0 Anshuman Khandual
` (22 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMICFILTR_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 8baf57c06dbd..7db912a81bbd 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2595,6 +2595,27 @@ Sysreg PMICNTR_EL0 3 3 9 4 0
Field 63:0 ICNT
EndSysreg
+Sysreg PMICFILTR_EL0 3 3 9 6 0
+Res0 63:59
+Field 58 SYNC
+Field 57:56 VS
+Res0 55:32
+Field 31 P
+Field 30 U
+Field 29 NSK
+Field 28 NSU
+Field 27 NSH
+Field 26 M
+Res0 25
+Field 24 SH
+Field 23 T
+Field 22 RLK
+Field 21 RLU
+Field 20 RLH
+Res0 19:16
+Field 15:0 evtCount
+EndSysreg
+
SysregFields HFGxTR_EL2
Field 63 nAMAIR2_EL1
Field 62 nMAIR2_EL1
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 24/46] arm64/sysreg: Add register fields for SPMCR_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (22 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 23/46] arm64/sysreg: Add register fields for PMICFILTR_EL0 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 25/46] arm64/sysreg: Add register fields for SPMOVSCLR_EL0 Anshuman Khandual
` (21 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMCR_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 7db912a81bbd..34323fe73188 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -165,6 +165,19 @@ Sysreg PMCCNTSVR_EL1 2 0 14 11 7
Field 63:0 CCNT
EndSysreg
+Sysreg SPMCR_EL0 2 3 9 12 0
+Res0 63:12
+Field 11 TR0
+Field 10 HDBG
+Field 9 FZ0
+Field 8 NA
+Res0 7:5
+Field 4 EX
+Res0 3:2
+Field 1 P
+Field 0 E
+EndSysreg
+
Sysreg SPMSCR_EL1 2 7 9 14 7
Field 63:32 IMP_DEF
Field 31 RAO
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 25/46] arm64/sysreg: Add register fields for SPMOVSCLR_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (23 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 24/46] arm64/sysreg: Add register fields for SPMCR_EL0 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 26/46] arm64/sysreg: Add register fields for SPMOVSSET_EL0 Anshuman Khandual
` (20 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMOVSCLR_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 34323fe73188..40de71614af7 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -178,6 +178,73 @@ Field 1 P
Field 0 E
EndSysreg
+Sysreg SPMOVSCLR_EL0 2 3 9 12 3
+Field 63 P63
+Field 62 P62
+Field 61 P61
+Field 60 P60
+Field 59 P59
+Field 58 P58
+Field 57 P57
+Field 56 P56
+Field 55 P55
+Field 54 P54
+Field 53 P53
+Field 52 P52
+Field 51 P51
+Field 50 P50
+Field 49 P49
+Field 48 P48
+Field 47 P47
+Field 46 P46
+Field 45 P45
+Field 44 P44
+Field 43 P43
+Field 42 P42
+Field 41 P41
+Field 40 P40
+Field 39 P39
+Field 38 P38
+Field 37 P37
+Field 36 P36
+Field 35 P35
+Field 34 P34
+Field 33 P33
+Field 32 P32
+Field 31 P31
+Field 30 P30
+Field 29 P29
+Field 28 P28
+Field 27 P27
+Field 26 P26
+Field 25 P25
+Field 24 P24
+Field 23 P23
+Field 22 P22
+Field 21 P21
+Field 20 P20
+Field 19 P19
+Field 18 P18
+Field 17 P17
+Field 16 P16
+Field 15 P15
+Field 14 P14
+Field 13 P13
+Field 12 P12
+Field 11 P11
+Field 10 P10
+Field 9 P9
+Field 8 P8
+Field 7 P7
+Field 6 P6
+Field 5 P5
+Field 4 P4
+Field 3 P3
+Field 2 P2
+Field 1 P1
+Field 0 P0
+EndSysreg
+
Sysreg SPMSCR_EL1 2 7 9 14 7
Field 63:32 IMP_DEF
Field 31 RAO
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 26/46] arm64/sysreg: Add register fields for SPMOVSSET_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (24 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 25/46] arm64/sysreg: Add register fields for SPMOVSCLR_EL0 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 27/46] arm64/sysreg: Add register fields for SPMINTENCLR_EL1 Anshuman Khandual
` (19 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMOVSSET_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 40de71614af7..c983c1360908 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -245,6 +245,73 @@ Field 1 P1
Field 0 P0
EndSysreg
+Sysreg SPMOVSSET_EL0 2 3 9 14 3
+Field 63 P63
+Field 62 P62
+Field 61 P61
+Field 60 P60
+Field 59 P59
+Field 58 P58
+Field 57 P57
+Field 56 P56
+Field 55 P55
+Field 54 P54
+Field 53 P53
+Field 52 P52
+Field 51 P51
+Field 50 P50
+Field 49 P49
+Field 48 P48
+Field 47 P47
+Field 46 P46
+Field 45 P45
+Field 44 P44
+Field 43 P43
+Field 42 P42
+Field 41 P41
+Field 40 P40
+Field 39 P39
+Field 38 P38
+Field 37 P37
+Field 36 P36
+Field 35 P35
+Field 34 P34
+Field 33 P33
+Field 32 P32
+Field 31 P31
+Field 30 P30
+Field 29 P29
+Field 28 P28
+Field 27 P27
+Field 26 P26
+Field 25 P25
+Field 24 P24
+Field 23 P23
+Field 22 P22
+Field 21 P21
+Field 20 P20
+Field 19 P19
+Field 18 P18
+Field 17 P17
+Field 16 P16
+Field 15 P15
+Field 14 P14
+Field 13 P13
+Field 12 P12
+Field 11 P11
+Field 10 P10
+Field 9 P9
+Field 8 P8
+Field 7 P7
+Field 6 P6
+Field 5 P5
+Field 4 P4
+Field 3 P3
+Field 2 P2
+Field 1 P1
+Field 0 P0
+EndSysreg
+
Sysreg SPMSCR_EL1 2 7 9 14 7
Field 63:32 IMP_DEF
Field 31 RAO
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 27/46] arm64/sysreg: Add register fields for SPMINTENCLR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (25 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 26/46] arm64/sysreg: Add register fields for SPMOVSSET_EL0 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 28/46] arm64/sysreg: Add register fields for SPMINTENSET_EL1 Anshuman Khandual
` (18 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMINTENCLR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index c983c1360908..0942cd16a942 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -161,6 +161,73 @@ Field 15:8 Aff1
Field 7:0 Aff0
EndSysreg
+Sysreg SPMINTENCLR_EL1 2 0 9 14 2
+Field 63 P63
+Field 62 P62
+Field 61 P61
+Field 60 P60
+Field 59 P59
+Field 58 P58
+Field 57 P57
+Field 56 P56
+Field 55 P55
+Field 54 P54
+Field 53 P53
+Field 52 P52
+Field 51 P51
+Field 50 P50
+Field 49 P49
+Field 48 P48
+Field 47 P47
+Field 46 P46
+Field 45 P45
+Field 44 P44
+Field 43 P43
+Field 42 P42
+Field 41 P41
+Field 40 P40
+Field 39 P39
+Field 38 P38
+Field 37 P37
+Field 36 P36
+Field 35 P35
+Field 34 P34
+Field 33 P33
+Field 32 P32
+Field 31 P31
+Field 30 P30
+Field 29 P29
+Field 28 P28
+Field 27 P27
+Field 26 P26
+Field 25 P25
+Field 24 P24
+Field 23 P23
+Field 22 P22
+Field 21 P21
+Field 20 P20
+Field 19 P19
+Field 18 P18
+Field 17 P17
+Field 16 P16
+Field 15 P15
+Field 14 P14
+Field 13 P13
+Field 12 P12
+Field 11 P11
+Field 10 P10
+Field 9 P9
+Field 8 P8
+Field 7 P7
+Field 6 P6
+Field 5 P5
+Field 4 P4
+Field 3 P3
+Field 2 P2
+Field 1 P1
+Field 0 P0
+EndSysreg
+
Sysreg PMCCNTSVR_EL1 2 0 14 11 7
Field 63:0 CCNT
EndSysreg
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 28/46] arm64/sysreg: Add register fields for SPMINTENSET_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (26 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 27/46] arm64/sysreg: Add register fields for SPMINTENCLR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 29/46] arm64/sysreg: Add register fields for SPMCNTENCLR_EL0 Anshuman Khandual
` (17 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMINTENSET_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 0942cd16a942..82fe720472cc 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -161,6 +161,73 @@ Field 15:8 Aff1
Field 7:0 Aff0
EndSysreg
+Sysreg SPMINTENSET_EL1 2 0 9 14 1
+Field 63 P63
+Field 62 P62
+Field 61 P61
+Field 60 P60
+Field 59 P59
+Field 58 P58
+Field 57 P57
+Field 56 P56
+Field 55 P55
+Field 54 P54
+Field 53 P53
+Field 52 P52
+Field 51 P51
+Field 50 P50
+Field 49 P49
+Field 48 P48
+Field 47 P47
+Field 46 P46
+Field 45 P45
+Field 44 P44
+Field 43 P43
+Field 42 P42
+Field 41 P41
+Field 40 P40
+Field 39 P39
+Field 38 P38
+Field 37 P37
+Field 36 P36
+Field 35 P35
+Field 34 P34
+Field 33 P33
+Field 32 P32
+Field 31 P31
+Field 30 P30
+Field 29 P29
+Field 28 P28
+Field 27 P27
+Field 26 P26
+Field 25 P25
+Field 24 P24
+Field 23 P23
+Field 22 P22
+Field 21 P21
+Field 20 P20
+Field 19 P19
+Field 18 P18
+Field 17 P17
+Field 16 P16
+Field 15 P15
+Field 14 P14
+Field 13 P13
+Field 12 P12
+Field 11 P11
+Field 10 P10
+Field 9 P9
+Field 8 P8
+Field 7 P7
+Field 6 P6
+Field 5 P5
+Field 4 P4
+Field 3 P3
+Field 2 P2
+Field 1 P1
+Field 0 P0
+EndSysreg
+
Sysreg SPMINTENCLR_EL1 2 0 9 14 2
Field 63 P63
Field 62 P62
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 29/46] arm64/sysreg: Add register fields for SPMCNTENCLR_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (27 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 28/46] arm64/sysreg: Add register fields for SPMINTENSET_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 30/46] arm64/sysreg: Add register fields for SPMCNTENSET_EL0 Anshuman Khandual
` (16 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMCNTENCLR_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 82fe720472cc..9f278055fe77 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -312,6 +312,73 @@ Field 1 P
Field 0 E
EndSysreg
+Sysreg SPMCNTENCLR_EL0 2 3 9 12 2
+Field 63 P63
+Field 62 P62
+Field 61 P61
+Field 60 P60
+Field 59 P59
+Field 58 P58
+Field 57 P57
+Field 56 P56
+Field 55 P55
+Field 54 P54
+Field 53 P53
+Field 52 P52
+Field 51 P51
+Field 50 P50
+Field 49 P49
+Field 48 P48
+Field 47 P47
+Field 46 P46
+Field 45 P45
+Field 44 P44
+Field 43 P43
+Field 42 P42
+Field 41 P41
+Field 40 P40
+Field 39 P39
+Field 38 P38
+Field 37 P37
+Field 36 P36
+Field 35 P35
+Field 34 P34
+Field 33 P33
+Field 32 P32
+Field 31 P31
+Field 30 P30
+Field 29 P29
+Field 28 P28
+Field 27 P27
+Field 26 P26
+Field 25 P25
+Field 24 P24
+Field 23 P23
+Field 22 P22
+Field 21 P21
+Field 20 P20
+Field 19 P19
+Field 18 P18
+Field 17 P17
+Field 16 P16
+Field 15 P15
+Field 14 P14
+Field 13 P13
+Field 12 P12
+Field 11 P11
+Field 10 P10
+Field 9 P9
+Field 8 P8
+Field 7 P7
+Field 6 P6
+Field 5 P5
+Field 4 P4
+Field 3 P3
+Field 2 P2
+Field 1 P1
+Field 0 P0
+EndSysreg
+
Sysreg SPMOVSCLR_EL0 2 3 9 12 3
Field 63 P63
Field 62 P62
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 30/46] arm64/sysreg: Add register fields for SPMCNTENSET_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (28 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 29/46] arm64/sysreg: Add register fields for SPMCNTENCLR_EL0 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 31/46] arm64/sysreg: Add register fields for SPMSELR_EL0 Anshuman Khandual
` (15 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMCNTENSET_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 9f278055fe77..a7b8f5602163 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -312,6 +312,73 @@ Field 1 P
Field 0 E
EndSysreg
+Sysreg SPMCNTENSET_EL0 2 3 9 12 1
+Field 63 P63
+Field 62 P62
+Field 61 P61
+Field 60 P60
+Field 59 P59
+Field 58 P58
+Field 57 P57
+Field 56 P56
+Field 55 P55
+Field 54 P54
+Field 53 P53
+Field 52 P52
+Field 51 P51
+Field 50 P50
+Field 49 P49
+Field 48 P48
+Field 47 P47
+Field 46 P46
+Field 45 P45
+Field 44 P44
+Field 43 P43
+Field 42 P42
+Field 41 P41
+Field 40 P40
+Field 39 P39
+Field 38 P38
+Field 37 P37
+Field 36 P36
+Field 35 P35
+Field 34 P34
+Field 33 P33
+Field 32 P32
+Field 31 P31
+Field 30 P30
+Field 29 P29
+Field 28 P28
+Field 27 P27
+Field 26 P26
+Field 25 P25
+Field 24 P24
+Field 23 P23
+Field 22 P22
+Field 21 P21
+Field 20 P20
+Field 19 P19
+Field 18 P18
+Field 17 P17
+Field 16 P16
+Field 15 P15
+Field 14 P14
+Field 13 P13
+Field 12 P12
+Field 11 P11
+Field 10 P10
+Field 9 P9
+Field 8 P8
+Field 7 P7
+Field 6 P6
+Field 5 P5
+Field 4 P4
+Field 3 P3
+Field 2 P2
+Field 1 P1
+Field 0 P0
+EndSysreg
+
Sysreg SPMCNTENCLR_EL0 2 3 9 12 2
Field 63 P63
Field 62 P62
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 31/46] arm64/sysreg: Add register fields for SPMSELR_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (29 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 30/46] arm64/sysreg: Add register fields for SPMCNTENSET_EL0 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 32/46] arm64/sysreg: Add register fields for PMICNTSVR_EL1 Anshuman Khandual
` (14 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMSELR_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index a7b8f5602163..e57973b27e9c 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -513,6 +513,18 @@ Field 1 P1
Field 0 P0
EndSysreg
+Sysreg SPMSELR_EL0 2 3 9 12 5
+Res0 63:10
+Field 9:4 SYSPMUSEL
+Res0 3:2
+UnsignedEnum 1:0 BANK
+ 0b00 BANK_0
+ 0b01 BANK_1
+ 0b10 BANK_2
+ 0b11 BANK_3
+EndEnum
+EndSysreg
+
Sysreg SPMOVSSET_EL0 2 3 9 14 3
Field 63 P63
Field 62 P62
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 32/46] arm64/sysreg: Add register fields for PMICNTSVR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (30 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 31/46] arm64/sysreg: Add register fields for SPMSELR_EL0 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 33/46] arm64/sysreg: Add register fields for SPMIIDR_EL1 Anshuman Khandual
` (13 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMICNTSVR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index e57973b27e9c..b19b8e594524 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -299,6 +299,10 @@ Sysreg PMCCNTSVR_EL1 2 0 14 11 7
Field 63:0 CCNT
EndSysreg
+Sysreg PMICNTSVR_EL1 2 0 14 12 0
+Field 63:0 ICNT
+EndSysreg
+
Sysreg SPMCR_EL0 2 3 9 12 0
Res0 63:12
Field 11 TR0
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 33/46] arm64/sysreg: Add register fields for SPMIIDR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (31 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 32/46] arm64/sysreg: Add register fields for PMICNTSVR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 34/46] arm64/sysreg: Add register fields for SPMDEVARCH_EL1 Anshuman Khandual
` (12 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMIIDR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index b19b8e594524..3b217ce3fe28 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -149,6 +149,14 @@ Field 3:2 P1
Field 1:0 P0
EndSysreg
+Sysreg SPMIIDR_EL1 2 0 9 13 4
+Res0 63:32
+Field 31:20 ProductID
+Field 19:16 Variant
+Field 15:12 Revision
+Field 11:0 Implementer
+EndSysreg
+
Sysreg SPMDEVAFF_EL1 2 0 9 13 6
Res0 63:40
Field 39:32 Aff3
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 34/46] arm64/sysreg: Add register fields for SPMDEVARCH_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (32 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 33/46] arm64/sysreg: Add register fields for SPMIIDR_EL1 Anshuman Khandual
@ 2024-12-10 5:52 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 35/46] arm64/sysreg: Add register fields for SPMCFGR_EL1 Anshuman Khandual
` (11 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:52 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMDEVARCH_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 3b217ce3fe28..d423bb218a9f 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -157,6 +157,15 @@ Field 15:12 Revision
Field 11:0 Implementer
EndSysreg
+Sysreg SPMDEVARCH_EL1 2 0 9 13 5
+Res0 63:32
+Field 31:21 ARCHITECT
+Field 20 PRESENT
+Field 19:16 REVISION
+Field 15:12 ARCHVER
+Field 11:0 ARCHPART
+EndSysreg
+
Sysreg SPMDEVAFF_EL1 2 0 9 13 6
Res0 63:40
Field 39:32 Aff3
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 35/46] arm64/sysreg: Add register fields for SPMCFGR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (33 preceding siblings ...)
2024-12-10 5:52 ` [PATCH V2 34/46] arm64/sysreg: Add register fields for SPMDEVARCH_EL1 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 36/46] arm64/sysreg: Add register fields for PMSSCR_EL1 Anshuman Khandual
` (10 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMCFGR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index d423bb218a9f..f4f5d22948ad 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -178,6 +178,24 @@ Field 15:8 Aff1
Field 7:0 Aff0
EndSysreg
+Sysreg SPMCFGR_EL1 2 0 9 13 7
+Res0 63:32
+Field 31:28 NCG
+Res0 27:25
+Field 24 HDBG
+Field 23 TR0
+Field 22 SS
+Field 21 FZ0
+Field 20 MSI
+Field 19 RAO
+Res0 18
+Field 17 NA
+Field 16 EX
+Field 15:14 RAZ
+Field 13:8 SIZE
+Field 7:0 N
+EndSysreg
+
Sysreg SPMINTENSET_EL1 2 0 9 14 1
Field 63 P63
Field 62 P62
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 36/46] arm64/sysreg: Add register fields for PMSSCR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (34 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 35/46] arm64/sysreg: Add register fields for SPMCFGR_EL1 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 37/46] arm64/sysreg: Add register fields for PMZR_EL0 Anshuman Khandual
` (9 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMSSCR_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index f4f5d22948ad..c87017e69be1 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -2863,6 +2863,13 @@ Res0 63:5
Field 4:0 SEL
EndSysreg
+Sysreg PMSSCR_EL1 3 0 9 13 3
+Res0 63:33
+Field 32 NC
+Res0 31:1
+Field 0 SS
+EndSysreg
+
Sysreg PMUACR_EL1 3 0 9 14 4
Res0 63:33
Field 32 FM
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 37/46] arm64/sysreg: Add register fields for PMZR_EL0
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (35 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 36/46] arm64/sysreg: Add register fields for PMSSCR_EL1 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 38/46] arm64/sysreg: Add register fields for SPMCGCR0_EL1 Anshuman Khandual
` (8 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for PMZR_EL0 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index c87017e69be1..05f548b11470 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -3089,6 +3089,43 @@ Res0 19:16
Field 15:0 evtCount
EndSysreg
+Sysreg PMZR_EL0 3 3 9 13 4
+Res0 63:33
+Field 32 FM
+Field 31 C
+Field 30 P30
+Field 29 P29
+Field 28 P28
+Field 27 P27
+Field 26 P26
+Field 25 P25
+Field 24 P24
+Field 23 P23
+Field 22 P22
+Field 21 P21
+Field 20 P20
+Field 19 P19
+Field 18 P18
+Field 17 P17
+Field 16 P16
+Field 15 P15
+Field 14 P14
+Field 13 P13
+Field 12 P12
+Field 11 P11
+Field 10 P10
+Field 9 P9
+Field 8 P8
+Field 7 P7
+Field 6 P6
+Field 5 P5
+Field 4 P4
+Field 3 P3
+Field 2 P2
+Field 1 P1
+Field 0 P0
+EndSysreg
+
SysregFields HFGxTR_EL2
Field 63 nAMAIR2_EL1
Field 62 nMAIR2_EL1
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 38/46] arm64/sysreg: Add register fields for SPMCGCR0_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (36 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 37/46] arm64/sysreg: Add register fields for PMZR_EL0 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 39/46] arm64/sysreg: Add register fields for SPMCGCR1_EL1 Anshuman Khandual
` (7 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMCGCR0_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 05f548b11470..e97572c4f370 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -114,6 +114,21 @@ Res0 63:1
Field 0 OSLK
EndSysreg
+SysregFields SPMCGCRx_EL1
+Field 63:56 N7
+Field 55:48 N6
+Field 47:40 N5
+Field 39:32 N4
+Field 31:24 N3
+Field 23:16 N2
+Field 15:8 N1
+Field 7:0 N0
+EndSysregFields
+
+Sysreg SPMCGCR0_EL1 2 0 9 13 0
+Fields SPMCGCRx_EL1
+EndSysreg
+
Sysreg SPMACCESSR_EL1 2 0 9 13 3
Field 63:62 P31
Field 61:60 P30
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 39/46] arm64/sysreg: Add register fields for SPMCGCR1_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (37 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 38/46] arm64/sysreg: Add register fields for SPMCGCR0_EL1 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 40/46] arm64/sysreg: Add register fields for MDSTEPOP_EL1 Anshuman Khandual
` (6 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMCGCR1_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index e97572c4f370..819163d1c673 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -129,6 +129,10 @@ Sysreg SPMCGCR0_EL1 2 0 9 13 0
Fields SPMCGCRx_EL1
EndSysreg
+Sysreg SPMCGCR1_EL1 2 0 9 13 1
+Fields SPMCGCRx_EL1
+EndSysreg
+
Sysreg SPMACCESSR_EL1 2 0 9 13 3
Field 63:62 P31
Field 61:60 P30
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 40/46] arm64/sysreg: Add register fields for MDSTEPOP_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (38 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 39/46] arm64/sysreg: Add register fields for SPMCGCR1_EL1 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 41/46] arm64/sysreg: Add register fields for ERXGSR_EL1 Anshuman Khandual
` (5 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for MDSTEPOP_EL1 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 819163d1c673..68dee898743e 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -104,6 +104,11 @@ EndEnum
Res0 3:0
EndSysreg
+Sysreg MDSTEPOP_EL1 2 0 0 5 2
+Res0 63:32
+Field 31:0 OPCODE
+EndSysreg
+
Sysreg OSECCR_EL1 2 0 0 6 2
Res0 63:32
Field 31:0 EDECCR
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 41/46] arm64/sysreg: Add register fields for ERXGSR_EL1
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (39 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 40/46] arm64/sysreg: Add register fields for MDSTEPOP_EL1 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 42/46] arm64/sysreg: Add register fields for SPMACCESSR_EL2 Anshuman Khandual
` (4 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for ERXGSR_EL1 as per the definitions based on
DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 68dee898743e..2e732ea1dfb1 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -3928,6 +3928,73 @@ Field 15:8 Attr1
Field 7:0 Attr0
EndSysregFields
+Sysreg ERXGSR_EL1 3 0 5 3 2
+Field 63 S63
+Field 62 S62
+Field 61 S61
+Field 60 S60
+Field 59 S59
+Field 58 S58
+Field 57 S57
+Field 56 S56
+Field 55 S55
+Field 54 S54
+Field 53 S53
+Field 52 S52
+Field 51 S51
+Field 50 S50
+Field 49 S49
+Field 48 S48
+Field 47 S47
+Field 46 S46
+Field 45 S45
+Field 44 S44
+Field 43 S43
+Field 42 S42
+Field 41 S41
+Field 40 S40
+Field 39 S39
+Field 38 S38
+Field 37 S37
+Field 36 S36
+Field 35 S35
+Field 34 S34
+Field 33 S33
+Field 32 S32
+Field 31 S31
+Field 30 S30
+Field 29 S29
+Field 28 S28
+Field 27 S27
+Field 26 S26
+Field 25 S25
+Field 24 S24
+Field 23 S23
+Field 22 S22
+Field 21 S21
+Field 20 S20
+Field 19 S19
+Field 18 S18
+Field 17 S17
+Field 16 S16
+Field 15 S15
+Field 14 S14
+Field 13 S13
+Field 12 S12
+Field 11 S11
+Field 10 S10
+Field 9 S9
+Field 8 S8
+Field 7 S7
+Field 6 S6
+Field 5 S5
+Field 4 S4
+Field 3 S3
+Field 2 S2
+Field 1 S1
+Field 0 S0
+EndSysreg
+
Sysreg MAIR2_EL1 3 0 10 2 1
Fields MAIR2_ELx
EndSysreg
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 42/46] arm64/sysreg: Add register fields for SPMACCESSR_EL2
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (40 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 41/46] arm64/sysreg: Add register fields for ERXGSR_EL1 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 43/46] arm64/sysreg: Add remaining debug registers affected by HDFGxTR2_EL2 Anshuman Khandual
` (3 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds register fields for SPMACCESSR_EL2 as per the definitions based
on DDI0601 2024-09.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/tools/sysreg | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
index 2e732ea1dfb1..8a6957cfa0e4 100644
--- a/arch/arm64/tools/sysreg
+++ b/arch/arm64/tools/sysreg
@@ -655,6 +655,41 @@ Field 1 P1
Field 0 P0
EndSysreg
+Sysreg SPMACCESSR_EL2 2 4 9 13 3
+Field 63:62 P31
+Field 61:60 P30
+Field 59:58 P29
+Field 57:56 P28
+Field 55:54 P27
+Field 53:52 P26
+Field 51:50 P25
+Field 49:48 P24
+Field 47:46 P23
+Field 45:44 P22
+Field 43:42 P21
+Field 41:40 P20
+Field 39:38 P19
+Field 37:36 P18
+Field 35:34 P17
+Field 33:32 P16
+Field 31:30 P15
+Field 29:28 P14
+Field 27:26 P13
+Field 25:24 P12
+Field 23:22 P11
+Field 21:20 P10
+Field 19:18 P9
+Field 17:16 P8
+Field 15:14 P7
+Field 13:12 P6
+Field 11:10 P5
+Field 9:8 P4
+Field 7:6 P3
+Field 5:4 P2
+Field 3:2 P1
+Field 1:0 P0
+EndSysreg
+
Sysreg SPMSCR_EL1 2 7 9 14 7
Field 63:32 IMP_DEF
Field 31 RAO
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 43/46] arm64/sysreg: Add remaining debug registers affected by HDFGxTR2_EL2
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (41 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 42/46] arm64/sysreg: Add register fields for SPMACCESSR_EL2 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 44/46] KVM: arm64: nv: Add FEAT_FGT2 registers access from virtual EL2 Anshuman Khandual
` (2 subsequent siblings)
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
The HDFGxTR2_EL2 registers trap a set of debug and trace related registers.
Almost all of those register encodings have been added in the tools sysreg
format. Let's also add all the remaining encodings which are formula based
(and only that, because we really don't care about what these registers
actually do at this stage).
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/include/asm/sysreg.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h
index b8303a83c0bf..d1e3737a8ff8 100644
--- a/arch/arm64/include/asm/sysreg.h
+++ b/arch/arm64/include/asm/sysreg.h
@@ -270,6 +270,12 @@
#define SYS_TRCVMIDCCTLR1 sys_reg(2, 1, 3, 3, 2)
#define SYS_TRCVMIDCVR(m) sys_reg(2, 1, 3, ((m & 7) << 1), 1)
+#define SYS_SPMEVCNTR_EL0(m) sys_reg(2, 3, 14, (0 | (m >> 3)), (m & 7))
+#define SYS_SPMEVTYPER_EL0(m) sys_reg(2, 3, 14, (2 | (m >> 3)), (m & 7))
+#define SYS_SPMEVFILTR_EL0(m) sys_reg(2, 3, 14, (4 | (m >> 3)), (m & 7))
+#define SYS_SPMEVFILT2R_EL0(m) sys_reg(2, 3, 14, (6 | (m >> 3)), (m & 7))
+#define SYS_PMEVCNTSVR_EL1(m) sys_reg(2, 0, 14, (8 | (m >> 3)), (m & 7))
+
/* ETM */
#define SYS_TRCOSLAR sys_reg(2, 1, 1, 0, 4)
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 44/46] KVM: arm64: nv: Add FEAT_FGT2 registers access from virtual EL2
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (42 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 43/46] arm64/sysreg: Add remaining debug registers affected by HDFGxTR2_EL2 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 45/46] KVM: arm64: nv: Add FEAT_FGT2 registers based FGU handling Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 46/46] KVM: arm64: nv: Add trap forwarding for FEAT_FGT2 described registers Anshuman Khandual
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This adds VNCR-capable HDFGRTR2_EL2, HDFGWTR2_EL2, HFGRTR2_EL2, HFGWTR2_EL2
and HFGITR2_EL2 FEAT_FGT2 registers into enum vcpu_sysreg, and also enables
their access from virtual EL2 environment.
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: James Morse <james.morse@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.linux.dev
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
arch/arm64/include/asm/kvm_host.h | 5 +++++
arch/arm64/include/asm/vncr_mapping.h | 5 +++++
arch/arm64/kvm/sys_regs.c | 5 +++++
3 files changed, 15 insertions(+)
diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index e18e9244d17a..73ff8772ac22 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -548,6 +548,11 @@ enum vcpu_sysreg {
VNCR(HDFGWTR_EL2),
VNCR(HAFGRTR_EL2),
+ VNCR(HDFGRTR2_EL2),
+ VNCR(HDFGWTR2_EL2),
+ VNCR(HFGITR2_EL2),
+ VNCR(HFGRTR2_EL2),
+ VNCR(HFGWTR2_EL2),
VNCR(CNTVOFF_EL2),
VNCR(CNTV_CVAL_EL0),
VNCR(CNTV_CTL_EL0),
diff --git a/arch/arm64/include/asm/vncr_mapping.h b/arch/arm64/include/asm/vncr_mapping.h
index 4f9bbd4d6c26..d6110d7c36e2 100644
--- a/arch/arm64/include/asm/vncr_mapping.h
+++ b/arch/arm64/include/asm/vncr_mapping.h
@@ -38,6 +38,8 @@
#define VNCR_HFGRTR_EL2 0x1B8
#define VNCR_HFGWTR_EL2 0x1C0
#define VNCR_HFGITR_EL2 0x1C8
+#define VNCR_HDFGRTR2_EL2 0x1A0
+#define VNCR_HDFGWTR2_EL2 0x1B0
#define VNCR_HDFGRTR_EL2 0x1D0
#define VNCR_HDFGWTR_EL2 0x1D8
#define VNCR_ZCR_EL1 0x1E0
@@ -52,6 +54,9 @@
#define VNCR_PIRE0_EL1 0x290
#define VNCR_PIR_EL1 0x2A0
#define VNCR_POR_EL1 0x2A8
+#define VNCR_HFGRTR2_EL2 0x2C0
+#define VNCR_HFGWTR2_EL2 0x2C8
+#define VNCR_HFGITR2_EL2 0x310
#define VNCR_ICH_LR0_EL2 0x400
#define VNCR_ICH_LR1_EL2 0x408
#define VNCR_ICH_LR2_EL2 0x410
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 83c6b4a07ef5..c9e0e9322bd3 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -3004,9 +3004,14 @@ static const struct sys_reg_desc sys_reg_descs[] = {
EL2_REG_VNCR(VTCR_EL2, reset_val, 0),
{ SYS_DESC(SYS_DACR32_EL2), undef_access, reset_unknown, DACR32_EL2 },
+ EL2_REG_VNCR(HDFGRTR2_EL2, reset_val, 0),
+ EL2_REG_VNCR(HDFGWTR2_EL2, reset_val, 0),
+ EL2_REG_VNCR(HFGRTR2_EL2, reset_val, 0),
+ EL2_REG_VNCR(HFGWTR2_EL2, reset_val, 0),
EL2_REG_VNCR(HDFGRTR_EL2, reset_val, 0),
EL2_REG_VNCR(HDFGWTR_EL2, reset_val, 0),
EL2_REG_VNCR(HAFGRTR_EL2, reset_val, 0),
+ EL2_REG_VNCR(HFGITR2_EL2, reset_val, 0),
EL2_REG_REDIR(SPSR_EL2, reset_val, 0),
EL2_REG_REDIR(ELR_EL2, reset_val, 0),
{ SYS_DESC(SYS_SP_EL1), access_sp_el1},
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 45/46] KVM: arm64: nv: Add FEAT_FGT2 registers based FGU handling
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (43 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 44/46] KVM: arm64: nv: Add FEAT_FGT2 registers access from virtual EL2 Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 46/46] KVM: arm64: nv: Add trap forwarding for FEAT_FGT2 described registers Anshuman Khandual
45 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
This enables FEAT_FGT2 registers based FGU handling by adding the following
new groups in 'enum fgt_group_id' for all respective FGT control registers
and also adding FGU behaviour for their individual managed registers access
traps.
1. HDFGRTR2_GROUP
2. HDFGWTR2_GROUP
3. HFGRTR2_GROUP
4. HFGWTR2_GROUP
5. HFGITR2_GROUP
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: James Morse <james.morse@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.linux.dev
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
Changes in V2:
- Added HFGITR2_EL2 register based fields in encoding_to_fgt[]
- Updated HFGITR2_EL2_[nDCCIVAPS|TSBCSYNC] in kvm_init_nv_sysregs()
- Updated HFGITR2_EL2_[nDCCIVAPS|TSBCSYNC] in kvm_calculate_traps()
arch/arm64/include/asm/kvm_arm.h | 20 +++
arch/arm64/include/asm/kvm_host.h | 5 +
arch/arm64/include/asm/sysreg.h | 4 +
arch/arm64/kvm/emulate-nested.c | 187 ++++++++++++++++++++++++
arch/arm64/kvm/hyp/include/hyp/switch.h | 26 ++++
arch/arm64/kvm/nested.c | 58 ++++++++
arch/arm64/kvm/sys_regs.c | 65 ++++++++
7 files changed, 365 insertions(+)
diff --git a/arch/arm64/include/asm/kvm_arm.h b/arch/arm64/include/asm/kvm_arm.h
index 3e0f0de1d2da..5f725b7c9114 100644
--- a/arch/arm64/include/asm/kvm_arm.h
+++ b/arch/arm64/include/asm/kvm_arm.h
@@ -326,6 +326,26 @@
#define __HFGRTR_EL2_MASK GENMASK(49, 0)
#define __HFGRTR_EL2_nMASK ~(__HFGRTR_EL2_RES0 | __HFGRTR_EL2_MASK)
+#define __HDFGRTR2_EL2_RES0 HDFGRTR2_EL2_RES0
+#define __HDFGRTR2_EL2_MASK 0
+#define __HDFGRTR2_EL2_nMASK ~(__HDFGRTR2_EL2_RES0 | __HDFGRTR2_EL2_MASK)
+
+#define __HDFGWTR2_EL2_RES0 HDFGWTR2_EL2_RES0
+#define __HDFGWTR2_EL2_MASK 0
+#define __HDFGWTR2_EL2_nMASK ~(__HDFGWTR2_EL2_RES0 | __HDFGWTR2_EL2_MASK)
+
+#define __HFGITR2_EL2_RES0 HFGITR2_EL2_RES0
+#define __HFGITR2_EL2_MASK BIT(0)
+#define __HFGITR2_EL2_nMASK ~(__HFGITR2_EL2_RES0 | __HFGITR2_EL2_MASK)
+
+#define __HFGRTR2_EL2_RES0 HFGRTR2_EL2_RES0
+#define __HFGRTR2_EL2_MASK 0
+#define __HFGRTR2_EL2_nMASK ~(HFGRTR2_EL2_RES0 | __HFGRTR2_EL2_MASK)
+
+#define __HFGWTR2_EL2_RES0 HFGWTR2_EL2_RES0
+#define __HFGWTR2_EL2_MASK 0
+#define __HFGWTR2_EL2_nMASK ~(HFGWTR2_EL2_RES0 | __HFGWTR2_EL2_MASK)
+
/*
* The HFGWTR bits are a subset of HFGRTR bits. To ensure we don't miss any
* future additions, define __HFGWTR* macros relative to __HFGRTR* ones.
diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index 73ff8772ac22..c80c07be3358 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -271,6 +271,11 @@ enum fgt_group_id {
HDFGWTR_GROUP = HDFGRTR_GROUP,
HFGITR_GROUP,
HAFGRTR_GROUP,
+ HDFGRTR2_GROUP,
+ HDFGWTR2_GROUP = HDFGRTR2_GROUP,
+ HFGRTR2_GROUP,
+ HFGWTR2_GROUP = HFGRTR2_GROUP,
+ HFGITR2_GROUP,
/* Must be last */
__NR_FGT_GROUP_IDS__
diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h
index d1e3737a8ff8..2c10c56dea84 100644
--- a/arch/arm64/include/asm/sysreg.h
+++ b/arch/arm64/include/asm/sysreg.h
@@ -686,6 +686,10 @@
#define TLBI_CRm_RNS 6 /* Range, Non-Sharable */
#define TLBI_CRm_nRNS 7 /* non-Range, Non-Sharable */
+#define OP_TSB_CSYNC 0xD503225F
+#define OP_DC_CIVAPS sys_insn(2, 0, 7, 15, 1)
+#define OP_DC_CIGDVAPS sys_insn(2, 0, 7, 15, 5)
+
#define OP_TLBI_VMALLE1OS sys_insn(1, 0, 8, 1, 0)
#define OP_TLBI_VAE1OS sys_insn(1, 0, 8, 1, 1)
#define OP_TLBI_ASIDE1OS sys_insn(1, 0, 8, 1, 2)
diff --git a/arch/arm64/kvm/emulate-nested.c b/arch/arm64/kvm/emulate-nested.c
index 1ffbfd1c3cf2..6c63cbfc11ea 100644
--- a/arch/arm64/kvm/emulate-nested.c
+++ b/arch/arm64/kvm/emulate-nested.c
@@ -1933,6 +1933,163 @@ static const struct encoding_to_trap_config encoding_to_fgt[] __initconst = {
SR_FGT(SYS_AMEVCNTR0_EL0(2), HAFGRTR, AMEVCNTR02_EL0, 1),
SR_FGT(SYS_AMEVCNTR0_EL0(1), HAFGRTR, AMEVCNTR01_EL0, 1),
SR_FGT(SYS_AMEVCNTR0_EL0(0), HAFGRTR, AMEVCNTR00_EL0, 1),
+
+ /* HDFGRTR2_EL2 */
+ SR_FGT(SYS_MDSTEPOP_EL1, HDFGRTR2, nMDSTEPOP_EL1, 0),
+ SR_FGT(SYS_TRBMPAM_EL1, HDFGRTR2, nTRBMPAM_EL1, 0),
+ SR_FGT(SYS_TRCITECR_EL1, HDFGRTR2, nTRCITECR_EL1, 0),
+ SR_FGT(SYS_PMSDSFR_EL1, HDFGRTR2, nPMSDSFR_EL1, 0),
+ SR_FGT(SYS_SPMDEVAFF_EL1, HDFGRTR2, nSPMDEVAFF_EL1, 0),
+
+ SR_FGT(SYS_SPMCGCR0_EL1, HDFGRTR2, nSPMID, 0),
+ SR_FGT(SYS_SPMCGCR1_EL1, HDFGRTR2, nSPMID, 0),
+ SR_FGT(SYS_SPMIIDR_EL1, HDFGRTR2, nSPMID, 0),
+ SR_FGT(SYS_SPMDEVARCH_EL1, HDFGRTR2, nSPMID, 0),
+ SR_FGT(SYS_SPMCFGR_EL1, HDFGRTR2, nSPMID, 0),
+
+ SR_FGT(SYS_SPMSCR_EL1, HDFGRTR2, nSPMSCR_EL1, 0),
+ SR_FGT(SYS_SPMACCESSR_EL1, HDFGRTR2, nSPMACCESSR_EL1, 0),
+ SR_FGT(SYS_SPMCR_EL0, HDFGRTR2, nSPMCR_EL0, 0),
+ SR_FGT(SYS_SPMOVSCLR_EL0, HDFGRTR2, nSPMOVS, 0),
+ SR_FGT(SYS_SPMOVSSET_EL0, HDFGRTR2, nSPMOVS, 0),
+ SR_FGT(SYS_SPMINTENCLR_EL1, HDFGRTR2, nSPMINTEN, 0),
+ SR_FGT(SYS_SPMINTENSET_EL1, HDFGRTR2, nSPMINTEN, 0),
+ SR_FGT(SYS_SPMCNTENCLR_EL0, HDFGRTR2, nSPMCNTEN, 0),
+ SR_FGT(SYS_SPMCNTENSET_EL0, HDFGRTR2, nSPMCNTEN, 0),
+ SR_FGT(SYS_SPMSELR_EL0, HDFGRTR2, nSPMSELR_EL0, 0),
+
+ SR_FGT(SYS_SPMEVTYPER_EL0(0), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(1), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(2), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(3), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(4), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(5), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(6), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(7), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(8), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(9), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(10), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(11), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(12), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(13), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(14), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVTYPER_EL0(15), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+
+ SR_FGT(SYS_SPMEVFILTR_EL0(0), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(1), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(2), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(3), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(4), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(5), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(6), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(7), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(8), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(9), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(10), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(11), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(12), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(13), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(14), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILTR_EL0(15), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+
+ SR_FGT(SYS_SPMEVFILT2R_EL0(0), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(1), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(2), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(3), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(4), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(5), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(6), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(7), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(8), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(9), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(10), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(11), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(12), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(13), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(14), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+ SR_FGT(SYS_SPMEVFILT2R_EL0(15), HDFGRTR2, nSPMEVTYPERn_EL0, 0),
+
+ SR_FGT(SYS_SPMEVCNTR_EL0(0), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(1), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(2), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(3), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(4), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(5), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(6), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(7), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(8), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(9), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(10), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(11), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(12), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(13), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(14), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+ SR_FGT(SYS_SPMEVCNTR_EL0(15), HDFGRTR2, nSPMEVCNTRn_EL0, 0),
+
+ SR_FGT(SYS_PMSSCR_EL1, HDFGRTR2, nPMSSCR_EL1, 0),
+ SR_FGT(SYS_PMCCNTSVR_EL1, HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMICNTSVR_EL1, HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(0), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(1), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(2), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(3), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(4), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(5), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(6), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(7), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(8), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(9), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(10), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(11), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(12), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(13), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(14), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(15), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(16), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(17), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(18), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(19), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(20), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(21), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(22), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(23), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(24), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(25), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(26), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(27), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(28), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(29), HDFGRTR2, nPMSSDATA, 0),
+ SR_FGT(SYS_PMEVCNTSVR_EL1(30), HDFGRTR2, nPMSSDATA, 0),
+
+ SR_FGT(SYS_MDSELR_EL1, HDFGRTR2, nMDSELR_EL1, 0),
+ SR_FGT(SYS_PMUACR_EL1, HDFGRTR2, nPMUACR_EL1, 0),
+ SR_FGT(SYS_PMICFILTR_EL0, HDFGRTR2, nPMICFILTR_EL0, 0),
+ SR_FGT(SYS_PMICNTR_EL0, HDFGRTR2, nPMICNTR_EL0, 0),
+ SR_FGT(SYS_PMIAR_EL1, HDFGRTR2, nPMIAR_EL1, 0),
+ SR_FGT(SYS_PMECR_EL1, HDFGRTR2, nPMECR_EL1, 0),
+
+ /*
+ * HDFGWTR2_EL2
+ *
+ * Although HDFGRTR2_EL2 and HDFGWTR2_EL2 registers largely
+ * overlap in their bit assignment, there are a number of bits
+ * that are RES0 on one side, and an actual trap bit on the
+ * other. The policy chosen here is to describe all the
+ * read-side mappings, and only the write-side mappings that
+ * differ from the read side, and the trap handler will pick
+ * the correct shadow register based on the access type.
+ */
+ SR_FGT(SYS_PMZR_EL0, HDFGWTR2, nPMZR_EL0, 0),
+
+ /* HFGRTR2_EL2 */
+ SR_FGT(SYS_RCWSMASK_EL1, HFGRTR2, nRCWSMASK_EL1, 0),
+ SR_FGT(SYS_ERXGSR_EL1, HFGRTR2, nERXGSR_EL1, 0),
+ SR_FGT(SYS_PFAR_EL1, HFGRTR2, nPFAR_EL1, 0),
+
+ /* HFGITR2_EL2 */
+ SR_FGT(OP_DC_CIVAPS, HFGITR2, nDCCIVAPS, 0),
+ SR_FGT(OP_DC_CIGDVAPS, HFGITR2, nDCCIVAPS, 0),
+ SR_FGT(OP_TSB_CSYNC, HFGITR2, TSBCSYNC, 1),
};
static union trap_config get_trap_config(u32 sysreg)
@@ -2197,6 +2354,14 @@ static bool check_fgt_bit(struct kvm_vcpu *vcpu, bool is_read,
sr = is_read ? HDFGRTR_EL2 : HDFGWTR_EL2;
break;
+ case HDFGRTR2_GROUP:
+ sr = is_read ? HDFGRTR2_EL2 : HDFGWTR2_EL2;
+ break;
+
+ case HFGRTR2_GROUP:
+ sr = is_read ? HFGRTR2_EL2 : HFGWTR2_EL2;
+ break;
+
case HAFGRTR_GROUP:
sr = HAFGRTR_EL2;
break;
@@ -2205,6 +2370,10 @@ static bool check_fgt_bit(struct kvm_vcpu *vcpu, bool is_read,
sr = HFGITR_EL2;
break;
+ case HFGITR2_GROUP:
+ sr = HFGITR2_EL2;
+ break;
+
default:
WARN_ONCE(1, "Unhandled FGT group");
return false;
@@ -2279,6 +2448,20 @@ bool triage_sysreg_trap(struct kvm_vcpu *vcpu, int *sr_index)
val = __vcpu_sys_reg(vcpu, HDFGWTR_EL2);
break;
+ case HDFGRTR2_GROUP:
+ if (is_read)
+ val = __vcpu_sys_reg(vcpu, HDFGRTR2_EL2);
+ else
+ val = __vcpu_sys_reg(vcpu, HDFGWTR2_EL2);
+ break;
+
+ case HFGRTR2_GROUP:
+ if (is_read)
+ val = __vcpu_sys_reg(vcpu, HFGRTR2_EL2);
+ else
+ val = __vcpu_sys_reg(vcpu, HFGWTR2_EL2);
+ break;
+
case HAFGRTR_GROUP:
val = __vcpu_sys_reg(vcpu, HAFGRTR_EL2);
break;
@@ -2298,6 +2481,10 @@ bool triage_sysreg_trap(struct kvm_vcpu *vcpu, int *sr_index)
}
break;
+ case HFGITR2_GROUP:
+ val = __vcpu_sys_reg(vcpu, HFGITR2_EL2);
+ break;
+
case __NR_FGT_GROUP_IDS__:
/* Something is really wrong, bail out */
WARN_ONCE(1, "__NR_FGT_GROUP_IDS__");
diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h b/arch/arm64/kvm/hyp/include/hyp/switch.h
index 34f53707892d..e0da9f45acde 100644
--- a/arch/arm64/kvm/hyp/include/hyp/switch.h
+++ b/arch/arm64/kvm/hyp/include/hyp/switch.h
@@ -84,10 +84,21 @@ static inline void __activate_traps_fpsimd32(struct kvm_vcpu *vcpu)
case HFGITR_EL2: \
id = HFGITR_GROUP; \
break; \
+ case HFGITR2_EL2: \
+ id = HFGITR2_GROUP; \
+ break; \
case HDFGRTR_EL2: \
case HDFGWTR_EL2: \
id = HDFGRTR_GROUP; \
break; \
+ case HDFGRTR2_EL2: \
+ case HDFGWTR2_EL2: \
+ id = HDFGRTR2_GROUP; \
+ break; \
+ case HFGRTR2_EL2: \
+ case HFGWTR2_EL2: \
+ id = HFGRTR2_GROUP; \
+ break; \
case HAFGRTR_EL2: \
id = HAFGRTR_GROUP; \
break; \
@@ -159,6 +170,11 @@ static inline void __activate_traps_hfgxtr(struct kvm_vcpu *vcpu)
CHECK_FGT_MASKS(HDFGWTR_EL2);
CHECK_FGT_MASKS(HAFGRTR_EL2);
CHECK_FGT_MASKS(HCRX_EL2);
+ CHECK_FGT_MASKS(HDFGRTR2_EL2);
+ CHECK_FGT_MASKS(HDFGWTR2_EL2);
+ CHECK_FGT_MASKS(HFGITR2_EL2);
+ CHECK_FGT_MASKS(HFGRTR2_EL2);
+ CHECK_FGT_MASKS(HFGWTR2_EL2);
if (!cpus_have_final_cap(ARM64_HAS_FGT))
return;
@@ -170,6 +186,11 @@ static inline void __activate_traps_hfgxtr(struct kvm_vcpu *vcpu)
update_fgt_traps(hctxt, vcpu, kvm, HFGITR_EL2);
update_fgt_traps(hctxt, vcpu, kvm, HDFGRTR_EL2);
update_fgt_traps(hctxt, vcpu, kvm, HDFGWTR_EL2);
+ update_fgt_traps(hctxt, vcpu, kvm, HDFGRTR2_EL2);
+ update_fgt_traps(hctxt, vcpu, kvm, HDFGWTR2_EL2);
+ update_fgt_traps(hctxt, vcpu, kvm, HFGITR2_EL2);
+ update_fgt_traps(hctxt, vcpu, kvm, HFGRTR2_EL2);
+ update_fgt_traps(hctxt, vcpu, kvm, HFGWTR2_EL2);
if (cpu_has_amu())
update_fgt_traps(hctxt, vcpu, kvm, HAFGRTR_EL2);
@@ -199,6 +220,11 @@ static inline void __deactivate_traps_hfgxtr(struct kvm_vcpu *vcpu)
__deactivate_fgt(hctxt, vcpu, kvm, HFGITR_EL2);
__deactivate_fgt(hctxt, vcpu, kvm, HDFGRTR_EL2);
__deactivate_fgt(hctxt, vcpu, kvm, HDFGWTR_EL2);
+ __deactivate_fgt(hctxt, vcpu, kvm, HDFGRTR2_EL2);
+ __deactivate_fgt(hctxt, vcpu, kvm, HDFGWTR2_EL2);
+ __deactivate_fgt(hctxt, vcpu, kvm, HFGITR2_EL2);
+ __deactivate_fgt(hctxt, vcpu, kvm, HFGRTR2_EL2);
+ __deactivate_fgt(hctxt, vcpu, kvm, HFGWTR2_EL2);
if (cpu_has_amu())
__deactivate_fgt(hctxt, vcpu, kvm, HAFGRTR_EL2);
diff --git a/arch/arm64/kvm/nested.c b/arch/arm64/kvm/nested.c
index 9b36218b48de..c208354aa929 100644
--- a/arch/arm64/kvm/nested.c
+++ b/arch/arm64/kvm/nested.c
@@ -1155,6 +1155,52 @@ int kvm_init_nv_sysregs(struct kvm *kvm)
res0 |= HDFGRTR_EL2_nPMSNEVFR_EL1;
set_sysreg_masks(kvm, HDFGRTR_EL2, res0 | HDFGRTR_EL2_RES0, res1);
+ /* HDFG[RW]TR2_EL2 */
+ res0 = res1 = 0;
+ if (!kvm_has_feat_enum(kvm, ID_AA64DFR2_EL1, STEP, IMP))
+ res0 |= HDFGRTR2_EL2_nMDSTEPOP_EL1;
+ if (!kvm_has_feat_enum(kvm, ID_AA64DFR0_EL1, ExtTrcBuff, IMP))
+ res0 |= HDFGRTR2_EL2_nTRBMPAM_EL1;
+ if (!kvm_has_feat(kvm, ID_AA64DFR1_EL1, ITE, IMP))
+ res0 |= HDFGRTR2_EL2_nTRCITECR_EL1;
+ if (!kvm_has_feat_enum(kvm, ID_AA64DFR0_EL1, PMSVer, V1P4))
+ res0 |= HDFGRTR2_EL2_nPMSDSFR_EL1;
+ if (!kvm_has_feat(kvm, ID_AA64DFR1_EL1, SPMU, IMP))
+ res0 |= (HDFGRTR2_EL2_nSPMDEVAFF_EL1 | HDFGRTR2_EL2_nSPMID |
+ HDFGRTR2_EL2_nSPMSCR_EL1 | HDFGRTR2_EL2_nSPMACCESSR_EL1 |
+ HDFGRTR2_EL2_nSPMCR_EL0 | HDFGRTR2_EL2_nSPMOVS |
+ HDFGRTR2_EL2_nSPMINTEN | HDFGRTR2_EL2_nSPMCNTEN |
+ HDFGRTR2_EL2_nSPMSELR_EL0 | HDFGRTR2_EL2_nSPMEVTYPERn_EL0 |
+ HDFGRTR2_EL2_nSPMEVCNTRn_EL0);
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, PMSS, IMP))
+ res0 |= (HDFGRTR2_EL2_nPMSSCR_EL1 | HDFGRTR2_EL2_nPMSSDATA);
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, DebugVer, V8P9))
+ res0 |= HDFGRTR2_EL2_nMDSELR_EL1;
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, PMUVer, V3P9))
+ res0 |= HDFGRTR2_EL2_nPMUACR_EL1;
+ if (!kvm_has_feat(kvm, ID_AA64DFR1_EL1, PMICNTR, IMP))
+ res0 |= (HDFGRTR2_EL2_nPMICFILTR_EL0 | HDFGRTR2_EL2_nPMICNTR_EL0);
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, SEBEP, IMP))
+ res0 |= HDFGRTR2_EL2_nPMIAR_EL1;
+ if (!kvm_has_feat(kvm, ID_AA64DFR1_EL1, EBEP, IMP) &&
+ !kvm_has_feat(kvm, ID_AA64DFR0_EL1, PMSS, IMP))
+ res0 |= HDFGRTR2_EL2_nPMECR_EL1;
+ set_sysreg_masks(kvm, HDFGRTR2_EL2, res0 | HDFGRTR2_EL2_RES0, res1 | HDFGRTR2_EL2_RES1);
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, PMUVer, V3P9))
+ res0 |= HDFGWTR2_EL2_nPMZR_EL0;
+ set_sysreg_masks(kvm, HDFGWTR2_EL2, res0 | HDFGWTR2_EL2_RES0, res1 | HDFGWTR2_EL2_RES1);
+
+ /* HFG[R|W]TR2_EL2 */
+ res0 = res1 = 0;
+ if (!kvm_has_feat_enum(kvm, ID_AA64PFR1_EL1, THE, IMP))
+ res0 |= HFGRTR2_EL2_nRCWSMASK_EL1;
+ if (!kvm_has_feat_enum(kvm, ID_AA64PFR0_EL1, RAS, V2))
+ res0 |= HFGRTR2_EL2_nERXGSR_EL1;
+ if (!kvm_has_feat_enum(kvm, ID_AA64PFR1_EL1, PFAR, IMP))
+ res0 |= HFGRTR2_EL2_nPFAR_EL1;
+ set_sysreg_masks(kvm, HFGRTR2_EL2, res0 | HFGRTR2_EL2_RES0, res1 | HFGRTR2_EL2_RES1);
+ set_sysreg_masks(kvm, HFGWTR2_EL2, res0 | HFGWTR2_EL2_RES0, res1 | HFGWTR2_EL2_RES1);
+
/* Reuse the bits from the read-side and add the write-specific stuff */
if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, PMUVer, IMP))
res0 |= (HDFGWTR_EL2_PMCR_EL0 | HDFGWTR_EL2_PMSWINC_EL0);
@@ -1198,6 +1244,18 @@ int kvm_init_nv_sysregs(struct kvm *kvm)
res0 |= HFGITR_EL2_ATS1E1A;
set_sysreg_masks(kvm, HFGITR_EL2, res0, res1);
+ /* HFGITR2_EL2 */
+ res0 = HFGITR2_EL2_RES0;
+ res1 = HFGITR2_EL2_RES1;
+ if (!kvm_has_feat_enum(kvm, ID_AA64MMFR4_EL1, PoPS, IMP))
+ res0 |= HFGITR2_EL2_nDCCIVAPS;
+
+ if (!kvm_has_feat_enum(kvm, ID_AA64DFR0_EL1, TraceBuffer, TRBE_V1P1))
+ res0 |= HFGITR2_EL2_TSBCSYNC;
+
+ set_sysreg_masks(kvm, HFGITR2_EL2, res0 | HFGITR2_EL2_RES0, res1 | HFGITR2_EL2_RES1);
+ set_sysreg_masks(kvm, HFGITR2_EL2, res0 | HFGITR2_EL2_RES0, res1 | HFGITR2_EL2_RES1);
+
/* HAFGRTR_EL2 - not a lot to see here */
res0 = HAFGRTR_EL2_RES0;
res1 = HAFGRTR_EL2_RES1;
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index c9e0e9322bd3..b6d34023729c 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -4977,6 +4977,71 @@ void kvm_calculate_traps(struct kvm_vcpu *vcpu)
kvm->arch.fgu[HAFGRTR_GROUP] |= ~(HAFGRTR_EL2_RES0 |
HAFGRTR_EL2_RES1);
+ if (!kvm_has_feat_enum(kvm, ID_AA64DFR2_EL1, STEP, IMP))
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nMDSTEPOP_EL1;
+
+ if (!kvm_has_feat_enum(kvm, ID_AA64DFR0_EL1, ExtTrcBuff, IMP))
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nTRBMPAM_EL1;
+
+ if (!kvm_has_feat(kvm, ID_AA64DFR1_EL1, ITE, IMP))
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nTRCITECR_EL1;
+
+ if (!kvm_has_feat_enum(kvm, ID_AA64DFR0_EL1, PMSVer, V1P4))
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nPMSDSFR_EL1;
+
+ if (!kvm_has_feat(kvm, ID_AA64DFR1_EL1, SPMU, IMP))
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nSPMDEVAFF_EL1 |
+ HDFGRTR2_EL2_nSPMID |
+ HDFGRTR2_EL2_nSPMSCR_EL1 |
+ HDFGRTR2_EL2_nSPMACCESSR_EL1 |
+ HDFGRTR2_EL2_nSPMCR_EL0 |
+ HDFGRTR2_EL2_nSPMOVS |
+ HDFGRTR2_EL2_nSPMINTEN |
+ HDFGRTR2_EL2_nSPMCNTEN |
+ HDFGRTR2_EL2_nSPMSELR_EL0 |
+ HDFGRTR2_EL2_nSPMEVTYPERn_EL0 |
+ HDFGRTR2_EL2_nSPMEVCNTRn_EL0;
+
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, PMSS, IMP)) {
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nPMSSCR_EL1;
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nPMSSDATA;
+ }
+
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, DebugVer, V8P9))
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nMDSELR_EL1;
+
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, PMUVer, V3P9)) {
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nPMUACR_EL1;
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGWTR2_EL2_nPMZR_EL0;
+ }
+
+ if (!kvm_has_feat(kvm, ID_AA64DFR1_EL1, PMICNTR, IMP)) {
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nPMICFILTR_EL0;
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nPMICNTR_EL0;
+ }
+
+ if (!kvm_has_feat(kvm, ID_AA64DFR0_EL1, SEBEP, IMP))
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nPMIAR_EL1;
+
+ if (!kvm_has_feat(kvm, ID_AA64DFR1_EL1, EBEP, IMP) &&
+ !kvm_has_feat(kvm, ID_AA64DFR0_EL1, PMSS, IMP))
+ kvm->arch.fgu[HDFGRTR2_GROUP] |= HDFGRTR2_EL2_nPMECR_EL1;
+
+ if (!kvm_has_feat_enum(kvm, ID_AA64PFR1_EL1, THE, IMP))
+ kvm->arch.fgu[HFGRTR2_GROUP] |= HFGRTR2_EL2_nRCWSMASK_EL1;
+
+ if (!kvm_has_feat_enum(kvm, ID_AA64PFR0_EL1, RAS, V2))
+ kvm->arch.fgu[HFGRTR2_GROUP] |= HFGRTR2_EL2_nERXGSR_EL1;
+
+ if (!kvm_has_feat_enum(kvm, ID_AA64PFR1_EL1, PFAR, IMP))
+ kvm->arch.fgu[HFGRTR2_GROUP] |= HFGRTR2_EL2_nPFAR_EL1;
+
+ if (!kvm_has_feat_enum(kvm, ID_AA64MMFR4_EL1, PoPS, IMP))
+ kvm->arch.fgu[HFGITR2_GROUP] |= HFGITR2_EL2_nDCCIVAPS;
+
+ if (!kvm_has_feat_enum(kvm, ID_AA64DFR0_EL1, TraceBuffer, TRBE_V1P1))
+ kvm->arch.fgu[HFGITR2_GROUP] |= HFGITR2_EL2_TSBCSYNC;
+
set_bit(KVM_ARCH_FLAG_FGU_INITIALIZED, &kvm->arch.flags);
out:
mutex_unlock(&kvm->arch.config_lock);
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* [PATCH V2 46/46] KVM: arm64: nv: Add trap forwarding for FEAT_FGT2 described registers
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
` (44 preceding siblings ...)
2024-12-10 5:53 ` [PATCH V2 45/46] KVM: arm64: nv: Add FEAT_FGT2 registers based FGU handling Anshuman Khandual
@ 2024-12-10 5:53 ` Anshuman Khandual
2024-12-10 9:05 ` Marc Zyngier
45 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-10 5:53 UTC (permalink / raw)
To: linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Anshuman Khandual, Oliver Upton, James Morse,
Suzuki K Poulose, Catalin Marinas, Will Deacon, Mark Brown
Describe remaining MDCR_EL2 register, and associate that with all FEAT_FGT2
exposed system registers it allows to trap.
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: James Morse <james.morse@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.linux.dev
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
Changes in V2:
- Dropped check_cntr_accessible_N and CGT_CNTR_ACCESSIBLE_N constructs
- SYS_PMEVCNTSVR_EL1(N) access traps have been forwarded to CGT_MDCR_HPMN
- Updated check_mdcr_hpmn() to handle SYS_PMEVCNTSVR_EL1(N) registers
- Changed behaviour as BEHAVE_FORWARD_RW for CGT_MDCR_EnSPM
arch/arm64/include/asm/kvm_host.h | 2 +
arch/arm64/kvm/emulate-nested.c | 158 ++++++++++++++++++++++++++++++
2 files changed, 160 insertions(+)
diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index c80c07be3358..4cdce62642d1 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -441,6 +441,7 @@ enum vcpu_sysreg {
PMINTENSET_EL1, /* Interrupt Enable Set Register */
PMOVSSET_EL0, /* Overflow Flag Status Set Register */
PMUSERENR_EL0, /* User Enable Register */
+ SPMSELR_EL0, /* System PMU Select Register */
/* Pointer Authentication Registers in a strict increasing order. */
APIAKEYLO_EL1,
@@ -501,6 +502,7 @@ enum vcpu_sysreg {
CNTHP_CVAL_EL2,
CNTHV_CTL_EL2,
CNTHV_CVAL_EL2,
+ SPMACCESSR_EL2, /* System PMU Access Register */
/* Anything from this can be RES0/RES1 sanitised */
MARKER(__SANITISED_REG_START__),
diff --git a/arch/arm64/kvm/emulate-nested.c b/arch/arm64/kvm/emulate-nested.c
index 6c63cbfc11ea..c7d6d2034f27 100644
--- a/arch/arm64/kvm/emulate-nested.c
+++ b/arch/arm64/kvm/emulate-nested.c
@@ -79,6 +79,7 @@ enum cgt_group_id {
CGT_MDCR_TDRA,
CGT_MDCR_E2PB,
CGT_MDCR_TPMS,
+ CGT_MDCR_EnSPM,
CGT_MDCR_TTRF,
CGT_MDCR_E2TB,
CGT_MDCR_TDCC,
@@ -125,6 +126,7 @@ enum cgt_group_id {
CGT_CNTHCTL_EL1PCTEN = __COMPLEX_CONDITIONS__,
CGT_CNTHCTL_EL1PTEN,
+ CGT_SPMSEL_SPMACCESS,
CGT_CPTR_TTA,
CGT_MDCR_HPMN,
@@ -351,6 +353,12 @@ static const struct trap_bits coarse_trap_bits[] = {
.mask = MDCR_EL2_TPMS,
.behaviour = BEHAVE_FORWARD_RW,
},
+ [CGT_MDCR_EnSPM] = {
+ .index = MDCR_EL2,
+ .value = MDCR_EL2_EnSPM,
+ .mask = MDCR_EL2_EnSPM,
+ .behaviour = BEHAVE_FORWARD_RW,
+ },
[CGT_MDCR_TTRF] = {
.index = MDCR_EL2,
.value = MDCR_EL2_TTRF,
@@ -509,6 +517,7 @@ static enum trap_behaviour check_mdcr_hpmn(struct kvm_vcpu *vcpu)
switch (sysreg) {
case SYS_PMEVTYPERn_EL0(0) ... SYS_PMEVTYPERn_EL0(30):
case SYS_PMEVCNTRn_EL0(0) ... SYS_PMEVCNTRn_EL0(30):
+ case SYS_PMEVCNTSVR_EL1(0) ... SYS_PMEVCNTSVR_EL1(30):
idx = (sys_reg_CRm(sysreg) & 0x3) << 3 | sys_reg_Op2(sysreg);
break;
case SYS_PMXEVTYPER_EL0:
@@ -528,6 +537,22 @@ static enum trap_behaviour check_mdcr_hpmn(struct kvm_vcpu *vcpu)
return BEHAVE_HANDLE_LOCALLY;
}
+static enum trap_behaviour check_spmsel_spmaccess(struct kvm_vcpu *vcpu)
+{
+ u64 spmaccessr_el2, spmselr_el2;
+ int syspmusel;
+
+ if (__vcpu_sys_reg(vcpu, MDCR_EL2) & MDCR_EL2_EnSPM) {
+ spmselr_el2 = __vcpu_sys_reg(vcpu, SPMSELR_EL0);
+ spmaccessr_el2 = __vcpu_sys_reg(vcpu, SPMACCESSR_EL2);
+ syspmusel = FIELD_GET(SPMSELR_EL0_SYSPMUSEL_MASK, spmselr_el2);
+
+ if (((spmaccessr_el2 >> (syspmusel * 2)) & 0x3) == 0x0)
+ return BEHAVE_FORWARD_RW;
+ }
+ return BEHAVE_HANDLE_LOCALLY;
+}
+
#define CCC(id, fn) \
[id - __COMPLEX_CONDITIONS__] = fn
@@ -536,6 +561,7 @@ static const complex_condition_check ccc[] = {
CCC(CGT_CNTHCTL_EL1PTEN, check_cnthctl_el1pten),
CCC(CGT_CPTR_TTA, check_cptr_tta),
CCC(CGT_MDCR_HPMN, check_mdcr_hpmn),
+ CCC(CGT_SPMSEL_SPMACCESS, check_spmsel_spmaccess),
};
/*
@@ -947,6 +973,7 @@ static const struct encoding_to_trap_config encoding_to_cgt[] __initconst = {
SR_TRAP(SYS_ERXPFGF_EL1, CGT_HCR_nFIEN),
SR_TRAP(SYS_ERXPFGCTL_EL1, CGT_HCR_nFIEN),
SR_TRAP(SYS_ERXPFGCDN_EL1, CGT_HCR_nFIEN),
+
SR_TRAP(SYS_PMCR_EL0, CGT_MDCR_TPM_TPMCR),
SR_TRAP(SYS_PMCNTENSET_EL0, CGT_MDCR_TPM),
SR_TRAP(SYS_PMCNTENCLR_EL0, CGT_MDCR_TPM),
@@ -1120,6 +1147,7 @@ static const struct encoding_to_trap_config encoding_to_cgt[] __initconst = {
SR_TRAP(SYS_PMSIRR_EL1, CGT_MDCR_TPMS),
SR_TRAP(SYS_PMSLATFR_EL1, CGT_MDCR_TPMS),
SR_TRAP(SYS_PMSNEVFR_EL1, CGT_MDCR_TPMS),
+
SR_TRAP(SYS_TRFCR_EL1, CGT_MDCR_TTRF),
SR_TRAP(SYS_TRBBASER_EL1, CGT_MDCR_E2TB),
SR_TRAP(SYS_TRBLIMITR_EL1, CGT_MDCR_E2TB),
@@ -1127,6 +1155,136 @@ static const struct encoding_to_trap_config encoding_to_cgt[] __initconst = {
SR_TRAP(SYS_TRBPTR_EL1, CGT_MDCR_E2TB),
SR_TRAP(SYS_TRBSR_EL1, CGT_MDCR_E2TB),
SR_TRAP(SYS_TRBTRG_EL1, CGT_MDCR_E2TB),
+
+ SR_TRAP(SYS_MDSTEPOP_EL1, CGT_MDCR_TDE_TDA),
+ SR_TRAP(SYS_TRBMPAM_EL1, CGT_MDCR_E2TB),
+ SR_TRAP(SYS_PMSDSFR_EL1, CGT_MDCR_TPMS),
+
+ SR_TRAP(SYS_SPMDEVAFF_EL1, CGT_MDCR_EnSPM),
+ SR_TRAP(SYS_SPMCGCR0_EL1, CGT_MDCR_EnSPM),
+ SR_TRAP(SYS_SPMCGCR1_EL1, CGT_MDCR_EnSPM),
+ SR_TRAP(SYS_SPMIIDR_EL1, CGT_MDCR_EnSPM),
+ SR_TRAP(SYS_SPMDEVARCH_EL1, CGT_MDCR_EnSPM),
+ SR_TRAP(SYS_SPMCFGR_EL1, CGT_MDCR_EnSPM),
+ SR_TRAP(SYS_SPMSCR_EL1, CGT_MDCR_EnSPM),
+ SR_TRAP(SYS_SPMACCESSR_EL1, CGT_MDCR_EnSPM),
+ SR_TRAP(SYS_SPMCR_EL0, CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMOVSCLR_EL0, CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMOVSSET_EL0, CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMINTENCLR_EL1, CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMINTENSET_EL1, CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMCNTENCLR_EL0, CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMCNTENSET_EL0, CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMSELR_EL0, CGT_MDCR_EnSPM),
+
+ SR_TRAP(SYS_SPMEVTYPER_EL0(0), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(1), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(2), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(3), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(4), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(5), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(6), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(7), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(8), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(9), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(10), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(11), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(12), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(13), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(14), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVTYPER_EL0(15), CGT_SPMSEL_SPMACCESS),
+
+ SR_TRAP(SYS_SPMEVFILTR_EL0(0), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(1), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(2), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(3), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(4), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(5), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(6), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(7), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(8), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(9), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(10), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(11), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(12), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(13), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(14), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILTR_EL0(15), CGT_SPMSEL_SPMACCESS),
+
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(0), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(1), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(2), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(3), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(4), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(5), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(6), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(7), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(8), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(9), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(10), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(11), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(12), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(13), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(14), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVFILT2R_EL0(15), CGT_SPMSEL_SPMACCESS),
+
+ SR_TRAP(SYS_SPMEVCNTR_EL0(0), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(1), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(2), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(3), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(4), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(5), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(6), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(7), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(8), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(9), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(10), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(11), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(12), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(13), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(14), CGT_SPMSEL_SPMACCESS),
+ SR_TRAP(SYS_SPMEVCNTR_EL0(15), CGT_SPMSEL_SPMACCESS),
+
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(0), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(1), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(2), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(3), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(4), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(5), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(6), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(7), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(8), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(9), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(10), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(11), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(12), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(13), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(14), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(15), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(16), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(17), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(18), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(19), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(20), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(21), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(22), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(23), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(24), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(25), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(26), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(27), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(28), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(29), CGT_MDCR_HPMN),
+ SR_TRAP(SYS_PMEVCNTSVR_EL1(30), CGT_MDCR_HPMN),
+
+ SR_TRAP(SYS_MDSELR_EL1, CGT_MDCR_TDE_TDA),
+ SR_TRAP(SYS_PMUACR_EL1, CGT_MDCR_TPM),
+ SR_TRAP(SYS_PMICFILTR_EL0, CGT_MDCR_TPM),
+ SR_TRAP(SYS_PMICNTR_EL0, CGT_MDCR_TPM),
+ SR_TRAP(SYS_PMIAR_EL1, CGT_MDCR_TPM),
+ SR_TRAP(SYS_PMECR_EL1, CGT_MDCR_TPM),
+ SR_TRAP(SYS_PMZR_EL0, CGT_MDCR_TPM),
+
SR_TRAP(SYS_CPACR_EL1, CGT_CPTR_TCPAC),
SR_TRAP(SYS_AMUSERENR_EL0, CGT_CPTR_TAM),
SR_TRAP(SYS_AMCFGR_EL0, CGT_CPTR_TAM),
--
2.25.1
^ permalink raw reply related [flat|nested] 85+ messages in thread
* Re: [PATCH V2 46/46] KVM: arm64: nv: Add trap forwarding for FEAT_FGT2 described registers
2024-12-10 5:53 ` [PATCH V2 46/46] KVM: arm64: nv: Add trap forwarding for FEAT_FGT2 described registers Anshuman Khandual
@ 2024-12-10 9:05 ` Marc Zyngier
2024-12-18 10:37 ` Anshuman Khandual
0 siblings, 1 reply; 85+ messages in thread
From: Marc Zyngier @ 2024-12-10 9:05 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon, Mark Brown
On Tue, 10 Dec 2024 05:53:11 +0000,
Anshuman Khandual <anshuman.khandual@arm.com> wrote:
>
> Describe remaining MDCR_EL2 register, and associate that with all FEAT_FGT2
> exposed system registers it allows to trap.
MDCR_EL2 register *bits*? How is that related to FGT2 at all?
>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Oliver Upton <oliver.upton@linux.dev>
> Cc: James Morse <james.morse@arm.com>
> Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: kvmarm@lists.linux.dev
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> Changes in V2:
>
> - Dropped check_cntr_accessible_N and CGT_CNTR_ACCESSIBLE_N constructs
> - SYS_PMEVCNTSVR_EL1(N) access traps have been forwarded to CGT_MDCR_HPMN
> - Updated check_mdcr_hpmn() to handle SYS_PMEVCNTSVR_EL1(N) registers
> - Changed behaviour as BEHAVE_FORWARD_RW for CGT_MDCR_EnSPM
>
> arch/arm64/include/asm/kvm_host.h | 2 +
> arch/arm64/kvm/emulate-nested.c | 158 ++++++++++++++++++++++++++++++
> 2 files changed, 160 insertions(+)
>
> diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
> index c80c07be3358..4cdce62642d1 100644
> --- a/arch/arm64/include/asm/kvm_host.h
> +++ b/arch/arm64/include/asm/kvm_host.h
> @@ -441,6 +441,7 @@ enum vcpu_sysreg {
> PMINTENSET_EL1, /* Interrupt Enable Set Register */
> PMOVSSET_EL0, /* Overflow Flag Status Set Register */
> PMUSERENR_EL0, /* User Enable Register */
> + SPMSELR_EL0, /* System PMU Select Register */
How could a system PMU be relevant to a VM? What is the point of
bloating the vcpu for something that we will hopefully *never* make
visible to guests?
>
> /* Pointer Authentication Registers in a strict increasing order. */
> APIAKEYLO_EL1,
> @@ -501,6 +502,7 @@ enum vcpu_sysreg {
> CNTHP_CVAL_EL2,
> CNTHV_CTL_EL2,
> CNTHV_CVAL_EL2,
> + SPMACCESSR_EL2, /* System PMU Access Register */
Same here. It is pretty striking that these registers are never
saved/restored or handled as traps, which is a good indication that
this is pretty pointless.
>
> /* Anything from this can be RES0/RES1 sanitised */
> MARKER(__SANITISED_REG_START__),
> diff --git a/arch/arm64/kvm/emulate-nested.c b/arch/arm64/kvm/emulate-nested.c
> index 6c63cbfc11ea..c7d6d2034f27 100644
> --- a/arch/arm64/kvm/emulate-nested.c
> +++ b/arch/arm64/kvm/emulate-nested.c
> @@ -79,6 +79,7 @@ enum cgt_group_id {
> CGT_MDCR_TDRA,
> CGT_MDCR_E2PB,
> CGT_MDCR_TPMS,
> + CGT_MDCR_EnSPM,
> CGT_MDCR_TTRF,
> CGT_MDCR_E2TB,
> CGT_MDCR_TDCC,
> @@ -125,6 +126,7 @@ enum cgt_group_id {
> CGT_CNTHCTL_EL1PCTEN = __COMPLEX_CONDITIONS__,
> CGT_CNTHCTL_EL1PTEN,
>
> + CGT_SPMSEL_SPMACCESS,
> CGT_CPTR_TTA,
> CGT_MDCR_HPMN,
>
> @@ -351,6 +353,12 @@ static const struct trap_bits coarse_trap_bits[] = {
> .mask = MDCR_EL2_TPMS,
> .behaviour = BEHAVE_FORWARD_RW,
> },
> + [CGT_MDCR_EnSPM] = {
> + .index = MDCR_EL2,
> + .value = MDCR_EL2_EnSPM,
> + .mask = MDCR_EL2_EnSPM,
> + .behaviour = BEHAVE_FORWARD_RW,
> + },
> [CGT_MDCR_TTRF] = {
> .index = MDCR_EL2,
> .value = MDCR_EL2_TTRF,
> @@ -509,6 +517,7 @@ static enum trap_behaviour check_mdcr_hpmn(struct kvm_vcpu *vcpu)
> switch (sysreg) {
> case SYS_PMEVTYPERn_EL0(0) ... SYS_PMEVTYPERn_EL0(30):
> case SYS_PMEVCNTRn_EL0(0) ... SYS_PMEVCNTRn_EL0(30):
> + case SYS_PMEVCNTSVR_EL1(0) ... SYS_PMEVCNTSVR_EL1(30):
> idx = (sys_reg_CRm(sysreg) & 0x3) << 3 | sys_reg_Op2(sysreg);
> break;
> case SYS_PMXEVTYPER_EL0:
> @@ -528,6 +537,22 @@ static enum trap_behaviour check_mdcr_hpmn(struct kvm_vcpu *vcpu)
> return BEHAVE_HANDLE_LOCALLY;
> }
>
> +static enum trap_behaviour check_spmsel_spmaccess(struct kvm_vcpu *vcpu)
> +{
> + u64 spmaccessr_el2, spmselr_el2;
> + int syspmusel;
> +
> + if (__vcpu_sys_reg(vcpu, MDCR_EL2) & MDCR_EL2_EnSPM) {
I don't mind the test, but I don't see any sanitising of MDCR_EL2 to
make EnSPM as RES0 when FEAT_SPMU is not implemented, which will be
100% of the cases.
> + spmselr_el2 = __vcpu_sys_reg(vcpu, SPMSELR_EL0);
> + spmaccessr_el2 = __vcpu_sys_reg(vcpu, SPMACCESSR_EL2);
So these two values are *guaranteed* to be zero. At this stage, what
is the point?
> + syspmusel = FIELD_GET(SPMSELR_EL0_SYSPMUSEL_MASK, spmselr_el2);
> +
> + if (((spmaccessr_el2 >> (syspmusel * 2)) & 0x3) == 0x0)
> + return BEHAVE_FORWARD_RW;
What about value 0b01, which causes *writes* to be trapped?
> + }
> + return BEHAVE_HANDLE_LOCALLY;
And then what? How do we handle this locally?
Honestly, short of any additional handling, we would be better off
just injecting an UNDEF back into the guest.
M.
--
Without deviation from the norm, progress is not possible.
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1
2024-12-10 5:52 ` [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1 Anshuman Khandual
@ 2024-12-11 15:48 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-11 15:48 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 245 bytes --]
On Tue, Dec 10, 2024 at 11:22:26AM +0530, Anshuman Khandual wrote:
> This updates ID_AA64MMFR0_EL1.FGT and ID_AA64MMFR0_EL1.PARANGE register
> fields as per the definitions based on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 02/46] arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1
2024-12-10 5:52 ` [PATCH V2 02/46] arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1 Anshuman Khandual
@ 2024-12-11 16:28 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-11 16:28 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 205 bytes --]
On Tue, Dec 10, 2024 at 11:22:27AM +0530, Anshuman Khandual wrote:
> This updates ID_AA64MMFR4_EL1 register as per the definitions based on
> DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 03/46] arm64/sysreg: Update register fields for ID_AA64PFR0_EL1
2024-12-10 5:52 ` [PATCH V2 03/46] arm64/sysreg: Update register fields for ID_AA64PFR0_EL1 Anshuman Khandual
@ 2024-12-16 15:08 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-16 15:08 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 239 bytes --]
On Tue, Dec 10, 2024 at 11:22:28AM +0530, Anshuman Khandual wrote:
> This updates ID_AA64PFR0_EL1.RAS and ID_AA64PFR0_EL1.RME register fields as
> per the definitions based on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1
2024-12-10 5:52 ` [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1 Anshuman Khandual
@ 2024-12-16 15:12 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-16 15:12 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 207 bytes --]
On Tue, Dec 10, 2024 at 11:22:29AM +0530, Anshuman Khandual wrote:
> This adds register fields for TRBIDR_EL1 as per the definitions based
> on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2
2024-12-10 5:52 ` [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2 Anshuman Khandual
@ 2024-12-16 15:17 ` Mark Brown
2024-12-18 15:17 ` Eric Auger
2024-12-18 15:17 ` Eric Auger
2 siblings, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-16 15:17 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 208 bytes --]
On Tue, Dec 10, 2024 at 11:22:32AM +0530, Anshuman Khandual wrote:
> This adds register fields for HFGITR2_EL2 as per the definitions based
> on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 08/46] arm64/sysreg: Add register fields for HFGRTR2_EL2
2024-12-10 5:52 ` [PATCH V2 08/46] arm64/sysreg: Add register fields for HFGRTR2_EL2 Anshuman Khandual
@ 2024-12-16 15:20 ` Mark Brown
2024-12-18 15:19 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-16 15:20 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 208 bytes --]
On Tue, Dec 10, 2024 at 11:22:33AM +0530, Anshuman Khandual wrote:
> This adds register fields for HFGRTR2_EL2 as per the definitions based
> on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 09/46] arm64/sysreg: Add register fields for HFGWTR2_EL2
2024-12-10 5:52 ` [PATCH V2 09/46] arm64/sysreg: Add register fields for HFGWTR2_EL2 Anshuman Khandual
@ 2024-12-16 20:52 ` Mark Brown
2024-12-18 15:22 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-16 20:52 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 208 bytes --]
On Tue, Dec 10, 2024 at 11:22:34AM +0530, Anshuman Khandual wrote:
> This adds register fields for HFGWTR2_EL2 as per the definitions based
> on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 10/46] arm64/sysreg: Add register fields for MDSELR_EL1
2024-12-10 5:52 ` [PATCH V2 10/46] arm64/sysreg: Add register fields for MDSELR_EL1 Anshuman Khandual
@ 2024-12-16 20:57 ` Mark Brown
2024-12-18 15:25 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-16 20:57 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 207 bytes --]
On Tue, Dec 10, 2024 at 11:22:35AM +0530, Anshuman Khandual wrote:
> This adds register fields for MDSELR_EL1 as per the definitions based
> on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 11/46] arm64/sysreg: Add register fields for PMSIDR_EL1
2024-12-10 5:52 ` [PATCH V2 11/46] arm64/sysreg: Add register fields for PMSIDR_EL1 Anshuman Khandual
@ 2024-12-16 21:03 ` Mark Brown
2024-12-18 15:28 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-16 21:03 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 207 bytes --]
On Tue, Dec 10, 2024 at 11:22:36AM +0530, Anshuman Khandual wrote:
> This adds register fields for PMSIDR_EL1 as per the definitions based
> on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 12/46] arm64/sysreg: Add register fields for TRBMPAM_EL1
2024-12-10 5:52 ` [PATCH V2 12/46] arm64/sysreg: Add register fields for TRBMPAM_EL1 Anshuman Khandual
@ 2024-12-16 22:11 ` Mark Brown
2024-12-18 15:30 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-16 22:11 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon
[-- Attachment #1: Type: text/plain, Size: 208 bytes --]
On Tue, Dec 10, 2024 at 11:22:37AM +0530, Anshuman Khandual wrote:
> This adds register fields for TRBMPAM_EL1 as per the definitions based
> on DDI0601 2024-09.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1
2024-12-10 5:52 ` [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1 Anshuman Khandual
@ 2024-12-16 23:15 ` Rob Herring
2024-12-17 4:33 ` Anshuman Khandual
2024-12-17 15:30 ` Mark Brown
0 siblings, 2 replies; 85+ messages in thread
From: Rob Herring @ 2024-12-16 23:15 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon, Mark Brown
On Tue, Dec 10, 2024 at 11:22:43AM +0530, Anshuman Khandual wrote:
> This adds register fields for PMUACR_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/arm64/tools/sysreg | 37 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 37 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 214ad6da1dff..462adb8031ca 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2349,6 +2349,43 @@ Res0 63:5
> Field 4:0 SEL
> EndSysreg
>
> +Sysreg PMUACR_EL1 3 0 9 14 4
I already added this and various other PMUv3.9 registers you've added
here in v6.12 and v6.13. So are you on an old base or the tool allows
multiple definitions? If the latter, that should be fixed.
> +Res0 63:33
> +Field 32 FM
> +Field 31 C
> +Field 30 P30
> +Field 29 P29
> +Field 28 P28
> +Field 27 P27
> +Field 26 P26
> +Field 25 P25
> +Field 24 P24
> +Field 23 P23
> +Field 22 P22
> +Field 21 P21
> +Field 20 P20
> +Field 19 P19
> +Field 18 P18
> +Field 17 P17
> +Field 16 P16
> +Field 15 P15
> +Field 14 P14
> +Field 13 P13
> +Field 12 P12
> +Field 11 P11
> +Field 10 P10
> +Field 9 P9
> +Field 8 P8
> +Field 7 P7
> +Field 6 P6
> +Field 5 P5
> +Field 4 P4
> +Field 3 P3
> +Field 2 P2
> +Field 1 P1
> +Field 0 P0
We're never going to use Pnn defines. This is just useless bloat unless
we're aiming to top amd gpu defines LOC.
Rob
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1
2024-12-16 23:15 ` Rob Herring
@ 2024-12-17 4:33 ` Anshuman Khandual
2024-12-17 15:32 ` Mark Brown
2024-12-17 15:30 ` Mark Brown
1 sibling, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-17 4:33 UTC (permalink / raw)
To: Rob Herring
Cc: linux-kernel, kvmarm, linux-arm-kernel, maz, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon, Mark Brown
On 12/17/24 04:45, Rob Herring wrote:
> On Tue, Dec 10, 2024 at 11:22:43AM +0530, Anshuman Khandual wrote:
>> This adds register fields for PMUACR_EL1 as per the definitions based
>> on DDI0601 2024-09.
>>
>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>> Cc: Will Deacon <will@kernel.org>
>> Cc: Mark Brown <broonie@kernel.org>
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: linux-kernel@vger.kernel.org
>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>> ---
>> arch/arm64/tools/sysreg | 37 +++++++++++++++++++++++++++++++++++++
>> 1 file changed, 37 insertions(+)
>>
>> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
>> index 214ad6da1dff..462adb8031ca 100644
>> --- a/arch/arm64/tools/sysreg
>> +++ b/arch/arm64/tools/sysreg
>> @@ -2349,6 +2349,43 @@ Res0 63:5
>> Field 4:0 SEL
>> EndSysreg
>>
>> +Sysreg PMUACR_EL1 3 0 9 14 4
>
> I already added this and various other PMUv3.9 registers you've added
> here in v6.12 and v6.13. So are you on an old base or the tool allows
> multiple definitions? If the latter, that should be fixed.
This series is based on v6.13-rc1 and as you mentioned PMUACR_EL1 has
already been added into tools sysreg.
Sysreg PMUACR_EL1 3 0 9 14 4
Res0 63:33
Field 32 F0
Field 31 C
Field 30:0 P
EndSysreg
Seems like the tool does allow multiple definitions for a single register.
The generated header (arch/arm64/include/generated/asm/sysreg-defs.h) does
include redundant blocks for the following.
#define REG_PMUACR_EL1 S3_0_C9_C14_4
#define SYS_PMUACR_EL1 sys_reg(3, 0, 9, 14, 4)
#define SYS_PMUACR_EL1_Op0 3
#define SYS_PMUACR_EL1_Op1 0
#define SYS_PMUACR_EL1_CRn 9
#define SYS_PMUACR_EL1_CRm 14
#define SYS_PMUACR_EL1_Op2 4
#define PMUACR_EL1_C GENMASK(31, 31)
#define PMUACR_EL1_C_MASK GENMASK(31, 31)
#define PMUACR_EL1_C_SHIFT 31
#define PMUACR_EL1_C_WIDTH 1
I am wondering how this did not cause any re-definition warning ?
>
>> +Res0 63:33
>> +Field 32 FM
>> +Field 31 C
>> +Field 30 P30
>> +Field 29 P29
>> +Field 28 P28
>> +Field 27 P27
>> +Field 26 P26
>> +Field 25 P25
>> +Field 24 P24
>> +Field 23 P23
>> +Field 22 P22
>> +Field 21 P21
>> +Field 20 P20
>> +Field 19 P19
>> +Field 18 P18
>> +Field 17 P17
>> +Field 16 P16
>> +Field 15 P15
>> +Field 14 P14
>> +Field 13 P13
>> +Field 12 P12
>> +Field 11 P11
>> +Field 10 P10
>> +Field 9 P9
>> +Field 8 P8
>> +Field 7 P7
>> +Field 6 P6
>> +Field 5 P5
>> +Field 4 P4
>> +Field 3 P3
>> +Field 2 P2
>> +Field 1 P1
>> +Field 0 P0
>
> We're never going to use Pnn defines. This is just useless bloat unless
> we're aiming to top amd gpu defines LOC.
Okay, this patch was trying to be cautiously comprehensive. But anyways
PMUACR_EL1 has already been added and hence this is redundant now.
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1
2024-12-16 23:15 ` Rob Herring
2024-12-17 4:33 ` Anshuman Khandual
@ 2024-12-17 15:30 ` Mark Brown
2024-12-17 17:02 ` Rob Herring
1 sibling, 1 reply; 85+ messages in thread
From: Mark Brown @ 2024-12-17 15:30 UTC (permalink / raw)
To: Rob Herring
Cc: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz,
ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon
[-- Attachment #1: Type: text/plain, Size: 620 bytes --]
On Mon, Dec 16, 2024 at 05:15:05PM -0600, Rob Herring wrote:
> On Tue, Dec 10, 2024 at 11:22:43AM +0530, Anshuman Khandual wrote:
> > +Sysreg PMUACR_EL1 3 0 9 14 4
> I already added this and various other PMUv3.9 registers you've added
> here in v6.12 and v6.13. So are you on an old base or the tool allows
> multiple definitions? If the latter, that should be fixed.
The tool is written in awk and hence *really* dumb so it's not going to
notice this, and so long as the resulting definitions are identical the
compiler won't either. It would indeed be nice if the tooling were able
to detect this.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1
2024-12-17 4:33 ` Anshuman Khandual
@ 2024-12-17 15:32 ` Mark Brown
0 siblings, 0 replies; 85+ messages in thread
From: Mark Brown @ 2024-12-17 15:32 UTC (permalink / raw)
To: Anshuman Khandual
Cc: Rob Herring, linux-kernel, kvmarm, linux-arm-kernel, maz,
ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon
[-- Attachment #1: Type: text/plain, Size: 245 bytes --]
On Tue, Dec 17, 2024 at 10:03:10AM +0530, Anshuman Khandual wrote:
> I am wondering how this did not cause any re-definition warning ?
If the redefinition is identical to the one that was already there then
the compiler will usually not warn.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1
2024-12-17 15:30 ` Mark Brown
@ 2024-12-17 17:02 ` Rob Herring
0 siblings, 0 replies; 85+ messages in thread
From: Rob Herring @ 2024-12-17 17:02 UTC (permalink / raw)
To: Mark Brown
Cc: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz,
ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon
On Tue, Dec 17, 2024 at 9:30 AM Mark Brown <broonie@kernel.org> wrote:
>
> On Mon, Dec 16, 2024 at 05:15:05PM -0600, Rob Herring wrote:
> > On Tue, Dec 10, 2024 at 11:22:43AM +0530, Anshuman Khandual wrote:
>
> > > +Sysreg PMUACR_EL1 3 0 9 14 4
>
> > I already added this and various other PMUv3.9 registers you've added
> > here in v6.12 and v6.13. So are you on an old base or the tool allows
> > multiple definitions? If the latter, that should be fixed.
>
> The tool is written in awk and hence *really* dumb so it's not going to
> notice this, and so long as the resulting definitions are identical the
> compiler won't either. It would indeed be nice if the tooling were able
> to detect this.
Something like this should work:
git grep -h '^Sysreg\s' arch/arm64/tools/sysreg | tr -s ' \t' ' ' |
sort | uniq -c | sort -n | grep -E '^\s+([2-9]|1[0-9])'
No duplicates currently.
Rob
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 46/46] KVM: arm64: nv: Add trap forwarding for FEAT_FGT2 described registers
2024-12-10 9:05 ` Marc Zyngier
@ 2024-12-18 10:37 ` Anshuman Khandual
0 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-18 10:37 UTC (permalink / raw)
To: Marc Zyngier
Cc: linux-kernel, kvmarm, linux-arm-kernel, ryan.roberts,
Oliver Upton, James Morse, Suzuki K Poulose, Catalin Marinas,
Will Deacon, Mark Brown
On 12/10/24 14:35, Marc Zyngier wrote:
> On Tue, 10 Dec 2024 05:53:11 +0000,
> Anshuman Khandual <anshuman.khandual@arm.com> wrote:
>>
>> Describe remaining MDCR_EL2 register, and associate that with all FEAT_FGT2
>> exposed system registers it allows to trap.
>
> MDCR_EL2 register *bits*? How is that related to FGT2 at all?
>
>>
>> Cc: Marc Zyngier <maz@kernel.org>
>> Cc: Oliver Upton <oliver.upton@linux.dev>
>> Cc: James Morse <james.morse@arm.com>
>> Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: kvmarm@lists.linux.dev
>> Cc: linux-kernel@vger.kernel.org
>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>> ---
>> Changes in V2:
>>
>> - Dropped check_cntr_accessible_N and CGT_CNTR_ACCESSIBLE_N constructs
>> - SYS_PMEVCNTSVR_EL1(N) access traps have been forwarded to CGT_MDCR_HPMN
>> - Updated check_mdcr_hpmn() to handle SYS_PMEVCNTSVR_EL1(N) registers
>> - Changed behaviour as BEHAVE_FORWARD_RW for CGT_MDCR_EnSPM
>>
>> arch/arm64/include/asm/kvm_host.h | 2 +
>> arch/arm64/kvm/emulate-nested.c | 158 ++++++++++++++++++++++++++++++
>> 2 files changed, 160 insertions(+)
>>
>> diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
>> index c80c07be3358..4cdce62642d1 100644
>> --- a/arch/arm64/include/asm/kvm_host.h
>> +++ b/arch/arm64/include/asm/kvm_host.h
>> @@ -441,6 +441,7 @@ enum vcpu_sysreg {
>> PMINTENSET_EL1, /* Interrupt Enable Set Register */
>> PMOVSSET_EL0, /* Overflow Flag Status Set Register */
>> PMUSERENR_EL0, /* User Enable Register */
>> + SPMSELR_EL0, /* System PMU Select Register */
>
> How could a system PMU be relevant to a VM? What is the point of
> bloating the vcpu for something that we will hopefully *never* make
> visible to guests?
>
>>
>> /* Pointer Authentication Registers in a strict increasing order. */
>> APIAKEYLO_EL1,
>> @@ -501,6 +502,7 @@ enum vcpu_sysreg {
>> CNTHP_CVAL_EL2,
>> CNTHV_CTL_EL2,
>> CNTHV_CVAL_EL2,
>> + SPMACCESSR_EL2, /* System PMU Access Register */
>
> Same here. It is pretty striking that these registers are never
> saved/restored or handled as traps, which is a good indication that
> this is pretty pointless.
>
>>
>> /* Anything from this can be RES0/RES1 sanitised */
>> MARKER(__SANITISED_REG_START__),
>> diff --git a/arch/arm64/kvm/emulate-nested.c b/arch/arm64/kvm/emulate-nested.c
>> index 6c63cbfc11ea..c7d6d2034f27 100644
>> --- a/arch/arm64/kvm/emulate-nested.c
>> +++ b/arch/arm64/kvm/emulate-nested.c
>> @@ -79,6 +79,7 @@ enum cgt_group_id {
>> CGT_MDCR_TDRA,
>> CGT_MDCR_E2PB,
>> CGT_MDCR_TPMS,
>> + CGT_MDCR_EnSPM,
>> CGT_MDCR_TTRF,
>> CGT_MDCR_E2TB,
>> CGT_MDCR_TDCC,
>> @@ -125,6 +126,7 @@ enum cgt_group_id {
>> CGT_CNTHCTL_EL1PCTEN = __COMPLEX_CONDITIONS__,
>> CGT_CNTHCTL_EL1PTEN,
>>
>> + CGT_SPMSEL_SPMACCESS,
>> CGT_CPTR_TTA,
>> CGT_MDCR_HPMN,
>>
>> @@ -351,6 +353,12 @@ static const struct trap_bits coarse_trap_bits[] = {
>> .mask = MDCR_EL2_TPMS,
>> .behaviour = BEHAVE_FORWARD_RW,
>> },
>> + [CGT_MDCR_EnSPM] = {
>> + .index = MDCR_EL2,
>> + .value = MDCR_EL2_EnSPM,
>> + .mask = MDCR_EL2_EnSPM,
>> + .behaviour = BEHAVE_FORWARD_RW,
>> + },
>> [CGT_MDCR_TTRF] = {
>> .index = MDCR_EL2,
>> .value = MDCR_EL2_TTRF,
>> @@ -509,6 +517,7 @@ static enum trap_behaviour check_mdcr_hpmn(struct kvm_vcpu *vcpu)
>> switch (sysreg) {
>> case SYS_PMEVTYPERn_EL0(0) ... SYS_PMEVTYPERn_EL0(30):
>> case SYS_PMEVCNTRn_EL0(0) ... SYS_PMEVCNTRn_EL0(30):
>> + case SYS_PMEVCNTSVR_EL1(0) ... SYS_PMEVCNTSVR_EL1(30):
>> idx = (sys_reg_CRm(sysreg) & 0x3) << 3 | sys_reg_Op2(sysreg);
>> break;
>> case SYS_PMXEVTYPER_EL0:
>> @@ -528,6 +537,22 @@ static enum trap_behaviour check_mdcr_hpmn(struct kvm_vcpu *vcpu)
>> return BEHAVE_HANDLE_LOCALLY;
>> }
>>
>> +static enum trap_behaviour check_spmsel_spmaccess(struct kvm_vcpu *vcpu)
>> +{
>> + u64 spmaccessr_el2, spmselr_el2;
>> + int syspmusel;
>> +
>> + if (__vcpu_sys_reg(vcpu, MDCR_EL2) & MDCR_EL2_EnSPM) {
>
> I don't mind the test, but I don't see any sanitising of MDCR_EL2 to
> make EnSPM as RES0 when FEAT_SPMU is not implemented, which will be
> 100% of the cases.
>
>> + spmselr_el2 = __vcpu_sys_reg(vcpu, SPMSELR_EL0);
>> + spmaccessr_el2 = __vcpu_sys_reg(vcpu, SPMACCESSR_EL2);
>
> So these two values are *guaranteed* to be zero. At this stage, what
> is the point?
>
>> + syspmusel = FIELD_GET(SPMSELR_EL0_SYSPMUSEL_MASK, spmselr_el2);
>> +
>> + if (((spmaccessr_el2 >> (syspmusel * 2)) & 0x3) == 0x0)
>> + return BEHAVE_FORWARD_RW;
>
> What about value 0b01, which causes *writes* to be trapped?
>
>> + }
>> + return BEHAVE_HANDLE_LOCALLY;
>
> And then what? How do we handle this locally?
>
> Honestly, short of any additional handling, we would be better off
> just injecting an UNDEF back into the guest.
>
> M.
>
Hello Marc,
Thanks for your review and apologies for the delayed response. I am still
processing some of your review comments, and need some more time to fully
understand them in the given context. I will get back to you after doing
some more reading.
- Anshuman
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1
2024-12-10 5:52 ` [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1 Anshuman Khandual
2024-12-16 15:12 ` Mark Brown
@ 2024-12-18 14:40 ` Eric Auger
2024-12-19 2:48 ` Anshuman Khandual
1 sibling, 1 reply; 85+ messages in thread
From: Eric Auger @ 2024-12-18 14:40 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
Hi Anshuman
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for TRBIDR_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/arm64/tools/sysreg | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 59351931d907..10b1a0998d99 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -3295,13 +3295,24 @@ Field 31:0 TRG
> EndSysreg
>
> Sysreg TRBIDR_EL1 3 0 9 11 7
> -Res0 63:12
> +Res0 63:48
> +Field 47:32 MaxBuffSize
> +Res0 31:16
> +UnsignedEnum 15:12 MPAM
> + 0b0000 NI
> + 0b0001 PMG
Out of curiosity how did you choose the PMG terminology?
I see "MPAM implemented by the Trace Buffer Unit, using default PARTID
and PMG values in External mode". Wouldn't be TBU more meaningful?
Eric
> + 0b0010 IMP
> +EndEnum
> Enum 11:8 EA
> 0b0000 NON_DESC
> 0b0001 IGNORE
> 0b0010 SERROR
> EndEnum
> -Res0 7:6
> +UnsignedEnum 7:6 AddrMode
> + 0b00 VIRT_PHYS
> + 0b01 VIRT_ONLY
> + 0b10 PHYS_ONLY
> +EndEnum
> Field 5 F
> Field 4 P
> Field 3:0 Align
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 03/46] arm64/sysreg: Update register fields for ID_AA64PFR0_EL1
2024-12-10 5:52 ` [PATCH V2 03/46] arm64/sysreg: Update register fields for ID_AA64PFR0_EL1 Anshuman Khandual
2024-12-16 15:08 ` Mark Brown
@ 2024-12-18 14:40 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 14:40 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This updates ID_AA64PFR0_EL1.RAS and ID_AA64PFR0_EL1.RME register fields as
> per the definitions based on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
> ---
> arch/arm64/tools/sysreg | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index b5bda7c94689..59351931d907 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -873,6 +873,8 @@ EndEnum
> UnsignedEnum 55:52 RME
> 0b0000 NI
> 0b0001 IMP
> + 0b0010 GPC2
> + 0b0011 GPC3
> EndEnum
> UnsignedEnum 51:48 DIT
> 0b0000 NI
> @@ -899,6 +901,7 @@ UnsignedEnum 31:28 RAS
> 0b0000 NI
> 0b0001 IMP
> 0b0010 V1P1
> + 0b0011 V2
> EndEnum
> UnsignedEnum 27:24 GIC
> 0b0000 NI
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 02/46] arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1
2024-12-10 5:52 ` [PATCH V2 02/46] arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1 Anshuman Khandual
2024-12-11 16:28 ` Mark Brown
@ 2024-12-18 14:40 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 14:40 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This updates ID_AA64MMFR4_EL1 register as per the definitions based on
> DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 19 ++++++++++++++++---
> 1 file changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index a6cbe0dcd63b..b5bda7c94689 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -1872,12 +1872,21 @@ EndEnum
> EndSysreg
>
> Sysreg ID_AA64MMFR4_EL1 3 0 0 7 4
> -Res0 63:40
> +Res0 63:48
> +UnsignedEnum 47:44 SRMASK
> + 0b0000 NI
> + 0b0001 IMP
> +EndEnum
> +Res0 43:40
> UnsignedEnum 39:36 E3DSE
> 0b0000 NI
> 0b0001 IMP
> EndEnum
> -Res0 35:28
> +Res0 35:32
> +UnsignedEnum 31:28 RMEGDI
> + 0b0000 NI
> + 0b0001 IMP
> +EndEnum
> SignedEnum 27:24 E2H0
> 0b0000 IMP
> 0b1110 NI_NV1
> @@ -1886,6 +1895,7 @@ EndEnum
> UnsignedEnum 23:20 NV_frac
> 0b0000 NV_NV2
> 0b0001 NV2_ONLY
> + 0b0010 SOFTWARE
> EndEnum
> UnsignedEnum 19:16 FGWTE3
> 0b0000 NI
> @@ -1905,7 +1915,10 @@ SignedEnum 7:4 EIESB
> 0b0010 ToELx
> 0b1111 ANY
> EndEnum
> -Res0 3:0
> +UnsignedEnum 3:0 PoPS
> + 0b0000 NI
> + 0b0001 IMP
> +EndEnum
> EndSysreg
>
> Sysreg SCTLR_EL1 3 0 1 0 0
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1
2024-12-10 5:52 ` [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1 Anshuman Khandual
2024-12-11 15:48 ` Mark Brown
@ 2024-12-18 14:40 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 14:40 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This updates ID_AA64MMFR0_EL1.FGT and ID_AA64MMFR0_EL1.PARANGE register
> fields as per the definitions based on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Reviewed-by: Mark Brown <broonie@kernel.org>
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index b081b54d6d22..a6cbe0dcd63b 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -1591,6 +1591,7 @@ EndEnum
> UnsignedEnum 59:56 FGT
> 0b0000 NI
> 0b0001 IMP
> + 0b0010 FGT2
> EndEnum
> Res0 55:48
> UnsignedEnum 47:44 EXS
> @@ -1652,6 +1653,7 @@ Enum 3:0 PARANGE
> 0b0100 44
> 0b0101 48
> 0b0110 52
> + 0b0111 56
> EndEnum
> EndSysreg
>
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 05/46] arm64/sysreg: Add register fields for HDFGRTR2_EL2
2024-12-10 5:52 ` [PATCH V2 05/46] arm64/sysreg: Add register fields for HDFGRTR2_EL2 Anshuman Khandual
@ 2024-12-18 14:45 ` Eric Auger
0 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 14:45 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for HDFGRTR2_EL2 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Reviewed-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/arm64/tools/sysreg | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 10b1a0998d99..a56f7384d0db 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2562,6 +2562,35 @@ Field 1 ICIALLU
> Field 0 ICIALLUIS
> EndSysreg
>
> +Sysreg HDFGRTR2_EL2 3 4 3 1 0
> +Res0 63:25
> +Field 24 nPMBMAR_EL1
> +Field 23 nMDSTEPOP_EL1
> +Field 22 nTRBMPAM_EL1
> +Res0 21
> +Field 20 nTRCITECR_EL1
> +Field 19 nPMSDSFR_EL1
> +Field 18 nSPMDEVAFF_EL1
> +Field 17 nSPMID
> +Field 16 nSPMSCR_EL1
> +Field 15 nSPMACCESSR_EL1
> +Field 14 nSPMCR_EL0
> +Field 13 nSPMOVS
> +Field 12 nSPMINTEN
> +Field 11 nSPMCNTEN
> +Field 10 nSPMSELR_EL0
> +Field 9 nSPMEVTYPERn_EL0
> +Field 8 nSPMEVCNTRn_EL0
> +Field 7 nPMSSCR_EL1
> +Field 6 nPMSSDATA
> +Field 5 nMDSELR_EL1
> +Field 4 nPMUACR_EL1
> +Field 3 nPMICFILTR_EL0
> +Field 2 nPMICNTR_EL0
> +Field 1 nPMIAR_EL1
> +Field 0 nPMECR_EL1
> +EndSysreg
> +
> Sysreg HDFGRTR_EL2 3 4 3 1 4
> Field 63 PMBIDR_EL1
> Field 62 nPMSNEVFR_EL1
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 06/46] arm64/sysreg: Add register fields for HDFGWTR2_EL2
2024-12-10 5:52 ` [PATCH V2 06/46] arm64/sysreg: Add register fields for HDFGWTR2_EL2 Anshuman Khandual
@ 2024-12-18 15:11 ` Eric Auger
0 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:11 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for HDFGWTR2_EL2 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Reviewed-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/arm64/tools/sysreg | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index a56f7384d0db..1a7d8c03f844 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2591,6 +2591,34 @@ Field 1 nPMIAR_EL1
> Field 0 nPMECR_EL1
> EndSysreg
>
> +Sysreg HDFGWTR2_EL2 3 4 3 1 1
> +Res0 63:25
> +Field 24 nPMBMAR_EL1
> +Field 23 nMDSTEPOP_EL1
> +Field 22 nTRBMPAM_EL1
> +Field 21 nPMZR_EL0
> +Field 20 nTRCITECR_EL1
> +Field 19 nPMSDSFR_EL1
> +Res0 18:17
> +Field 16 nSPMSCR_EL1
> +Field 15 nSPMACCESSR_EL1
> +Field 14 nSPMCR_EL0
> +Field 13 nSPMOVS
> +Field 12 nSPMINTEN
> +Field 11 nSPMCNTEN
> +Field 10 nSPMSELR_EL0
> +Field 9 nSPMEVTYPERn_EL0
> +Field 8 nSPMEVCNTRn_EL0
> +Field 7 nPMSSCR_EL1
> +Res0 6
> +Field 5 nMDSELR_EL1
> +Field 4 nPMUACR_EL1
> +Field 3 nPMICFILTR_EL0
> +Field 2 nPMICNTR_EL0
> +Field 1 nPMIAR_EL1
> +Field 0 nPMECR_EL1
> +EndSysreg
> +
> Sysreg HDFGRTR_EL2 3 4 3 1 4
> Field 63 PMBIDR_EL1
> Field 62 nPMSNEVFR_EL1
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2
2024-12-10 5:52 ` [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2 Anshuman Khandual
2024-12-16 15:17 ` Mark Brown
@ 2024-12-18 15:17 ` Eric Auger
2024-12-18 15:17 ` Eric Auger
2 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:17 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for HFGITR2_EL2 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 1a7d8c03f844..9d339f735648 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2791,6 +2791,12 @@ Field 1 AMEVCNTR00_EL0
> Field 0 AMCNTEN0
> EndSysreg
>
> +Sysreg HFGITR2_EL2 3 4 3 1 7
> +Res0 63:2
> +Field 1 nDCCIVAPS
> +Field 0 TSBCSYNC
> +EndSysreg
> +
> Sysreg ZCR_EL2 3 4 1 2 0
> Fields ZCR_ELx
> EndSysreg
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2
2024-12-10 5:52 ` [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2 Anshuman Khandual
2024-12-16 15:17 ` Mark Brown
2024-12-18 15:17 ` Eric Auger
@ 2024-12-18 15:17 ` Eric Auger
2 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:17 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for HFGITR2_EL2 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 1a7d8c03f844..9d339f735648 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2791,6 +2791,12 @@ Field 1 AMEVCNTR00_EL0
> Field 0 AMCNTEN0
> EndSysreg
>
> +Sysreg HFGITR2_EL2 3 4 3 1 7
> +Res0 63:2
> +Field 1 nDCCIVAPS
> +Field 0 TSBCSYNC
> +EndSysreg
> +
> Sysreg ZCR_EL2 3 4 1 2 0
> Fields ZCR_ELx
> EndSysreg
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 08/46] arm64/sysreg: Add register fields for HFGRTR2_EL2
2024-12-10 5:52 ` [PATCH V2 08/46] arm64/sysreg: Add register fields for HFGRTR2_EL2 Anshuman Khandual
2024-12-16 15:20 ` Mark Brown
@ 2024-12-18 15:19 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:19 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for HFGRTR2_EL2 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 9d339f735648..9513ae05dc93 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2619,6 +2619,25 @@ Field 1 nPMIAR_EL1
> Field 0 nPMECR_EL1
> EndSysreg
>
> +Sysreg HFGRTR2_EL2 3 4 3 1 2
> +Res0 63:15
> +Field 14 nACTLRALIAS_EL1
> +Field 13 nACTLRMASK_EL1
> +Field 12 nTCR2ALIAS_EL1
> +Field 11 nTCRALIAS_EL1
> +Field 10 nSCTLRALIAS2_EL1
> +Field 9 nSCTLRALIAS_EL1
> +Field 8 nCPACRALIAS_EL1
> +Field 7 nTCR2MASK_EL1
> +Field 6 nTCRMASK_EL1
> +Field 5 nSCTLR2MASK_EL1
> +Field 4 nSCTLRMASK_EL1
> +Field 3 nCPACRMASK_EL1
> +Field 2 nRCWSMASK_EL1
> +Field 1 nERXGSR_EL1
> +Field 0 nPFAR_EL1
> +EndSysreg
> +
> Sysreg HDFGRTR_EL2 3 4 3 1 4
> Field 63 PMBIDR_EL1
> Field 62 nPMSNEVFR_EL1
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 09/46] arm64/sysreg: Add register fields for HFGWTR2_EL2
2024-12-10 5:52 ` [PATCH V2 09/46] arm64/sysreg: Add register fields for HFGWTR2_EL2 Anshuman Khandual
2024-12-16 20:52 ` Mark Brown
@ 2024-12-18 15:22 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:22 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for HFGWTR2_EL2 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 9513ae05dc93..30a0d3ee71a7 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2638,6 +2638,25 @@ Field 1 nERXGSR_EL1
> Field 0 nPFAR_EL1
> EndSysreg
>
> +Sysreg HFGWTR2_EL2 3 4 3 1 3
> +Res0 63:15
> +Field 14 nACTLRALIAS_EL1
> +Field 13 nACTLRMASK_EL1
> +Field 12 nTCR2ALIAS_EL1
> +Field 11 nTCRALIAS_EL1
> +Field 10 nSCTLRALIAS2_EL1
> +Field 9 nSCTLRALIAS_EL1
> +Field 8 nCPACRALIAS_EL1
> +Field 7 nTCR2MASK_EL1
> +Field 6 nTCRMASK_EL1
> +Field 5 nSCTLR2MASK_EL1
> +Field 4 nSCTLRMASK_EL1
> +Field 3 nCPACRMASK_EL1
> +Field 2 nRCWSMASK_EL1
> +Res0 1
> +Field 0 nPFAR_EL1
> +EndSysreg
> +
> Sysreg HDFGRTR_EL2 3 4 3 1 4
> Field 63 PMBIDR_EL1
> Field 62 nPMSNEVFR_EL1
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 10/46] arm64/sysreg: Add register fields for MDSELR_EL1
2024-12-10 5:52 ` [PATCH V2 10/46] arm64/sysreg: Add register fields for MDSELR_EL1 Anshuman Khandual
2024-12-16 20:57 ` Mark Brown
@ 2024-12-18 15:25 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:25 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for MDSELR_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Reviewed-by: Mark Brown <broonie@kernel.org>
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 30a0d3ee71a7..be0091060350 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -93,6 +93,17 @@ Res0 63:32
> Field 31:0 DTRTX
> EndSysreg
>
> +Sysreg MDSELR_EL1 2 0 0 4 2
> +Res0 63:6
> +Enum 5:4 BANK
> + 0b00 BANK_0
> + 0b01 BANK_1
> + 0b10 BANK_2
> + 0b11 BANK_3
> +EndEnum
> +Res0 3:0
> +EndSysreg
> +
> Sysreg OSECCR_EL1 2 0 0 6 2
> Res0 63:32
> Field 31:0 EDECCR
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 11/46] arm64/sysreg: Add register fields for PMSIDR_EL1
2024-12-10 5:52 ` [PATCH V2 11/46] arm64/sysreg: Add register fields for PMSIDR_EL1 Anshuman Khandual
2024-12-16 21:03 ` Mark Brown
@ 2024-12-18 15:28 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:28 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for PMSIDR_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index be0091060350..a5e31e4c4474 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2172,7 +2172,16 @@ Field 15:0 MINLAT
> EndSysreg
>
> Sysreg PMSIDR_EL1 3 0 9 9 7
> -Res0 63:25
> +Res0 63:33
> +Field 32 SME
> +UnsignedEnum 31:28 ALTCLK
> + 0b0000 NI
> + 0b0001 IMP
> + 0b1111 IMP_DEF
> +EndEnum
> +Field 27 FPF
> +Field 26 EFT
> +Field 25 CRR
> Field 24 PBT
> Field 23:20 FORMAT
> Enum 19:16 COUNTSIZE
> @@ -2190,7 +2199,10 @@ Enum 11:8 INTERVAL
> 0b0111 3072
> 0b1000 4096
> EndEnum
> -Res0 7
> +UnsignedEnum 7 FDS
> + 0b0 NI
> + 0b1 IMP
> +EndEnum
> Field 6 FnE
> Field 5 ERND
> Field 4 LDS
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 12/46] arm64/sysreg: Add register fields for TRBMPAM_EL1
2024-12-10 5:52 ` [PATCH V2 12/46] arm64/sysreg: Add register fields for TRBMPAM_EL1 Anshuman Khandual
2024-12-16 22:11 ` Mark Brown
@ 2024-12-18 15:30 ` Eric Auger
1 sibling, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:30 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for TRBMPAM_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index a5e31e4c4474..78564b24b187 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -3413,6 +3413,19 @@ EndEnum
> Field 7:0 Attr
> EndSysreg
>
> +Sysreg TRBMPAM_EL1 3 0 9 11 5
> +Res0 63:27
> +Field 26 EN
> +UnsignedEnum 25:24 MPAM_SP
> + 0b00 SECURE_PARTID
> + 0b01 NON_SECURE_PARTID
> + 0b10 ROOT_PARTID
> + 0b11 REALM_PARTID
> +EndEnum
> +Field 23:16 PMG
> +Field 15:0 PARTID
> +EndSysreg
> +
> Sysreg TRBTRG_EL1 3 0 9 11 6
> Res0 63:32
> Field 31:0 TRG
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 13/46] arm64/sysreg: Add register fields for PMSDSFR_EL1
2024-12-10 5:52 ` [PATCH V2 13/46] arm64/sysreg: Add register fields for PMSDSFR_EL1 Anshuman Khandual
@ 2024-12-18 15:34 ` Eric Auger
0 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:34 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for PMSDSFR_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 67 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 67 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 78564b24b187..fcb4ecd85d35 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2245,6 +2245,73 @@ Field 16 COLL
> Field 15:0 MSS
> EndSysreg
>
> +Sysreg PMSDSFR_EL1 3 0 9 10 4
> +Field 63 S63
> +Field 62 S62
> +Field 61 S61
> +Field 60 S60
> +Field 59 S59
> +Field 58 S58
> +Field 57 S57
> +Field 56 S56
> +Field 55 S55
> +Field 54 S54
> +Field 53 S53
> +Field 52 S52
> +Field 51 S51
> +Field 50 S50
> +Field 49 S49
> +Field 48 S48
> +Field 47 S47
> +Field 46 S46
> +Field 45 S45
> +Field 44 S44
> +Field 43 S43
> +Field 42 S42
> +Field 41 S41
> +Field 40 S40
> +Field 39 S39
> +Field 38 S38
> +Field 37 S37
> +Field 36 S36
> +Field 35 S35
> +Field 34 S34
> +Field 33 S33
> +Field 32 S32
> +Field 31 S31
> +Field 30 S30
> +Field 29 S29
> +Field 28 S28
> +Field 27 S27
> +Field 26 S26
> +Field 25 S25
> +Field 24 S24
> +Field 23 S23
> +Field 22 S22
> +Field 21 S21
> +Field 20 S20
> +Field 19 S19
> +Field 18 S18
> +Field 17 S17
> +Field 16 S16
> +Field 15 S15
> +Field 14 S14
> +Field 13 S13
> +Field 12 S12
> +Field 11 S11
> +Field 10 S10
> +Field 9 S9
> +Field 8 S8
> +Field 7 S7
> +Field 6 S6
> +Field 5 S5
> +Field 4 S4
> +Field 3 S3
> +Field 2 S2
> +Field 1 S1
> +Field 0 S0
> +EndSysreg
> +
> Sysreg PMBIDR_EL1 3 0 9 10 7
> Res0 63:12
> Enum 11:8 EA
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 14/46] arm64/sysreg: Add register fields for SPMDEVAFF_EL1
2024-12-10 5:52 ` [PATCH V2 14/46] arm64/sysreg: Add register fields for SPMDEVAFF_EL1 Anshuman Khandual
@ 2024-12-18 15:38 ` Eric Auger
0 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:38 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for SPMDEVAFF_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index fcb4ecd85d35..18b814ff2c41 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -114,6 +114,18 @@ Res0 63:1
> Field 0 OSLK
> EndSysreg
>
> +Sysreg SPMDEVAFF_EL1 2 0 9 13 6
> +Res0 63:40
> +Field 39:32 Aff3
> +Field 31 F0V
> +Field 30 U
> +Res0 29:25
> +Field 24 MT
> +Field 23:16 Aff2
> +Field 15:8 Aff1
> +Field 7:0 Aff0
> +EndSysreg
> +
> Sysreg ID_PFR0_EL1 3 0 0 1 0
> Res0 63:32
> UnsignedEnum 31:28 RAS
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 15/46] arm64/sysreg: Add register fields for PFAR_EL1
2024-12-10 5:52 ` [PATCH V2 15/46] arm64/sysreg: Add register fields for PFAR_EL1 Anshuman Khandual
@ 2024-12-18 15:42 ` Eric Auger
2024-12-19 3:13 ` Anshuman Khandual
0 siblings, 1 reply; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:42 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
Hi Anshuman,
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for PFAR_EL1 as per the definitions based on
> DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/arm64/tools/sysreg | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index 18b814ff2c41..e33edb41721a 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -3533,3 +3533,10 @@ Field 5 F
> Field 4 P
> Field 3:0 Align
> EndSysreg
> +
> +Sysreg PFAR_EL1 3 0 6 0 5
> +Field 63 NS
> +Field 62 NSE
> +Res0 61:56
> +Field 55:0 PA
Just wondering: part of the PA definition depends on FEAT_D128 or
FEAT_LPA and the reset field value is UNKNOWN if the feature is not
available. Shouldn't introduce separate fields directly?
Eric
> +EndSysreg
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 16/46] arm64/sysreg: Add register fields for PMIAR_EL1
2024-12-10 5:52 ` [PATCH V2 16/46] arm64/sysreg: Add register fields for PMIAR_EL1 Anshuman Khandual
@ 2024-12-18 15:44 ` Eric Auger
0 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:44 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for PMIAR_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index e33edb41721a..ff09da6c0b1e 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2349,6 +2349,10 @@ Res0 63:5
> Field 4:0 SEL
> EndSysreg
>
> +Sysreg PMIAR_EL1 3 0 9 14 7
> +Field 63:0 ADDRESS
> +EndSysreg
> +
> SysregFields CONTEXTIDR_ELx
> Res0 63:32
> Field 31:0 PROCID
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 17/46] arm64/sysreg: Add register fields for PMECR_EL1
2024-12-10 5:52 ` [PATCH V2 17/46] arm64/sysreg: Add register fields for PMECR_EL1 Anshuman Khandual
@ 2024-12-18 15:46 ` Eric Auger
0 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2024-12-18 15:46 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/10/24 06:52, Anshuman Khandual wrote:
> This adds register fields for PMECR_EL1 as per the definitions based
> on DDI0601 2024-09.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> arch/arm64/tools/sysreg | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
> index ff09da6c0b1e..214ad6da1dff 100644
> --- a/arch/arm64/tools/sysreg
> +++ b/arch/arm64/tools/sysreg
> @@ -2349,6 +2349,21 @@ Res0 63:5
> Field 4:0 SEL
> EndSysreg
>
> +Sysreg PMECR_EL1 3 0 9 14 5
> +Res0 63:5
> +UnsignedEnum 4:3 SSE
> + 0b00 DISABLED
> + 0b10 ENABLED_PROHIBITED
> + 0b11 ENABLED_ALLOWED
> +EndEnum
> +Field 2 KPME
> +UnsignedEnum 1:0 PMEE
> + 0b00 PMUIRQ_E_PMU_D
> + 0b10 PMUIRQ_D_PMU_D
> + 0b11 PMUIRQ_D_PMU_E
> +EndEnum
> +EndSysreg
> +
> Sysreg PMIAR_EL1 3 0 9 14 7
> Field 63:0 ADDRESS
> EndSysreg
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1
2024-12-18 14:40 ` Eric Auger
@ 2024-12-19 2:48 ` Anshuman Khandual
0 siblings, 0 replies; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-19 2:48 UTC (permalink / raw)
To: Eric Auger, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/18/24 20:10, Eric Auger wrote:
> Hi Anshuman
>
> On 12/10/24 06:52, Anshuman Khandual wrote:
>> This adds register fields for TRBIDR_EL1 as per the definitions based
>> on DDI0601 2024-09.
>>
>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>> Cc: Will Deacon <will@kernel.org>
>> Cc: Mark Brown <broonie@kernel.org>
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: linux-kernel@vger.kernel.org
>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>> ---
>> arch/arm64/tools/sysreg | 15 +++++++++++++--
>> 1 file changed, 13 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
>> index 59351931d907..10b1a0998d99 100644
>> --- a/arch/arm64/tools/sysreg
>> +++ b/arch/arm64/tools/sysreg
>> @@ -3295,13 +3295,24 @@ Field 31:0 TRG
>> EndSysreg
>>
>> Sysreg TRBIDR_EL1 3 0 9 11 7
>> -Res0 63:12
>> +Res0 63:48
>> +Field 47:32 MaxBuffSize
>> +Res0 31:16
>> +UnsignedEnum 15:12 MPAM
>> + 0b0000 NI
>> + 0b0001 PMG
> Out of curiosity how did you choose the PMG terminology?
> I see "MPAM implemented by the Trace Buffer Unit, using default PARTID
> and PMG values in External mode". Wouldn't be TBU more meaningful?
Right, TBU seems better. Unless Mark thinks otherwise, will change.
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 15/46] arm64/sysreg: Add register fields for PFAR_EL1
2024-12-18 15:42 ` Eric Auger
@ 2024-12-19 3:13 ` Anshuman Khandual
2025-01-06 10:57 ` Eric Auger
0 siblings, 1 reply; 85+ messages in thread
From: Anshuman Khandual @ 2024-12-19 3:13 UTC (permalink / raw)
To: Eric Auger, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
On 12/18/24 21:12, Eric Auger wrote:
> Hi Anshuman,
>
> On 12/10/24 06:52, Anshuman Khandual wrote:
>> This adds register fields for PFAR_EL1 as per the definitions based on
>> DDI0601 2024-09.
>>
>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>> Cc: Will Deacon <will@kernel.org>
>> Cc: Mark Brown <broonie@kernel.org>
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: linux-kernel@vger.kernel.org
>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>> ---
>> arch/arm64/tools/sysreg | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
>> index 18b814ff2c41..e33edb41721a 100644
>> --- a/arch/arm64/tools/sysreg
>> +++ b/arch/arm64/tools/sysreg
>> @@ -3533,3 +3533,10 @@ Field 5 F
>> Field 4 P
>> Field 3:0 Align
>> EndSysreg
>> +
>> +Sysreg PFAR_EL1 3 0 6 0 5
>> +Field 63 NS
>> +Field 62 NSE
>> +Res0 61:56
>> +Field 55:0 PA
> Just wondering: part of the PA definition depends on FEAT_D128 or
> FEAT_LPA and the reset field value is UNKNOWN if the feature is not
> available. Shouldn't introduce separate fields directly?
Generated PFAR_EL1_PA_MASK aka GENMASK_ULL(55, 0) should cover all the
cases for PA i.e 48 bits, LPA, D128 etc. Although individual use cases
will have to trim the mask subsequently as required.
Are you suggesting something like the following instead where the user
will have to concatenate these fields selectively to find the required
PA mask ?
Field 55:52 PA_D128
Field 51:48 PA_LPA
Field 47:0 PA
^ permalink raw reply [flat|nested] 85+ messages in thread
* Re: [PATCH V2 15/46] arm64/sysreg: Add register fields for PFAR_EL1
2024-12-19 3:13 ` Anshuman Khandual
@ 2025-01-06 10:57 ` Eric Auger
0 siblings, 0 replies; 85+ messages in thread
From: Eric Auger @ 2025-01-06 10:57 UTC (permalink / raw)
To: Anshuman Khandual, linux-kernel, kvmarm, linux-arm-kernel, maz
Cc: ryan.roberts, Oliver Upton, James Morse, Suzuki K Poulose,
Catalin Marinas, Will Deacon, Mark Brown
Hi Anshuman,
On 12/19/24 4:13 AM, Anshuman Khandual wrote:
>
>
> On 12/18/24 21:12, Eric Auger wrote:
>> Hi Anshuman,
>>
>> On 12/10/24 06:52, Anshuman Khandual wrote:
>>> This adds register fields for PFAR_EL1 as per the definitions based on
>>> DDI0601 2024-09.
>>>
>>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>>> Cc: Will Deacon <will@kernel.org>
>>> Cc: Mark Brown <broonie@kernel.org>
>>> Cc: linux-arm-kernel@lists.infradead.org
>>> Cc: linux-kernel@vger.kernel.org
>>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>>> ---
>>> arch/arm64/tools/sysreg | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg
>>> index 18b814ff2c41..e33edb41721a 100644
>>> --- a/arch/arm64/tools/sysreg
>>> +++ b/arch/arm64/tools/sysreg
>>> @@ -3533,3 +3533,10 @@ Field 5 F
>>> Field 4 P
>>> Field 3:0 Align
>>> EndSysreg
>>> +
>>> +Sysreg PFAR_EL1 3 0 6 0 5
>>> +Field 63 NS
>>> +Field 62 NSE
>>> +Res0 61:56
>>> +Field 55:0 PA
>> Just wondering: part of the PA definition depends on FEAT_D128 or
>> FEAT_LPA and the reset field value is UNKNOWN if the feature is not
>> available. Shouldn't introduce separate fields directly?
> Generated PFAR_EL1_PA_MASK aka GENMASK_ULL(55, 0) should cover all the
> cases for PA i.e 48 bits, LPA, D128 etc. Although individual use cases
> will have to trim the mask subsequently as required.
>
> Are you suggesting something like the following instead where the user
> will have to concatenate these fields selectively to find the required
> PA mask ?
>
> Field 55:52 PA_D128
> Field 51:48 PA_LPA
> Field 47:0 PA
Yes that was my suggestion.
Thanks
Eric
^ permalink raw reply [flat|nested] 85+ messages in thread
end of thread, other threads:[~2025-01-06 11:00 UTC | newest]
Thread overview: 85+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-10 5:52 [PATCH V2 00/46] KVM: arm64: Enable FGU (Fine Grained Undefined) for FEAT_FGT2 registers Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 01/46] arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1 Anshuman Khandual
2024-12-11 15:48 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 02/46] arm64/sysreg: Update register fields for ID_AA64MMFR4_EL1 Anshuman Khandual
2024-12-11 16:28 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 03/46] arm64/sysreg: Update register fields for ID_AA64PFR0_EL1 Anshuman Khandual
2024-12-16 15:08 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 04/46] arm64/sysreg: Update register fields for TRBIDR_EL1 Anshuman Khandual
2024-12-16 15:12 ` Mark Brown
2024-12-18 14:40 ` Eric Auger
2024-12-19 2:48 ` Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 05/46] arm64/sysreg: Add register fields for HDFGRTR2_EL2 Anshuman Khandual
2024-12-18 14:45 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 06/46] arm64/sysreg: Add register fields for HDFGWTR2_EL2 Anshuman Khandual
2024-12-18 15:11 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 07/46] arm64/sysreg: Add register fields for HFGITR2_EL2 Anshuman Khandual
2024-12-16 15:17 ` Mark Brown
2024-12-18 15:17 ` Eric Auger
2024-12-18 15:17 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 08/46] arm64/sysreg: Add register fields for HFGRTR2_EL2 Anshuman Khandual
2024-12-16 15:20 ` Mark Brown
2024-12-18 15:19 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 09/46] arm64/sysreg: Add register fields for HFGWTR2_EL2 Anshuman Khandual
2024-12-16 20:52 ` Mark Brown
2024-12-18 15:22 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 10/46] arm64/sysreg: Add register fields for MDSELR_EL1 Anshuman Khandual
2024-12-16 20:57 ` Mark Brown
2024-12-18 15:25 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 11/46] arm64/sysreg: Add register fields for PMSIDR_EL1 Anshuman Khandual
2024-12-16 21:03 ` Mark Brown
2024-12-18 15:28 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 12/46] arm64/sysreg: Add register fields for TRBMPAM_EL1 Anshuman Khandual
2024-12-16 22:11 ` Mark Brown
2024-12-18 15:30 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 13/46] arm64/sysreg: Add register fields for PMSDSFR_EL1 Anshuman Khandual
2024-12-18 15:34 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 14/46] arm64/sysreg: Add register fields for SPMDEVAFF_EL1 Anshuman Khandual
2024-12-18 15:38 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 15/46] arm64/sysreg: Add register fields for PFAR_EL1 Anshuman Khandual
2024-12-18 15:42 ` Eric Auger
2024-12-19 3:13 ` Anshuman Khandual
2025-01-06 10:57 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 16/46] arm64/sysreg: Add register fields for PMIAR_EL1 Anshuman Khandual
2024-12-18 15:44 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 17/46] arm64/sysreg: Add register fields for PMECR_EL1 Anshuman Khandual
2024-12-18 15:46 ` Eric Auger
2024-12-10 5:52 ` [PATCH V2 18/46] arm64/sysreg: Add register fields for PMUACR_EL1 Anshuman Khandual
2024-12-16 23:15 ` Rob Herring
2024-12-17 4:33 ` Anshuman Khandual
2024-12-17 15:32 ` Mark Brown
2024-12-17 15:30 ` Mark Brown
2024-12-17 17:02 ` Rob Herring
2024-12-10 5:52 ` [PATCH V2 19/46] arm64/sysreg: Add register fields for PMCCNTSVR_EL1 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 20/46] arm64/sysreg: Add register fields for SPMSCR_EL1 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 21/46] arm64/sysreg: Add register fields for SPMACCESSR_EL1 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 22/46] arm64/sysreg: Add register fields for PMICNTR_EL0 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 23/46] arm64/sysreg: Add register fields for PMICFILTR_EL0 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 24/46] arm64/sysreg: Add register fields for SPMCR_EL0 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 25/46] arm64/sysreg: Add register fields for SPMOVSCLR_EL0 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 26/46] arm64/sysreg: Add register fields for SPMOVSSET_EL0 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 27/46] arm64/sysreg: Add register fields for SPMINTENCLR_EL1 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 28/46] arm64/sysreg: Add register fields for SPMINTENSET_EL1 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 29/46] arm64/sysreg: Add register fields for SPMCNTENCLR_EL0 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 30/46] arm64/sysreg: Add register fields for SPMCNTENSET_EL0 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 31/46] arm64/sysreg: Add register fields for SPMSELR_EL0 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 32/46] arm64/sysreg: Add register fields for PMICNTSVR_EL1 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 33/46] arm64/sysreg: Add register fields for SPMIIDR_EL1 Anshuman Khandual
2024-12-10 5:52 ` [PATCH V2 34/46] arm64/sysreg: Add register fields for SPMDEVARCH_EL1 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 35/46] arm64/sysreg: Add register fields for SPMCFGR_EL1 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 36/46] arm64/sysreg: Add register fields for PMSSCR_EL1 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 37/46] arm64/sysreg: Add register fields for PMZR_EL0 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 38/46] arm64/sysreg: Add register fields for SPMCGCR0_EL1 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 39/46] arm64/sysreg: Add register fields for SPMCGCR1_EL1 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 40/46] arm64/sysreg: Add register fields for MDSTEPOP_EL1 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 41/46] arm64/sysreg: Add register fields for ERXGSR_EL1 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 42/46] arm64/sysreg: Add register fields for SPMACCESSR_EL2 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 43/46] arm64/sysreg: Add remaining debug registers affected by HDFGxTR2_EL2 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 44/46] KVM: arm64: nv: Add FEAT_FGT2 registers access from virtual EL2 Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 45/46] KVM: arm64: nv: Add FEAT_FGT2 registers based FGU handling Anshuman Khandual
2024-12-10 5:53 ` [PATCH V2 46/46] KVM: arm64: nv: Add trap forwarding for FEAT_FGT2 described registers Anshuman Khandual
2024-12-10 9:05 ` Marc Zyngier
2024-12-18 10:37 ` Anshuman Khandual
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).