Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

RISC-V: Add hypervisor extension related CSR defines

This patch adds asm/kvm_csr.h for RISC-V hypervisor extension
related defines.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Message-Id: <20210927114016.1089328-2-anup.patel@wdc.com>
Acked-by: Palmer Dabbelt <palmerdabbelt@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

authored by

Anup Patel and committed by
Paolo Bonzini
3f2401f4 2353e593

+87
+87
arch/riscv/include/asm/csr.h
··· 58 58 59 59 /* Interrupt causes (minus the high bit) */ 60 60 #define IRQ_S_SOFT 1 61 + #define IRQ_VS_SOFT 2 61 62 #define IRQ_M_SOFT 3 62 63 #define IRQ_S_TIMER 5 64 + #define IRQ_VS_TIMER 6 63 65 #define IRQ_M_TIMER 7 64 66 #define IRQ_S_EXT 9 67 + #define IRQ_VS_EXT 10 65 68 #define IRQ_M_EXT 11 66 69 67 70 /* Exception causes */ 68 71 #define EXC_INST_MISALIGNED 0 69 72 #define EXC_INST_ACCESS 1 73 + #define EXC_INST_ILLEGAL 2 70 74 #define EXC_BREAKPOINT 3 71 75 #define EXC_LOAD_ACCESS 5 72 76 #define EXC_STORE_ACCESS 7 73 77 #define EXC_SYSCALL 8 78 + #define EXC_HYPERVISOR_SYSCALL 9 79 + #define EXC_SUPERVISOR_SYSCALL 10 74 80 #define EXC_INST_PAGE_FAULT 12 75 81 #define EXC_LOAD_PAGE_FAULT 13 76 82 #define EXC_STORE_PAGE_FAULT 15 83 + #define EXC_INST_GUEST_PAGE_FAULT 20 84 + #define EXC_LOAD_GUEST_PAGE_FAULT 21 85 + #define EXC_VIRTUAL_INST_FAULT 22 86 + #define EXC_STORE_GUEST_PAGE_FAULT 23 77 87 78 88 /* PMP configuration */ 79 89 #define PMP_R 0x01 ··· 94 84 #define PMP_A_NA4 0x10 95 85 #define PMP_A_NAPOT 0x18 96 86 #define PMP_L 0x80 87 + 88 + /* HSTATUS flags */ 89 + #ifdef CONFIG_64BIT 90 + #define HSTATUS_VSXL _AC(0x300000000, UL) 91 + #define HSTATUS_VSXL_SHIFT 32 92 + #endif 93 + #define HSTATUS_VTSR _AC(0x00400000, UL) 94 + #define HSTATUS_VTW _AC(0x00200000, UL) 95 + #define HSTATUS_VTVM _AC(0x00100000, UL) 96 + #define HSTATUS_VGEIN _AC(0x0003f000, UL) 97 + #define HSTATUS_VGEIN_SHIFT 12 98 + #define HSTATUS_HU _AC(0x00000200, UL) 99 + #define HSTATUS_SPVP _AC(0x00000100, UL) 100 + #define HSTATUS_SPV _AC(0x00000080, UL) 101 + #define HSTATUS_GVA _AC(0x00000040, UL) 102 + #define HSTATUS_VSBE _AC(0x00000020, UL) 103 + 104 + /* HGATP flags */ 105 + #define HGATP_MODE_OFF _AC(0, UL) 106 + #define HGATP_MODE_SV32X4 _AC(1, UL) 107 + #define HGATP_MODE_SV39X4 _AC(8, UL) 108 + #define HGATP_MODE_SV48X4 _AC(9, UL) 109 + 110 + #define HGATP32_MODE_SHIFT 31 111 + #define HGATP32_VMID_SHIFT 22 112 + #define HGATP32_VMID_MASK _AC(0x1FC00000, UL) 113 + #define HGATP32_PPN _AC(0x003FFFFF, UL) 114 + 115 + #define HGATP64_MODE_SHIFT 60 116 + #define HGATP64_VMID_SHIFT 44 117 + #define HGATP64_VMID_MASK _AC(0x03FFF00000000000, UL) 118 + #define HGATP64_PPN _AC(0x00000FFFFFFFFFFF, UL) 119 + 120 + #define HGATP_PAGE_SHIFT 12 121 + 122 + #ifdef CONFIG_64BIT 123 + #define HGATP_PPN HGATP64_PPN 124 + #define HGATP_VMID_SHIFT HGATP64_VMID_SHIFT 125 + #define HGATP_VMID_MASK HGATP64_VMID_MASK 126 + #define HGATP_MODE_SHIFT HGATP64_MODE_SHIFT 127 + #else 128 + #define HGATP_PPN HGATP32_PPN 129 + #define HGATP_VMID_SHIFT HGATP32_VMID_SHIFT 130 + #define HGATP_VMID_MASK HGATP32_VMID_MASK 131 + #define HGATP_MODE_SHIFT HGATP32_MODE_SHIFT 132 + #endif 133 + 134 + /* VSIP & HVIP relation */ 135 + #define VSIP_TO_HVIP_SHIFT (IRQ_VS_SOFT - IRQ_S_SOFT) 136 + #define VSIP_VALID_MASK ((_AC(1, UL) << IRQ_S_SOFT) | \ 137 + (_AC(1, UL) << IRQ_S_TIMER) | \ 138 + (_AC(1, UL) << IRQ_S_EXT)) 97 139 98 140 /* symbolic CSR names: */ 99 141 #define CSR_CYCLE 0xc00 ··· 165 103 #define CSR_STVAL 0x143 166 104 #define CSR_SIP 0x144 167 105 #define CSR_SATP 0x180 106 + 107 + #define CSR_VSSTATUS 0x200 108 + #define CSR_VSIE 0x204 109 + #define CSR_VSTVEC 0x205 110 + #define CSR_VSSCRATCH 0x240 111 + #define CSR_VSEPC 0x241 112 + #define CSR_VSCAUSE 0x242 113 + #define CSR_VSTVAL 0x243 114 + #define CSR_VSIP 0x244 115 + #define CSR_VSATP 0x280 116 + 117 + #define CSR_HSTATUS 0x600 118 + #define CSR_HEDELEG 0x602 119 + #define CSR_HIDELEG 0x603 120 + #define CSR_HIE 0x604 121 + #define CSR_HTIMEDELTA 0x605 122 + #define CSR_HCOUNTEREN 0x606 123 + #define CSR_HGEIE 0x607 124 + #define CSR_HTIMEDELTAH 0x615 125 + #define CSR_HTVAL 0x643 126 + #define CSR_HIP 0x644 127 + #define CSR_HVIP 0x645 128 + #define CSR_HTINST 0x64a 129 + #define CSR_HGATP 0x680 130 + #define CSR_HGEIP 0xe12 168 131 169 132 #define CSR_MSTATUS 0x300 170 133 #define CSR_MISA 0x301