aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2024-11-26 13:05:23 +0100
committerAlexander Potapenko <glider@google.com>2024-11-26 15:10:09 +0000
commit68a26265f5d2dd0aa648cb27706d21602a466a03 (patch)
tree80dca6f0ff5a535bdac4f4d7e3754409da468214 /sys
parent5f6d557d4454398c38d85f6774152d5e0a4436d7 (diff)
sys/linux/dev_kvm_arm64.txt: add ITS registers to syzos_api_memwrite
Hint syzkaller that it can write to ITS registers.
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/dev_kvm_arm64.txt12
-rw-r--r--sys/linux/dev_kvm_arm64.txt.const19
2 files changed, 31 insertions, 0 deletions
diff --git a/sys/linux/dev_kvm_arm64.txt b/sys/linux/dev_kvm_arm64.txt
index 91100be40..2f55bdf05 100644
--- a/sys/linux/dev_kvm_arm64.txt
+++ b/sys/linux/dev_kvm_arm64.txt
@@ -5,6 +5,7 @@
meta arches["arm64"]
+include <linux/irqchip/arm-gic-v3.h>
include <linux/kvm.h>
include <linux/arm-smccc.h>
include <uapi/linux/psci.h>
@@ -128,6 +129,7 @@ syzos_api_memwrite [
generic syzos_api_memwrite_generic
vgic_gicd syzos_api_memwrite_vgic_gicd
vgic_gicr syzos_api_memwrite_vgic_gicr
+ vgic_gits syzos_api_memwrite_vgic_gits
]
syzos_api_memwrite_generic {
@@ -255,6 +257,16 @@ syzos_api_memwrite_vgic_gicd {
len flags[syzos_memwrite_len, int64]
}
+kvm_vgic_gits_regs = GITS_CTLR, GITS_IIDR, GITS_TYPER, GITS_MPIDR, GITS_CBASER, GITS_CWRITER, GITS_CREADR, GITS_BASER, GITS_IDREGS_BASE, GITS_PIDR0, GITS_PIDR1, GITS_PIDR2, GITS_PIDR4, GITS_CIDR0, GITS_CIDR1, GITS_CIDR2, GITS_CIDR3, GITS_TRANSLATER, GITS_SGIR
+
+# 0x08080000 is ARM64_ADDR_GITS_BASE from executor/kvm.h
+syzos_api_memwrite_vgic_gits {
+ base const[0x8080000, int64]
+ offset flags[kvm_vgic_gits_regs, int64]
+ value int64
+ len flags[syzos_memwrite_len, int64]
+}
+
type syzos_api[NUM, PAYLOAD] {
call const[NUM, int64]
size bytesize[parent, int64]
diff --git a/sys/linux/dev_kvm_arm64.txt.const b/sys/linux/dev_kvm_arm64.txt.const
index 4ef652745..54f3c6e34 100644
--- a/sys/linux/dev_kvm_arm64.txt.const
+++ b/sys/linux/dev_kvm_arm64.txt.const
@@ -78,6 +78,12 @@ GICR_STATUSR = arm64:16
GICR_SYNCR = arm64:192
GICR_TYPER = arm64:8
GICR_WAKER = arm64:20
+GITS_BASER = arm64:256
+GITS_CBASER = arm64:128
+GITS_CIDR0 = arm64:65520
+GITS_CIDR1 = arm64:65524
+GITS_CIDR2 = arm64:65528
+GITS_CIDR3 = arm64:65532
GITS_CMD_CLEAR = arm64:4
GITS_CMD_DISCARD = arm64:15
GITS_CMD_INT = arm64:3
@@ -90,6 +96,19 @@ GITS_CMD_MAPTI = arm64:10
GITS_CMD_MOVALL = arm64:14
GITS_CMD_MOVI = arm64:1
GITS_CMD_SYNC = arm64:5
+GITS_CREADR = arm64:144
+GITS_CTLR = arm64:0
+GITS_CWRITER = arm64:136
+GITS_IDREGS_BASE = arm64:65488
+GITS_IIDR = arm64:4
+GITS_MPIDR = arm64:24
+GITS_PIDR0 = arm64:65504
+GITS_PIDR1 = arm64:65508
+GITS_PIDR2 = arm64:65512
+GITS_PIDR4 = arm64:65488
+GITS_SGIR = arm64:131104
+GITS_TRANSLATER = arm64:65600
+GITS_TYPER = arm64:8
KVM_ARM_PREFERRED_TARGET = arm64:2149625519
KVM_ARM_SET_COUNTER_OFFSET = arm64:1074835125
KVM_ARM_SET_DEVICE_ADDR = arm64:1074835115