aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/test/syz_kvm_setup_cpu_riscv64
blob: 3e7c222f1ce5149e7368df85d699f97e1c094482 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#
# requires: arch=riscv64
#

r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0)
r1 = ioctl$KVM_CREATE_VM(r0, AUTO, 0x0)
r2 = ioctl$KVM_CREATE_VCPU(r1, AUTO, 0x0)

#
# Set the register
#   0x04200513,   li a0, 0x42      (addi a0, zero, 0x42)
#   0x06300593,   li a1, 0x63      (addi a1, zero, 0x63)
# Load the MMIO address to t1 (without affecting a0, a1)
#   0x40000337,   lui t1, 0x40000 (load 20 bits high to t1)
# Read from the MMIO address (this triggers KVM_EXIT_MMIO)
#   0x00032683,   lw a3, 0(t1) (read from address 0x40000000 to a3)
#
syz_kvm_setup_cpu$riscv64(r1, r2, &(0x7f0000fe8000/0x180000)=nil,&(0x7f0000000000)=[{0x0, &(0x7f0000001000)="13052004930530063703004083260300", 0xf}], 0x1, 0x0, 0x0, 0x0)

ioctl$KVM_RUN(r2, AUTO, 0x0)

ioctl$KVM_GET_ONE_REG(r2, AUTO, &AUTO=@riscv64_core={0x803000000200000a, &AUTO})
ioctl$KVM_GET_ONE_REG(r2, AUTO, &AUTO=@riscv64_config={0x8030000001000000, &AUTO})
ioctl$KVM_GET_ONE_REG(r2, AUTO, &AUTO=@riscv64_csr={0x8030000003000000, &AUTO})