aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Documentation/virt
diff options
context:
space:
mode:
authorAndrew Jones <drjones@redhat.com>2020-01-20 14:08:25 +0100
committerMarc Zyngier <maz@kernel.org>2020-01-23 10:38:14 +0000
commit290a6bb06de9ec24cecbb11bf4be35411d0b2625 (patch)
tree93b43ab6bdf6cd06713072ccd55c029022c10ab7 /Documentation/virt
parentKVM: arm/arm64: Cleanup MMIO handling (diff)
downloadwireguard-linux-290a6bb06de9ec24cecbb11bf4be35411d0b2625.tar.xz
wireguard-linux-290a6bb06de9ec24cecbb11bf4be35411d0b2625.zip
arm64: KVM: Add UAPI notes for swapped registers
Two UAPI system register IDs do not derive their values from the ARM system register encodings. This is because their values were accidentally swapped. As the IDs are API, they cannot be changed. Add WARNING notes to point them out. Suggested-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Andrew Jones <drjones@redhat.com> [maz: turned XXX into WARNING] Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20200120130825.28838-1-drjones@redhat.com
Diffstat (limited to 'Documentation/virt')
-rw-r--r--Documentation/virt/kvm/api.txt9
1 files changed, 9 insertions, 0 deletions
diff --git a/Documentation/virt/kvm/api.txt b/Documentation/virt/kvm/api.txt
index ebb37b34dcfc..3a0c819c3573 100644
--- a/Documentation/virt/kvm/api.txt
+++ b/Documentation/virt/kvm/api.txt
@@ -2196,6 +2196,15 @@ arm64 CCSIDR registers are demultiplexed by CSSELR value:
arm64 system registers have the following id bit patterns:
0x6030 0000 0013 <op0:2> <op1:3> <crn:4> <crm:4> <op2:3>
+WARNING:
+ Two system register IDs do not follow the specified pattern. These
+ are KVM_REG_ARM_TIMER_CVAL and KVM_REG_ARM_TIMER_CNT, which map to
+ system registers CNTV_CVAL_EL0 and CNTVCT_EL0 respectively. These
+ two had their values accidentally swapped, which means TIMER_CVAL is
+ derived from the register encoding for CNTVCT_EL0 and TIMER_CNT is
+ derived from the register encoding for CNTV_CVAL_EL0. As this is
+ API, it must remain this way.
+
arm64 firmware pseudo-registers have the following bit pattern:
0x6030 0000 0014 <regno:16>