aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
author6eanut <jiakaiPeanut@gmail.com>2026-01-26 01:17:15 +0000
committerAleksandr Nogikh <nogikh@google.com>2026-01-29 08:30:54 +0000
commitaeb6fdd5881e1cc944ebb799251028a4122e98e4 (patch)
tree72e7865eaf5f371901ce9aa9d91222f959dc9f08 /sys/linux
parenta0f9b371a48bfd232ac324fd5c35e84d346f7c25 (diff)
sys/linux: add more riscv64 specific registers
This patch adds more riscv64 specific registers to improve the KVM support for RISC-V architecture. Signed-off-by: 6eanut <jiakaiPeanut@gmail.com>
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/dev_kvm.txt46
1 files changed, 28 insertions, 18 deletions
diff --git a/sys/linux/dev_kvm.txt b/sys/linux/dev_kvm.txt
index 555089723..a3d646efb 100644
--- a/sys/linux/dev_kvm.txt
+++ b/sys/linux/dev_kvm.txt
@@ -338,25 +338,30 @@ kvm_msi {
kvm_one_reg [
# Constants from https://docs.kernel.org/virt/kvm/api.html
- arm64_core kvm_one_reg_arm64_srange[0x6030000000100000:0x6030000000100050, 2]
- arm64_fp kvm_one_reg_arm64_range[0x6040000000100054:0x60400000001000d0]
- arm64_fp_extra kvm_one_reg_arm64_range[0x60200000001000d4:0x60200000001000d5]
+ arm64_core kvm_one_reg_arm64_srange[0x6030000000100000:0x6030000000100050, 2]
+ arm64_fp kvm_one_reg_arm64_range[0x6040000000100054:0x60400000001000d0]
+ arm64_fp_extra kvm_one_reg_arm64_range[0x60200000001000d4:0x60200000001000d5]
# Got 0x602000000011000d from KVM_GET_REG_LIST on QEMU
- arm64_ccsidr kvm_one_reg_arm64_range[0x6020000000110000:0x602000000011000d]
- arm64_sys kvm_one_reg_arm64[kvm_regs_arm64_sys]
- arm64_extra kvm_one_reg_arm64[kvm_regs_arm64_extra]
- arm64_bitmap kvm_one_reg_arm64_range[0x6030000000160000:0x6030000000160002]
- arm64_fw kvm_one_reg_arm64_range[0x6030000000140000:0x6030000000140003]
- arm64_sve kvm_one_reg_arm64_range[0x6080000000150000:0x6080000000150620]
- arm64_sve_vls kvm_one_reg_arm64_range[0x606000000015ffff]
- other kvm_one_reg_other
+ arm64_ccsidr kvm_one_reg_arm64_range[0x6020000000110000:0x602000000011000d]
+ arm64_sys kvm_one_reg_arm64[kvm_regs_arm64_sys]
+ arm64_extra kvm_one_reg_arm64[kvm_regs_arm64_extra]
+ arm64_bitmap kvm_one_reg_arm64_range[0x6030000000160000:0x6030000000160002]
+ arm64_fw kvm_one_reg_arm64_range[0x6030000000140000:0x6030000000140003]
+ arm64_sve kvm_one_reg_arm64_range[0x6080000000150000:0x6080000000150620]
+ arm64_sve_vls kvm_one_reg_arm64_range[0x606000000015ffff]
+ other kvm_one_reg_other
# For riscv64
- riscv64_config kvm_one_reg_riscv64[kvm_regs_riscv64_config]
- riscv64_core kvm_one_reg_riscv64[kvm_regs_riscv64_core]
- riscv64_csr kvm_one_reg_riscv64[kvm_regs_riscv64_csr]
- riscv64_timer kvm_one_reg_riscv64[kvm_regs_riscv64_timer]
- riscv64_f kvm_one_reg_riscv64[kvm_regs_riscv64_f]
- riscv64_d kvm_one_reg_riscv64[kvm_regs_riscv64_d]
+ riscv64_config kvm_one_reg_riscv64[kvm_regs_riscv64_config]
+ riscv64_core kvm_one_reg_riscv64[kvm_regs_riscv64_core]
+ riscv64_csr kvm_one_reg_riscv64[kvm_regs_riscv64_csr]
+ riscv64_aia_csr kvm_one_reg_riscv64[kvm_regs_riscv64_aia_csr]
+ riscv64_smstateen_csr kvm_one_reg_riscv64[kvm_regs_riscv64_smstateen_csr]
+ riscv64_timer kvm_one_reg_riscv64[kvm_regs_riscv64_timer]
+ riscv64_sbi_sta kvm_one_reg_riscv64[kvm_regs_riscv64_sbi_sta]
+ riscv64_sbi_fwft kvm_one_reg_riscv64[kvm_regs_riscv64_sbi_fwft]
+ riscv64_f kvm_one_reg_riscv64[kvm_regs_riscv64_f]
+ riscv64_d kvm_one_reg_riscv64[kvm_regs_riscv64_d]
+ riscv64_v kvm_one_reg_riscv64[kvm_regs_riscv64_v]
]
type kvm_one_reg_riscv64[FTYPE] {
@@ -636,10 +641,15 @@ kvm_regs_arm64_sys = 0x6030000000138002, 0x6030000000138010, 0x6030000000138012,
kvm_regs_arm64_extra = 0x603000000013c01b, 0x603000000013c01f, 0x603000000013c022, 0x603000000013c023, 0x603000000013c025, 0x603000000013c026, 0x603000000013c027, 0x603000000013c02a, 0x603000000013c02b, 0x603000000013c02e, 0x603000000013c02f, 0x603000000013c033, 0x603000000013c034, 0x603000000013c035, 0x603000000013c036, 0x603000000013c037, 0x603000000013c03b, 0x603000000013c03c, 0x603000000013c03d, 0x603000000013c03e, 0x603000000013c03f, 0x603000000013c103, 0x603000000013c512, 0x603000000013c513
# End of register descriptions generated by tools/arm64/registers.go
-# For riscv64, https://elixir.bootlin.com/linux/v6.19-rc4/source/Documentation/virt/kvm/api.rst#L2765
+# For riscv64, the following ids are computed from arch/riscv/include/uapi/asm/kvm.h and arch/riscv/include/uapi/asm/ptrace.h .
kvm_regs_riscv64_config = 0x8030000000100000, 0x8030000000100001, 0x8030000000100002, 0x8030000000100003, 0x8030000000100004, 0x8030000000100005, 0x8030000000100006, 0x8030000000100007
kvm_regs_riscv64_core = 0x8030000000200000, 0x8030000000200001, 0x8030000000200002, 0x8030000000200003, 0x8030000000200004, 0x8030000000200005, 0x8030000000200006, 0x8030000000200007, 0x8030000000200008, 0x8030000000200009, 0x803000000020000a, 0x803000000020000b, 0x803000000020000c, 0x803000000020000d, 0x803000000020000e, 0x803000000020000f, 0x8030000000200010, 0x8030000000200011, 0x8030000000200012, 0x8030000000200013, 0x8030000000200014, 0x8030000000200015, 0x8030000000200016, 0x8030000000200017, 0x8030000000200018, 0x8030000000200019, 0x803000000020001a, 0x803000000020001b, 0x803000000020001c, 0x803000000020001d, 0x803000000020001e, 0x803000000020001f, 0x8030000000200020
kvm_regs_riscv64_csr = 0x8030000000300000, 0x8030000000300001, 0x8030000000300002, 0x8030000000300003, 0x8030000000300004, 0x8030000000300005, 0x8030000000300006, 0x8030000000300007, 0x8030000000300008
+kvm_regs_riscv64_aia_csr = 0x8030000003010000, 0x8030000003010001, 0x8030000003010002, 0x8030000003010003, 0x8030000003010004, 0x8030000003010005, 0x8030000003010006
+kvm_regs_riscv64_smstateen_csr = 0x8030000003020000
kvm_regs_riscv64_timer = 0x8030000004000000, 0x8030000004000001, 0x8030000004000002, 0x8030000004000003
+kvm_regs_riscv64_sbi_sta = 0x803000000a000000, 0x803000000a000001
+kvm_regs_riscv64_sbi_fwft = 0x803000000a010000, 0x803000000a010001, 0x803000000a010002, 0x803000000a010003, 0x803000000a010004, 0x803000000a010005
kvm_regs_riscv64_f = 0x8020000005000000, 0x8020000005000001, 0x8020000005000002, 0x8020000005000003, 0x8020000005000004, 0x8020000005000005, 0x8020000005000006, 0x8020000005000007, 0x8020000005000008, 0x8020000005000009, 0x802000000500000a, 0x802000000500000b, 0x802000000500000c, 0x802000000500000d, 0x802000000500000e, 0x802000000500000f, 0x8020000005000010, 0x8020000005000011, 0x8020000005000012, 0x8020000005000013, 0x8020000005000014, 0x8020000005000015, 0x8020000005000016, 0x8020000005000017, 0x8020000005000018, 0x8020000005000019, 0x802000000500001a, 0x802000000500001b, 0x802000000500001c, 0x802000000500001d, 0x802000000500001e, 0x802000000500001f, 0x8020000005000020
kvm_regs_riscv64_d = 0x8030000006000000, 0x8030000006000001, 0x8030000006000002, 0x8030000006000003, 0x8030000006000004, 0x8030000006000005, 0x8030000006000006, 0x8030000006000007, 0x8030000006000008, 0x8030000006000009, 0x803000000600000a, 0x803000000600000b, 0x803000000600000c, 0x803000000600000d, 0x803000000600000e, 0x803000000600000f, 0x8030000006000010, 0x8030000006000011, 0x8030000006000012, 0x8030000006000013, 0x8030000006000014, 0x8030000006000015, 0x8030000006000016, 0x8030000006000017, 0x8030000006000018, 0x8030000006000019, 0x803000000600001a, 0x803000000600001b, 0x803000000600001c, 0x803000000600001d, 0x803000000600001e, 0x803000000600001f, 0x8020000006000020
+kvm_regs_riscv64_v = 0x8030000009000000, 0x8030000009000001, 0x8030000009000002, 0x8030000009000003, 0x8030000009000004, 0x8030000009000005, 0x8030000009000006, 0x8030000009000007, 0x8030000009000008, 0x8030000009000009, 0x803000000900000a, 0x803000000900000b, 0x803000000900000c, 0x803000000900000d, 0x803000000900000e, 0x803000000900000f, 0x8030000009000010, 0x8030000009000011, 0x8030000009000012, 0x8030000009000013, 0x8030000009000014, 0x8030000009000015, 0x8030000009000016, 0x8030000009000017, 0x8030000009000018, 0x8030000009000019, 0x803000000900001a, 0x803000000900001b, 0x803000000900001c, 0x803000000900001d, 0x803000000900001e, 0x803000000900001f, 0x8030000009000020, 0x8030000009000021, 0x8030000009000022, 0x8030000009000023, 0x8030000009000024, 0x8030000009000025