PTP_KVM support for arm/arm64

PTP_KVM is used for high precision time sync between host and guests. It relies on transferring the wall clock and counter value from the host to the guest using a KVM-specific hypercall.

  • ARM_SMCCC_VENDOR_HYP_KVM_PTP_FUNC_ID: 0x86000001

This hypercall uses the SMC32/HVC32 calling convention:

ARM_SMCCC_VENDOR_HYP_KVM_PTP_FUNC_ID

Function ID:

(uint32)

0x86000001

Arguments:

(uint32)

KVM_PTP_VIRT_COUNTER(0) KVM_PTP_PHYS_COUNTER(1)

Return Values:

(int32) (uint32) (uint32) (uint32) (uint32)

NOT_SUPPORTED(-1) on error, or Upper 32 bits of wall clock time (r0) Lower 32 bits of wall clock time (r1) Upper 32 bits of counter (r2) Lower 32 bits of counter (r3)

Endianness:

No Restrictions.