| .. SPDX-License-Identifier: GPL-2.0 |
| |
| 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`` |
| ---------------------------------------- |
| |
| Retrieve current time information for the specific counter. There are no |
| endianness restrictions. |
| |
| +---------------------+-------------------------------------------------------+ |
| | Presence: | Optional | |
| +---------------------+-------------------------------------------------------+ |
| | Calling convention: | HVC32 | |
| +---------------------+----------+--------------------------------------------+ |
| | Function ID: | (uint32) | 0x86000001 | |
| +---------------------+----------+----+---------------------------------------+ |
| | Arguments: | (uint32) | R1 | ``KVM_PTP_VIRT_COUNTER (0)`` | |
| | | | +---------------------------------------+ |
| | | | | ``KVM_PTP_PHYS_COUNTER (1)`` | |
| +---------------------+----------+----+---------------------------------------+ |
| | Return Values: | (int32) | R0 | ``NOT_SUPPORTED (-1)`` on error, else | |
| | | | | upper 32 bits of wall clock time | |
| | +----------+----+---------------------------------------+ |
| | | (uint32) | R1 | Lower 32 bits of wall clock time | |
| | +----------+----+---------------------------------------+ |
| | | (uint32) | R2 | Upper 32 bits of counter | |
| | +----------+----+---------------------------------------+ |
| | | (uint32) | R3 | Lower 32 bits of counter | |
| +---------------------+----------+----+---------------------------------------+ |