aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/test/syz_kvm_setup_cpu_riscv64
blob: 6ddfb4c1e7f3307f9195b34fc51595b78f04435f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#
# 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)

syz_kvm_assert_reg$riscv64(r2, 0x803000000200000a, 0x42)
syz_kvm_assert_reg$riscv64(r2, 0x803000000200000b, 0x63)