ANDROID: KVM: arm64: Define MMIO guard hypercalls
Define the handful of hypercalls that MMIO guard will require. Bug: 357781595 Change-Id: Iac312b2327c31a1532fdb38e8fa8066291d9f611 Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Fuad Tabba <tabba@google.com>
This commit is contained in:
committed by
Keir Fraser
parent
a8951d41fa
commit
4bc142f9c2
@@ -86,7 +86,7 @@ static int mmio_guard_ioremap_hook(phys_addr_t phys, size_t size,
|
||||
end = phys + PAGE_ALIGN(size);
|
||||
|
||||
while (phys < end) {
|
||||
const int func_id = ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_FUNC_ID;
|
||||
const int func_id = ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_MAP_FUNC_ID;
|
||||
int err;
|
||||
|
||||
err = arm_smccc_do_one_page(func_id, phys);
|
||||
@@ -122,6 +122,6 @@ void pkvm_init_hyp_services(void)
|
||||
pkvm_granule = res.a0;
|
||||
arm64_mem_crypt_ops_register(&pkvm_crypt_ops);
|
||||
|
||||
if (kvm_arm_hyp_service_available(ARM_SMCCC_KVM_FUNC_MMIO_GUARD))
|
||||
if (kvm_arm_hyp_service_available(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_MAP))
|
||||
arm64_ioremap_prot_hook_register(&mmio_guard_ioremap_hook);
|
||||
}
|
||||
|
||||
+28
-10
@@ -119,10 +119,10 @@
|
||||
#define ARM_SMCCC_KVM_FUNC_HYP_MEMINFO 2
|
||||
#define ARM_SMCCC_KVM_FUNC_MEM_SHARE 3
|
||||
#define ARM_SMCCC_KVM_FUNC_MEM_UNSHARE 4
|
||||
#define ARM_SMCCC_KVM_FUNC_PKVM_RESV_5 5
|
||||
#define ARM_SMCCC_KVM_FUNC_PKVM_RESV_6 6
|
||||
#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD 7
|
||||
#define ARM_SMCCC_KVM_FUNC_PKVM_RESV_8 8
|
||||
#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD_INFO 5
|
||||
#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD_ENROLL 6
|
||||
#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD_MAP 7
|
||||
#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD_UNMAP 8
|
||||
#define ARM_SMCCC_KVM_FUNC_PKVM_RESV_9 9
|
||||
#define ARM_SMCCC_KVM_FUNC_PKVM_RESV_10 10
|
||||
#define ARM_SMCCC_KVM_FUNC_PKVM_RESV_11 11
|
||||
@@ -219,16 +219,34 @@
|
||||
ARM_SMCCC_OWNER_VENDOR_HYP, \
|
||||
ARM_SMCCC_KVM_FUNC_MEM_UNSHARE)
|
||||
|
||||
#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_FUNC_ID \
|
||||
ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
|
||||
ARM_SMCCC_SMC_64, \
|
||||
ARM_SMCCC_OWNER_VENDOR_HYP, \
|
||||
ARM_SMCCC_KVM_FUNC_MMIO_GUARD)
|
||||
|
||||
/* ptp_kvm counter type ID */
|
||||
#define KVM_PTP_VIRT_COUNTER 0
|
||||
#define KVM_PTP_PHYS_COUNTER 1
|
||||
|
||||
#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_INFO_FUNC_ID \
|
||||
ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
|
||||
ARM_SMCCC_SMC_64, \
|
||||
ARM_SMCCC_OWNER_VENDOR_HYP, \
|
||||
ARM_SMCCC_KVM_FUNC_MMIO_GUARD_INFO)
|
||||
|
||||
#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_ENROLL_FUNC_ID \
|
||||
ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
|
||||
ARM_SMCCC_SMC_64, \
|
||||
ARM_SMCCC_OWNER_VENDOR_HYP, \
|
||||
ARM_SMCCC_KVM_FUNC_MMIO_GUARD_ENROLL)
|
||||
|
||||
#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_MAP_FUNC_ID \
|
||||
ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
|
||||
ARM_SMCCC_SMC_64, \
|
||||
ARM_SMCCC_OWNER_VENDOR_HYP, \
|
||||
ARM_SMCCC_KVM_FUNC_MMIO_GUARD_MAP)
|
||||
|
||||
#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_UNMAP_FUNC_ID \
|
||||
ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
|
||||
ARM_SMCCC_SMC_64, \
|
||||
ARM_SMCCC_OWNER_VENDOR_HYP, \
|
||||
ARM_SMCCC_KVM_FUNC_MMIO_GUARD_UNMAP)
|
||||
|
||||
/* Paravirtualised time calls (defined by ARM DEN0057A) */
|
||||
#define ARM_SMCCC_HV_PV_TIME_FEATURES \
|
||||
ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
|
||||
|
||||
Reference in New Issue
Block a user