Skip to content

Commit 60ce16c

Browse files
author
Marc Zyngier
committed
KVM: arm64: nv: Add include containing the VNCR_EL2 offsets
VNCR_EL2 points to a page containing a number of system registers accessed by a guest hypervisor when ARMv8.4-NV is enabled. Let's document the offsets in that page, as we are going to use this layout. Reviewed-by: Oliver Upton <oliver.upton@linux.dev> Signed-off-by: Marc Zyngier <maz@kernel.org>
1 parent 3606e0b commit 60ce16c

1 file changed

Lines changed: 103 additions & 0 deletions

File tree

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
/*
3+
* System register offsets in the VNCR page
4+
* All offsets are *byte* displacements!
5+
*/
6+
7+
#ifndef __ARM64_VNCR_MAPPING_H__
8+
#define __ARM64_VNCR_MAPPING_H__
9+
10+
#define VNCR_VTTBR_EL2 0x020
11+
#define VNCR_VTCR_EL2 0x040
12+
#define VNCR_VMPIDR_EL2 0x050
13+
#define VNCR_CNTVOFF_EL2 0x060
14+
#define VNCR_HCR_EL2 0x078
15+
#define VNCR_HSTR_EL2 0x080
16+
#define VNCR_VPIDR_EL2 0x088
17+
#define VNCR_TPIDR_EL2 0x090
18+
#define VNCR_HCRX_EL2 0x0A0
19+
#define VNCR_VNCR_EL2 0x0B0
20+
#define VNCR_CPACR_EL1 0x100
21+
#define VNCR_CONTEXTIDR_EL1 0x108
22+
#define VNCR_SCTLR_EL1 0x110
23+
#define VNCR_ACTLR_EL1 0x118
24+
#define VNCR_TCR_EL1 0x120
25+
#define VNCR_AFSR0_EL1 0x128
26+
#define VNCR_AFSR1_EL1 0x130
27+
#define VNCR_ESR_EL1 0x138
28+
#define VNCR_MAIR_EL1 0x140
29+
#define VNCR_AMAIR_EL1 0x148
30+
#define VNCR_MDSCR_EL1 0x158
31+
#define VNCR_SPSR_EL1 0x160
32+
#define VNCR_CNTV_CVAL_EL0 0x168
33+
#define VNCR_CNTV_CTL_EL0 0x170
34+
#define VNCR_CNTP_CVAL_EL0 0x178
35+
#define VNCR_CNTP_CTL_EL0 0x180
36+
#define VNCR_SCXTNUM_EL1 0x188
37+
#define VNCR_TFSR_EL1 0x190
38+
#define VNCR_HFGRTR_EL2 0x1B8
39+
#define VNCR_HFGWTR_EL2 0x1C0
40+
#define VNCR_HFGITR_EL2 0x1C8
41+
#define VNCR_HDFGRTR_EL2 0x1D0
42+
#define VNCR_HDFGWTR_EL2 0x1D8
43+
#define VNCR_ZCR_EL1 0x1E0
44+
#define VNCR_HAFGRTR_EL2 0x1E8
45+
#define VNCR_TTBR0_EL1 0x200
46+
#define VNCR_TTBR1_EL1 0x210
47+
#define VNCR_FAR_EL1 0x220
48+
#define VNCR_ELR_EL1 0x230
49+
#define VNCR_SP_EL1 0x240
50+
#define VNCR_VBAR_EL1 0x250
51+
#define VNCR_TCR2_EL1 0x270
52+
#define VNCR_PIRE0_EL1 0x290
53+
#define VNCR_PIRE0_EL2 0x298
54+
#define VNCR_PIR_EL1 0x2A0
55+
#define VNCR_ICH_LR0_EL2 0x400
56+
#define VNCR_ICH_LR1_EL2 0x408
57+
#define VNCR_ICH_LR2_EL2 0x410
58+
#define VNCR_ICH_LR3_EL2 0x418
59+
#define VNCR_ICH_LR4_EL2 0x420
60+
#define VNCR_ICH_LR5_EL2 0x428
61+
#define VNCR_ICH_LR6_EL2 0x430
62+
#define VNCR_ICH_LR7_EL2 0x438
63+
#define VNCR_ICH_LR8_EL2 0x440
64+
#define VNCR_ICH_LR9_EL2 0x448
65+
#define VNCR_ICH_LR10_EL2 0x450
66+
#define VNCR_ICH_LR11_EL2 0x458
67+
#define VNCR_ICH_LR12_EL2 0x460
68+
#define VNCR_ICH_LR13_EL2 0x468
69+
#define VNCR_ICH_LR14_EL2 0x470
70+
#define VNCR_ICH_LR15_EL2 0x478
71+
#define VNCR_ICH_AP0R0_EL2 0x480
72+
#define VNCR_ICH_AP0R1_EL2 0x488
73+
#define VNCR_ICH_AP0R2_EL2 0x490
74+
#define VNCR_ICH_AP0R3_EL2 0x498
75+
#define VNCR_ICH_AP1R0_EL2 0x4A0
76+
#define VNCR_ICH_AP1R1_EL2 0x4A8
77+
#define VNCR_ICH_AP1R2_EL2 0x4B0
78+
#define VNCR_ICH_AP1R3_EL2 0x4B8
79+
#define VNCR_ICH_HCR_EL2 0x4C0
80+
#define VNCR_ICH_VMCR_EL2 0x4C8
81+
#define VNCR_VDISR_EL2 0x500
82+
#define VNCR_PMBLIMITR_EL1 0x800
83+
#define VNCR_PMBPTR_EL1 0x810
84+
#define VNCR_PMBSR_EL1 0x820
85+
#define VNCR_PMSCR_EL1 0x828
86+
#define VNCR_PMSEVFR_EL1 0x830
87+
#define VNCR_PMSICR_EL1 0x838
88+
#define VNCR_PMSIRR_EL1 0x840
89+
#define VNCR_PMSLATFR_EL1 0x848
90+
#define VNCR_TRFCR_EL1 0x880
91+
#define VNCR_MPAM1_EL1 0x900
92+
#define VNCR_MPAMHCR_EL2 0x930
93+
#define VNCR_MPAMVPMV_EL2 0x938
94+
#define VNCR_MPAMVPM0_EL2 0x940
95+
#define VNCR_MPAMVPM1_EL2 0x948
96+
#define VNCR_MPAMVPM2_EL2 0x950
97+
#define VNCR_MPAMVPM3_EL2 0x958
98+
#define VNCR_MPAMVPM4_EL2 0x960
99+
#define VNCR_MPAMVPM5_EL2 0x968
100+
#define VNCR_MPAMVPM6_EL2 0x970
101+
#define VNCR_MPAMVPM7_EL2 0x978
102+
103+
#endif /* __ARM64_VNCR_MAPPING_H__ */

0 commit comments

Comments
 (0)