Commit 69bf758b authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Paolo Bonzini

docs: kvm: convert arm/hyp-abi.txt to ReST

- Add proper markups for titles;
- Adjust whitespaces and blank lines to match ReST
  needs;
- Mark literal blocks as such.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 106ee47d
* Internal ABI between the kernel and HYP .. SPDX-License-Identifier: GPL-2.0
=======================================
Internal ABI between the kernel and HYP
=======================================
This file documents the interaction between the Linux kernel and the This file documents the interaction between the Linux kernel and the
hypervisor layer when running Linux as a hypervisor (for example hypervisor layer when running Linux as a hypervisor (for example
...@@ -19,25 +23,31 @@ and only act on individual CPUs. ...@@ -19,25 +23,31 @@ and only act on individual CPUs.
Unless specified otherwise, any built-in hypervisor must implement Unless specified otherwise, any built-in hypervisor must implement
these functions (see arch/arm{,64}/include/asm/virt.h): these functions (see arch/arm{,64}/include/asm/virt.h):
* r0/x0 = HVC_SET_VECTORS * ::
r1/x1 = vectors
r0/x0 = HVC_SET_VECTORS
r1/x1 = vectors
Set HVBAR/VBAR_EL2 to 'vectors' to enable a hypervisor. 'vectors' Set HVBAR/VBAR_EL2 to 'vectors' to enable a hypervisor. 'vectors'
must be a physical address, and respect the alignment requirements must be a physical address, and respect the alignment requirements
of the architecture. Only implemented by the initial stubs, not by of the architecture. Only implemented by the initial stubs, not by
Linux hypervisors. Linux hypervisors.
* r0/x0 = HVC_RESET_VECTORS * ::
r0/x0 = HVC_RESET_VECTORS
Turn HYP/EL2 MMU off, and reset HVBAR/VBAR_EL2 to the initials Turn HYP/EL2 MMU off, and reset HVBAR/VBAR_EL2 to the initials
stubs' exception vector value. This effectively disables an existing stubs' exception vector value. This effectively disables an existing
hypervisor. hypervisor.
* r0/x0 = HVC_SOFT_RESTART * ::
r1/x1 = restart address
x2 = x0's value when entering the next payload (arm64) r0/x0 = HVC_SOFT_RESTART
x3 = x1's value when entering the next payload (arm64) r1/x1 = restart address
x4 = x2's value when entering the next payload (arm64) x2 = x0's value when entering the next payload (arm64)
x3 = x1's value when entering the next payload (arm64)
x4 = x2's value when entering the next payload (arm64)
Mask all exceptions, disable the MMU, move the arguments into place Mask all exceptions, disable the MMU, move the arguments into place
(arm64 only), and jump to the restart address while at HYP/EL2. This (arm64 only), and jump to the restart address while at HYP/EL2. This
......
...@@ -7,4 +7,5 @@ ARM ...@@ -7,4 +7,5 @@ ARM
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
hyp-abi
pvtime pvtime
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment