MIPS: KVM: Add Config4/5 and writing of Config registers
authorJames Hogan <james.hogan@imgtec.com>
Thu, 26 Jun 2014 14:11:29 +0000 (15:11 +0100)
committerJames Hogan <james.hogan@imgtec.com>
Fri, 27 Mar 2015 21:25:12 +0000 (21:25 +0000)
commitc771607af959f282704268a209743560d3264eb3
tree3916947b717cd4b4af754bf881063490e204c6e4
parent2211ee810ac6fdcdb42b7a126e20d1b4e5c55124
MIPS: KVM: Add Config4/5 and writing of Config registers

Add Config4 and Config5 co-processor 0 registers, and add capability to
write the Config1, Config3, Config4, and Config5 registers using the KVM
API.

Only supported bits can be written, to minimise the chances of the guest
being given a configuration from e.g. QEMU that is inconsistent with
that being emulated, and as such the handling is in trap_emul.c as it
may need to be different for VZ. Currently the only modification
permitted is to make Config4 and Config5 exist via the M bits, but other
bits will be added for FPU and MSA support in future patches.

Care should be taken by userland not to change bits without fully
handling the possible extra state that may then exist and which the
guest may begin to use and depend on.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Gleb Natapov <gleb@kernel.org>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Documentation/virtual/kvm/api.txt
arch/mips/include/asm/kvm_host.h
arch/mips/kvm/emulate.c
arch/mips/kvm/mips.c
arch/mips/kvm/trap_emul.c