ppc: Fix 64K pages support in full emulation
commit4322e8ced5aaac7191958f09622d199fe61e2d87
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 28 Jun 2016 06:48:34 +0000 (28 08:48 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Thu, 30 Jun 2016 23:57:01 +0000 (1 09:57 +1000)
treea5391ba478bd020001332b556dc06ce06dc5e5f9
parenta36848ff7ca54d9181ec6c2202ce7563a2c5cfdc
ppc: Fix 64K pages support in full emulation

We were always advertising only 4K & 16M. Additionally the code wasn't
properly matching the page size with the PTE content, which meant we
could potentially hit an incorrect PTE if the guest used multiple sizes.

Finally, honor the CPU capabilities when decoding the size from the SLB
so we don't try to use 64K pages on 970.

This still doesn't add support for MPSS (Multiple Page Sizes per Segment)

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg: fixed checkpatch.pl errors
      commits 61a36c9b5a12 and 1114e712c998 reworked the hpte code
      doing insertion/removal in hw/ppc/spapr_hcall.c. The hunks
      modifying these areas were removed. ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
target-ppc/cpu-qom.h
target-ppc/mmu-hash64.c
target-ppc/translate_init.c