aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2024-08-09 10:45:40 +0200
committerAlexander Potapenko <glider@google.com>2024-09-03 12:16:36 +0000
commit6632e0eb1ecd3776993a79459a8b5ed277ec0a59 (patch)
tree81581dcdf9e9a67d5ab3b6067a40fa11b639feaa /sys/linux
parent63c1a4dfb5943c5af91e42a16bf3953757c8e05d (diff)
sys/linux: add ARM VGIC device groups/attributes
Do not specify the attribute input types for now.
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/dev_kvm.txt25
-rw-r--r--sys/linux/dev_kvm.txt.const20
2 files changed, 42 insertions, 3 deletions
diff --git a/sys/linux/dev_kvm.txt b/sys/linux/dev_kvm.txt
index c1278a177..f3b6932a4 100644
--- a/sys/linux/dev_kvm.txt
+++ b/sys/linux/dev_kvm.txt
@@ -435,16 +435,35 @@ kvm_reg_list {
reg array[int64]
}
-kvm_device_attr {
+kvm_device_attr [
+ attr_arm64 kvm_device_attr_arm64
+ attr_other kvm_device_attr_generic
+]
+
+kvm_device_attr_generic {
flags const[0, int32]
group int32
attr int64
addr ptr64[in, int64]
}
+kvm_device_attr_arm64 {
+ flags const[0, int32]
+ group flags[kvm_device_attr_arm64_groups, int32]
+ attr flags[kvm_device_attr_arm64_attrs, int64]
+ addr ptr64[in, int64]
+}
+
+# Assorted device attributes from
+# - https://docs.kernel.org/virt/kvm/devices/arm-vgic-its.html,
+# - https://docs.kernel.org/virt/kvm/devices/arm-vgic.html,
+# - https://docs.kernel.org/virt/kvm/devices/arm-vgic-v3.html
+kvm_device_attr_arm64_groups = KVM_DEV_ARM_VGIC_GRP_ADDR, KVM_DEV_ARM_VGIC_GRP_DIST_REGS, KVM_DEV_ARM_VGIC_GRP_CPU_REGS, KVM_DEV_ARM_VGIC_GRP_NR_IRQS, KVM_DEV_ARM_VGIC_GRP_CTRL, KVM_DEV_ARM_VGIC_GRP_REDIST_REGS, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS, KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO, KVM_DEV_ARM_VGIC_GRP_ITS_REGS
+kvm_device_attr_arm64_attrs = 0, KVM_VGIC_ITS_ADDR_TYPE, KVM_VGIC_V2_ADDR_TYPE_DIST, KVM_VGIC_V2_ADDR_TYPE_CPU, KVM_VGIC_V3_ADDR_TYPE_DIST, KVM_VGIC_V3_ADDR_TYPE_REDIST, KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, KVM_DEV_ARM_VGIC_CTRL_INIT, KVM_DEV_ARM_ITS_CTRL_RESET, KVM_DEV_ARM_ITS_SAVE_TABLES, KVM_DEV_ARM_ITS_RESTORE_TABLES, KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES
+
kvm_device_attr_vm [
attr_arm64 kvm_device_attr_vm_arm64
- attr_other kvm_device_attr
+ attr_other kvm_device_attr_generic
]
kvm_device_attr_vcpu [
@@ -454,7 +473,7 @@ kvm_device_attr_vcpu [
attr_set_pmu kvm_vcpu_attr_set_pmu
attr_irq_timer kvm_vcpu_attr_irq_timer
attr_pvtime_ipa kvm_vcpu_attr_pvtime_ipa
- attr_other kvm_device_attr
+ attr_other kvm_device_attr_generic
]
kvm_vm_attr_group_arm64 = KVM_ARM_VM_SMCCC_CTRL
diff --git a/sys/linux/dev_kvm.txt.const b/sys/linux/dev_kvm.txt.const
index 1a0ae35d0..7a2d9fa82 100644
--- a/sys/linux/dev_kvm.txt.const
+++ b/sys/linux/dev_kvm.txt.const
@@ -67,6 +67,20 @@ KVM_CREATE_VCPU = 44609, mips64le:ppc64le:536915521
KVM_CREATE_VM = 44545, mips64le:ppc64le:536915457
KVM_DEASSIGN_DEV_IRQ = 1077980789
KVM_DEASSIGN_PCI_DEVICE = 1077980786
+KVM_DEV_ARM_ITS_CTRL_RESET = 386:amd64:mips64le:ppc64le:s390x:???, arm64:4
+KVM_DEV_ARM_ITS_RESTORE_TABLES = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
+KVM_DEV_ARM_ITS_SAVE_TABLES = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
+KVM_DEV_ARM_VGIC_CTRL_INIT = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
+KVM_DEV_ARM_VGIC_GRP_ADDR = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
+KVM_DEV_ARM_VGIC_GRP_CPU_REGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
+KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:6
+KVM_DEV_ARM_VGIC_GRP_CTRL = 386:amd64:mips64le:ppc64le:s390x:???, arm64:4
+KVM_DEV_ARM_VGIC_GRP_DIST_REGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
+KVM_DEV_ARM_VGIC_GRP_ITS_REGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:8
+KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO = 386:amd64:mips64le:ppc64le:s390x:???, arm64:7
+KVM_DEV_ARM_VGIC_GRP_NR_IRQS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:3
+KVM_DEV_ARM_VGIC_GRP_REDIST_REGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:5
+KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES = 386:amd64:mips64le:ppc64le:s390x:???, arm64:3
KVM_DEV_TYPE_ARM_PV_TIME = 10
KVM_DEV_TYPE_ARM_VGIC_ITS = 8
KVM_DEV_TYPE_ARM_VGIC_V2 = 5
@@ -222,6 +236,12 @@ KVM_STATE_NESTED_SMM_VMXON = 2, arm64:mips64le:ppc64le:s390x:???
KVM_TPR_ACCESS_REPORTING = 3223891602
KVM_TRANSLATE = 3222843013
KVM_UNREGISTER_COALESCED_MMIO = 1074835048, mips64le:ppc64le:2148576872
+KVM_VGIC_ITS_ADDR_TYPE = 386:amd64:mips64le:ppc64le:s390x:???, arm64:4
+KVM_VGIC_V2_ADDR_TYPE_CPU = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
+KVM_VGIC_V2_ADDR_TYPE_DIST = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
+KVM_VGIC_V3_ADDR_TYPE_DIST = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
+KVM_VGIC_V3_ADDR_TYPE_REDIST = 386:amd64:mips64le:ppc64le:s390x:???, arm64:3
+KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION = 386:amd64:mips64le:ppc64le:s390x:???, arm64:5
KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK = 2, arm64:mips64le:ppc64le:s390x:???
KVM_X2APIC_API_USE_32BIT_IDS = 1, arm64:mips64le:ppc64le:s390x:???
KVM_X86_DISABLE_EXITS_CSTATE = 8