OpenCloudOS-Kernel/arch/mips/kvm
James Hogan 7801bbe1bd KVM: MIPS/T&E: Implement CP0_EBase register
The CP0_EBase register is a standard feature of MIPS32r2, so we should
always have been implementing it properly. However the register value
was ignored and wasn't exposed to userland.

Fix the emulation of exceptions and interrupts to use the value stored
in guest CP0_EBase, and fix the masks so that the top 3 bits (rather
than the standard 2) are fixed, so that it is always in the guest KSeg0
segment.

Also add CP0_EBASE to the KVM one_reg interface so it can be accessed by
userland, also allowing the CPU number field to be written (which isn't
permitted by the guest).

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
2017-02-03 15:21:30 +00:00
..
00README.txt KVM/MIPS32: Release notes and KVM module Makefile 2013-05-08 03:55:35 +02:00
Kconfig KVM: MIPS/MMU: Implement KVM_CAP_SYNC_MMU 2017-02-03 15:21:28 +00:00
Makefile MIPS; KVM: Convert exception entry to uasm 2016-07-05 16:08:46 +02:00
callback.c MIPS: KVM: Convert EXPORT_SYMBOL to _GPL 2016-01-24 03:13:24 +01:00
commpage.c MIPS: kvm: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
commpage.h MIPS: KVM: Rename files to remove the prefix "kvm_" and "kvm_mips_" 2014-06-30 16:52:03 +02:00
dyntrans.c KVM: MIPS/T&E: Use lockless GVA helpers for dyntrans 2017-02-03 15:21:12 +00:00
emulate.c KVM: MIPS/T&E: Implement CP0_EBase register 2017-02-03 15:21:30 +00:00
entry.c KVM: MIPS: Use CP0_BadInstr[P] for emulation 2017-02-03 15:21:07 +00:00
fpu.S MIPS: KVM: Fix fpu.S misassembly with r6 2016-07-05 16:09:11 +02:00
interrupt.c KVM: MIPS/T&E: Implement CP0_EBase register 2017-02-03 15:21:30 +00:00
interrupt.h MIPS; KVM: Convert exception entry to uasm 2016-07-05 16:08:46 +02:00
mips.c KVM: MIPS/T&E: Move CP0 register access into T&E 2017-02-03 15:21:30 +00:00
mmu.c KVM: MIPS/MMU: Implement KVM_CAP_SYNC_MMU 2017-02-03 15:21:28 +00:00
msa.S MIPS: KVM: Add base guest MSA support 2015-03-27 21:25:19 +00:00
stats.c MIPS: KVM: Clean up kvm_exit trace event 2016-06-14 11:16:23 +02:00
tlb.c KVM: MIPS/Emulate: Use lockless GVA helpers for cache emulation 2017-02-03 15:21:15 +00:00
trace.h MIPS: KVM: Combine entry trace events into class 2016-06-23 19:17:30 +02:00
trap_emul.c KVM: MIPS/T&E: Implement CP0_EBase register 2017-02-03 15:21:30 +00:00