qemu/target-ppc
David Gibson be18b2b53e target-ppc: Use actual page size encodings from HPTE
At present the 64-bit hash MMU code uses information from the SLB to
determine the page size of a translation.  We do need that information to
correctly look up the hash table.  However the MMU also allows a
possibly larger page size to be encoded into the HPTE itself, which is used
to populate the TLB.  At present qemu doesn't check that, and so doesn't
support the MPSS "Multiple Page Size per Segment" feature.

This makes a start on allowing this, by adding an hpte_page_shift()
function which looks up the page size of an HPTE.  We use this to validate
page sizes encodings on faults, and populate the qemu TLB with larger
page sizes when appropriate.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Alexander Graf <agraf@suse.de>
2016-01-30 23:37:38 +11:00
..
Makefile.objs kvm_ppc: remove kvmppc_timer_hack 2015-09-20 22:48:38 +02:00
STATUS target-ppc: remove powerpc 970gx 2014-03-05 03:06:23 +01:00
arch_dump.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
cpu-models.c target-ppc: Use sensible POWER8/POWER8E versions 2016-01-30 23:36:16 +11:00
cpu-models.h target-ppc: Use sensible POWER8/POWER8E versions 2016-01-30 23:36:16 +11:00
cpu-qom.h dump: qemunotes aren't commonly needed 2016-01-15 14:40:24 +00:00
cpu.h target-ppc: Rework SLB page size lookup 2016-01-30 23:37:38 +11:00
dfp_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
excp_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
fpu_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
gdbstub.c target-ppc: rename and export maybe_bswap_register() 2016-01-30 23:37:37 +11:00
helper.h target-ppc: Introduce tbegin 2015-01-07 16:16:27 +01:00
helper_regs.h PPC: Only enter MSR_POW when no interrupts pending 2014-04-08 11:20:05 +02:00
int_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
kvm-stub.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
kvm.c target-ppc: Rework ppc_store_slb 2016-01-30 23:37:38 +11:00
kvm_ppc.h target-ppc: Remove unused kvmppc_read_segment_page_sizes() stub 2016-01-30 23:37:38 +11:00
machine.c target-ppc: Rework SLB page size lookup 2016-01-30 23:37:38 +11:00
mem_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mfrom_table.c
mfrom_table_gen.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
misc_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mmu-hash32.c target-ppc: Convert mmu-hash{32,64}.[ch] from CPUPPCState to PowerPCCPU 2016-01-30 23:37:38 +11:00
mmu-hash32.h target-ppc: Convert mmu-hash{32,64}.[ch] from CPUPPCState to PowerPCCPU 2016-01-30 23:37:38 +11:00
mmu-hash64.c target-ppc: Use actual page size encodings from HPTE 2016-01-30 23:37:38 +11:00
mmu-hash64.h target-ppc: Rework ppc_store_slb 2016-01-30 23:37:38 +11:00
mmu_helper.c target-ppc: Rework ppc_store_slb 2016-01-30 23:37:38 +11:00
monitor.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
timebase_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
translate.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
translate_init.c target-ppc: gdbstub: Add VSX support 2016-01-30 23:37:38 +11:00
user_only_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00