qemu-patch-raspberry4/target-ppc
David Gibson f80872e21c mmu-hash64: Implement Virtual Page Class Key Protection
Version 2.06 of the Power architecture describes an additional page
protection mechanism.  Each virtual page has a "class" (0-31) recorded in
the PTE.  The AMR register contains bits which can prohibit reads and/or
writes on a class by class basis.  Interestingly, the AMR is userspace
readable and writable, however user mode writes are masked by the contents
of the UAMOR which is privileged.

This patch implements this protection mechanism, along with the AMR and
UAMOR SPRs.  The architecture also specifies a hypervisor-privileged AMOR
register which masks user and supervisor writes to the AMR and UAMOR.  We
leave this out for now, since we don't at present model hypervisor mode
correctly in any case.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
[agraf: fix 32-bit hosts]
Signed-off-by: Alexander Graf <agraf@suse.de>
2013-03-22 15:28:53 +01:00
..
cpu-models.c target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
cpu-models.h target-ppc: Move CPU aliases out of translate_init.c 2013-03-08 21:04:53 +01:00
cpu-qom.h cpu: Replace do_interrupt() by CPUClass::do_interrupt method 2013-03-12 10:35:55 +01:00
cpu.h mmu-hash64: Implement Virtual Page Class Key Protection 2013-03-22 15:28:53 +01:00
excp_helper.c cpu: Replace do_interrupt() by CPUClass::do_interrupt method 2013-03-12 10:35:55 +01:00
fpu_helper.c PPC/GDB: handle read and write of fpscr 2013-03-22 15:28:46 +01:00
helper.h target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
helper_regs.h cpu: Move halted and interrupt_request fields to CPUState 2013-03-12 10:35:55 +01:00
int_helper.c target-ppc: Split out SO, OV, CA fields from XER 2013-02-23 17:25:30 +00:00
kvm.c mmu-hash*: Add header file for definitions 2013-03-22 15:28:48 +01:00
kvm_ppc.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
kvm_ppc.h PPC: KVM: Add support for EPR with KVM 2013-01-18 19:06:57 +01:00
machine.c target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
Makefile.objs target-ppc: Disentangle pte_check() 2013-03-22 15:28:47 +01:00
mem_helper.c PPC: Unify dcbzl code path 2013-02-01 01:52:02 +01:00
mfrom_table.c find -type f | xargs sed -i 's/[\t ]$//g' # on most files 2007-09-16 21:08:06 +00:00
mfrom_table_gen.c fix spelling in target sub directory 2011-12-02 10:50:57 +00:00
misc_helper.c target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
mmu-hash32.c mmu-hash*: Merge translate and fault handling functions 2013-03-22 15:28:53 +01:00
mmu-hash32.h mmu-hash32: Clean up BAT matching logic 2013-03-22 15:28:51 +01:00
mmu-hash64.c mmu-hash64: Implement Virtual Page Class Key Protection 2013-03-22 15:28:53 +01:00
mmu-hash64.h mmu-hash64: Implement Virtual Page Class Key Protection 2013-03-22 15:28:53 +01:00
mmu_helper.c target-ppc: mmu_ctx_t should not be a global type 2013-03-22 15:28:48 +01:00
STATUS Fix typos in comments (chek -> check) 2011-05-22 22:31:45 +01:00
timebase_helper.c ppc: Avoid AREG0 for timebase helpers 2012-06-24 01:04:43 +02:00
translate.c target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
translate_init.c mmu-hash64: Implement Virtual Page Class Key Protection 2013-03-22 15:28:53 +01:00