Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com> Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Brett A C Sheffield <bacs@librecast.net> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Luna Jernberg <droidbittin@gmail.com> Tested-by: Ronald Warsow <rwarsow@gmx.de> Tested-by: Justin M. Forbes <jforbes@fedoraproject.org> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
36 lines
2.0 KiB
ReStructuredText
36 lines
2.0 KiB
ReStructuredText
.. 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 |
|
|
+---------------------+----------+----+---------------------------------------+
|