1
0
Fork 0
alistair23-linux/arch/powerpc/mm
Aneesh Kumar K.V 5dc1ef858c powerpc/mm: Use big endian Linux page tables for book3s 64
Traditionally Power server machines have used the Hashed Page Table MMU
mode. In this mode Linux manages its own tree of nested page tables,
aka. "the Linux page tables", which are not used by the hardware
directly, and software loads translations into the hash page table for
use by the hardware.

Power ISA 3.0 defines a new MMU mode, known as Radix Tree Translation,
where the hardware can directly operate on the Linux page tables.
However the hardware requires that the page tables be in big endian
format.

To accommodate this, switch the pgtable types to __be64 and add
appropriate endian conversions.

Because we will be supporting a single kernel binary that boots using
either radix or hash mode, we always store the Linux page tables big
endian, even in hash mode where they are not actually used by the
hardware.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
[mpe: Fix sparse errors, flesh out change log]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-05-01 18:32:18 +10:00
..
8xx_mmu.c powerpc/8xx: rewrite flush_instruction_cache() in C 2016-03-11 17:20:11 -06:00
40x_mmu.c powerpc/mm: Don't use pmd_val, pud_val and pgd_val as lvalue 2015-12-14 15:19:07 +11:00
44x_mmu.c powerpc: Delete __cpuinit usage from all users 2013-07-01 11:10:36 +10:00
Makefile powerpc/8xx: Map linear kernel RAM with 8M pages 2016-03-11 17:18:01 -06:00
copro_fault.c cxl: Move include file cxl.h -> cxl-base.h 2015-06-03 13:27:19 +10:00
dma-noncoherent.c powerpc: Simplify test in __dma_sync() 2016-03-11 17:20:12 -06:00
fault.c powerpc: Add plain English description for alignment exception oopses 2015-07-06 20:24:35 +10:00
fsl_booke_mmu.c powerpc32: refactor x_mapped_by_bats() and x_mapped_by_tlbcam() together 2016-03-11 17:18:02 -06:00
hash64_4k.c powerpc/mm: Add pte_xchg() helper 2016-05-01 18:32:16 +10:00
hash64_64k.c powerpc/mm: Use big endian Linux page tables for book3s 64 2016-05-01 18:32:18 +10:00
hash_low_32.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
hash_native_64.c powerpc/mm: Move THP headers around 2015-12-14 15:19:14 +11:00
hash_utils_64.c powerpc updates for 4.6 2016-03-19 15:38:41 -07:00
highmem.c sched/preempt, mm/kmap: Explicitly disable/enable preemption in kmap_atomic_* 2015-05-19 08:39:14 +02:00
hugepage-hash64.c powerpc/mm: Use big endian Linux page tables for book3s 64 2016-05-01 18:32:18 +10:00
hugetlbpage-book3e.c powerpc/fsl-book3e: Avoid lbarx on e5500 2016-03-03 23:43:05 -06:00
hugetlbpage-hash64.c powerpc/mm: Add pte_xchg() helper 2016-05-01 18:32:16 +10:00
hugetlbpage.c powerpc/mm: Fixup preempt underflow with huge pages 2016-03-29 12:08:07 +11:00
icswx.c powerpc: Fix typo "CONFIG_ICSWX_PID" 2013-04-18 13:03:54 +10:00
icswx.h powerpc/icswx: Fix race condition with IPI setting ACOP 2012-03-07 17:06:09 +11:00
icswx_pid.c powerpc: Split ICSWX ACOP and PID processing 2011-11-25 14:11:27 +11:00
init_32.c powerpc updates for 4.6 2016-03-19 15:38:41 -07:00
init_64.c powerpc/mm: Switch book3s 64 with 64K page size to 4 level page table 2016-03-03 21:18:28 +11:00
mem.c powerpc updates for 4.6 2016-03-19 15:38:41 -07:00
mmap.c powerpc: sparse: Include headers for __weak symbols 2016-04-12 21:05:19 +10:00
mmu_context_hash32.c powerpc: Remove power3 from comments 2014-07-28 14:10:26 +10:00
mmu_context_hash64.c mm: introduce page reference manipulation functions 2016-03-17 15:09:34 -07:00
mmu_context_iommu.c powerpc/mmu: Add userspace-to-physical addresses translation cache 2015-06-11 15:16:54 +10:00
mmu_context_nohash.c powerpc/8xx: reduce pressure on TLB due to context switches 2015-01-29 21:51:06 -06:00
mmu_decl.h powerpc32: remove ioremap_base 2016-03-11 17:18:02 -06:00
numa.c powerpc updates for 4.4 2015-11-05 23:38:43 -08:00
pgtable.c powerpc: Make vmalloc_to_phys() public 2016-02-16 13:44:26 +11:00
pgtable_32.c powerpc32: PAGE_EXEC required for inittext 2016-03-11 20:04:32 -06:00
pgtable_64.c powerpc/mm: Use big endian Linux page tables for book3s 64 2016-05-01 18:32:18 +10:00
ppc_mmu_32.c powerpc32: refactor x_mapped_by_bats() and x_mapped_by_tlbcam() together 2016-03-11 17:18:02 -06:00
slb.c powerpc/mm: Remove long disabled SLB code 2016-04-11 20:30:40 +10:00
slb_low.S powerpc/mm: Remove long disabled SLB code 2016-04-11 20:30:40 +10:00
slice.c powerpc: Add function to copy mm_context_t to the paca 2015-12-19 22:13:12 +11:00
subpage-prot.c thp: rename split_huge_page_pmd() to split_huge_pmd() 2016-01-15 17:56:32 -08:00
tlb_hash32.c powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:38 -04:00
tlb_hash64.c powerpc/mm: Differentiate between hugetlb and THP during page walk 2015-10-12 15:30:09 +11:00
tlb_low_64e.S powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
tlb_nohash.c powerpc/mm: any thread in one core can be the first to setup TLB1 2016-03-04 23:44:02 -06:00
tlb_nohash_low.S powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
vphn.c powerpc/vphn: parsing code rewrite 2015-03-18 10:48:59 +11:00
vphn.h powerpc/vphn: parsing code rewrite 2015-03-18 10:48:59 +11:00