Messages in this thread | | | Date | Mon, 23 Nov 2020 10:58:07 +0000 | From | Marc Zyngier <> | Subject | Re: [PATCH v15 8/9] doc: add ptp_kvm introduction for arm64 support |
| |
On 2020-11-11 06:22, Jianyong Wu wrote: > PTP_KVM implementation depends on hypercall using SMCCC. So we > introduce a new SMCCC service ID. This doc explains how does the > ID define and how does PTP_KVM works on arm/arm64. > > Signed-off-by: Jianyong Wu <jianyong.wu@arm.com> > --- > Documentation/virt/kvm/api.rst | 9 +++++++ > Documentation/virt/kvm/arm/index.rst | 1 + > Documentation/virt/kvm/arm/ptp_kvm.rst | 29 +++++++++++++++++++++ > Documentation/virt/kvm/timekeeping.rst | 35 ++++++++++++++++++++++++++ > 4 files changed, 74 insertions(+) > create mode 100644 Documentation/virt/kvm/arm/ptp_kvm.rst > > diff --git a/Documentation/virt/kvm/api.rst > b/Documentation/virt/kvm/api.rst > index 36d5f1f3c6dd..9843dbcbf770 100644 > --- a/Documentation/virt/kvm/api.rst > +++ b/Documentation/virt/kvm/api.rst > @@ -6391,3 +6391,12 @@ When enabled, KVM will disable paravirtual > features provided to the > guest according to the bits in the KVM_CPUID_FEATURES CPUID leaf > (0x40000001). Otherwise, a guest may use the paravirtual features > regardless of what has actually been exposed through the CPUID leaf. > + > +8.27 KVM_CAP_PTP_KVM > +-------------------- > + > +:Architectures: arm64 > + > +This capability indicates that KVM virtual PTP service is supported in > host. > +It must company with the implementation of KVM virtual PTP service in > host > +so VMM can probe if there is the service in host by checking this > capability. > diff --git a/Documentation/virt/kvm/arm/index.rst > b/Documentation/virt/kvm/arm/index.rst > index 3e2b2aba90fc..78a9b670aafe 100644 > --- a/Documentation/virt/kvm/arm/index.rst > +++ b/Documentation/virt/kvm/arm/index.rst > @@ -10,3 +10,4 @@ ARM > hyp-abi > psci > pvtime > + ptp_kvm > diff --git a/Documentation/virt/kvm/arm/ptp_kvm.rst > b/Documentation/virt/kvm/arm/ptp_kvm.rst > new file mode 100644 > index 000000000000..bb1e6cfefe44 > --- /dev/null > +++ b/Documentation/virt/kvm/arm/ptp_kvm.rst > @@ -0,0 +1,29 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +PTP_KVM support for arm/arm64 > +============================= > + > +PTP_KVM is used for time sync between guest and host in a high > precision. > +It needs to get the wall time and counter value from the host and > transfer these > +to guest via hypercall service. So one more hypercall service has been > added. > + > +This new SMCCC hypercall is defined as: > + > +* ARM_SMCCC_HYP_KVM_PTP_FUNC_ID: 0x86000001 > + > +As both 32 and 64-bits ptp_kvm client should be supported, we choose > SMC32/HVC32 > +calling convention. > + > +ARM_SMCCC_HYP_KVM_PTP_FUNC_ID: > + > + ============= ========== ========== > + Function ID: (uint32) 0x86000001 > + Arguments: (uint32) ARM_PTP_PHY_COUNTER(1) or > ARM_PTP_VIRT_COUNTER(0) > + which indicate acquiring physical > counter or > + virtual counter respectively. > + return value: (uint32) NOT_SUPPORTED(-1) or val0 and val1 > represent > + wall clock time and val2 and val3 > represent > + counter cycle.
This needs a lot more description:
- Which word contains what part of the data (upper/lower part of the 64bit data) - The endianness of the data returned
M. -- Jazz is not dead. It just smells funny...
| |