diff options
author | Marc Zyngier <maz@kernel.org> | 2021-04-06 15:46:42 +0300 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2021-04-09 20:26:16 +0300 |
commit | 5b32a53d6d057ab213abae33fc275be844051695 (patch) | |
tree | 18cf4999738d11b05c9a8ce977e3e0f6c3dd8ddf /Documentation/virt | |
parent | 1a219e08ecd76a047b231f6e860c0a7d4dfb49b7 (diff) | |
download | linux-5b32a53d6d057ab213abae33fc275be844051695.tar.xz |
KVM: arm64: Clarify vcpu reset behaviour
Although the KVM_ARM_VCPU_INIT documentation mention that the
registers are reset to their "initial values", it doesn't
describe what these values are.
Describe this state explicitly.
Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'Documentation/virt')
-rw-r--r-- | Documentation/virt/kvm/api.rst | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst index 38e327d4b479..fedfe7104105 100644 --- a/Documentation/virt/kvm/api.rst +++ b/Documentation/virt/kvm/api.rst @@ -3115,6 +3115,18 @@ optional features it should have. This will cause a reset of the cpu registers to their initial values. If this is not called, KVM_RUN will return ENOEXEC for that vcpu. +The initial values are defined as: + - Processor state: + * AArch64: EL1h, D, A, I and F bits set. All other bits + are cleared. + * AArch32: SVC, A, I and F bits set. All other bits are + cleared. + - General Purpose registers, including PC and SP: set to 0 + - FPSIMD/NEON registers: set to 0 + - SVE registers: set to 0 + - System registers: Reset to their architecturally defined + values as for a warm reset to EL1 (resp. SVC) + Note that because some registers reflect machine topology, all vcpus should be created before this ioctl is invoked. |