1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2019 Western Digital Corporation or its affiliates.
9 #include <linux/linkage.h>
17 * Instruction encoding of hfence.gvma is:
18 * HFENCE.GVMA rs1, rs2
19 * HFENCE.GVMA zero, rs2
23 * rs1!=zero and rs2!=zero ==> HFENCE.GVMA rs1, rs2
24 * rs1==zero and rs2!=zero ==> HFENCE.GVMA zero, rs2
25 * rs1!=zero and rs2==zero ==> HFENCE.GVMA rs1
26 * rs1==zero and rs2==zero ==> HFENCE.GVMA
28 * Instruction encoding of HFENCE.GVMA is:
29 * 0110001 rs2(5) rs1(5) 000 00000 1110011
32 ENTRY(__kvm_riscv_hfence_gvma_vmid_gpa)
37 * 0110001 01011 01010 000 00000 1110011
41 ENDPROC(__kvm_riscv_hfence_gvma_vmid_gpa)
43 ENTRY(__kvm_riscv_hfence_gvma_vmid)
47 * HFENCE.GVMA zero, a0
48 * 0110001 01010 00000 000 00000 1110011
52 ENDPROC(__kvm_riscv_hfence_gvma_vmid)
54 ENTRY(__kvm_riscv_hfence_gvma_gpa)
59 * 0110001 00000 01010 000 00000 1110011
63 ENDPROC(__kvm_riscv_hfence_gvma_gpa)
65 ENTRY(__kvm_riscv_hfence_gvma_all)
70 * 0110001 00000 00000 000 00000 1110011
74 ENDPROC(__kvm_riscv_hfence_gvma_all)