powerpc/mm/book3s-64: Free up 7 high-order bits in the Linux PTE
authorPaul Mackerras <paulus@samba.org>
Mon, 22 Feb 2016 02:41:13 +0000 (13:41 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Sat, 27 Feb 2016 10:06:57 +0000 (21:06 +1100)
commitf1a9ae034a263d93ea408825afe699aebf37010a
tree2c62d7e3d505ff4f260da8e154e5d8968330ef2c
parent1ec3f937102154b54c3ba97b79d4bd3931bb0eaa
powerpc/mm/book3s-64: Free up 7 high-order bits in the Linux PTE

This frees up bits 57-63 in the Linux PTE on 64-bit Book 3S machines.
In the 4k page case, this is done just by reducing the size of the
RPN field to 39 bits, giving 51-bit real addresses.  In the 64k page
case, we had 10 unused bits in the middle of the PTE, so this moves
the RPN field down 10 bits to make use of those unused bits.  This
means the RPN field is now 3 bits larger at 37 bits, giving 53-bit
real addresses in the normal case, or 49-bit real addresses for the
special 4k PFN case.

We are doing this in order to be able to move some other PTE bits
into the positions where PowerISA V3.0 processors will expect to
find them in radix-tree mode.  Ultimately we will be able to move
the RPN field to lower bit positions and make it larger.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/book3s/64/hash-4k.h
arch/powerpc/include/asm/book3s/64/hash-64k.h
arch/powerpc/include/asm/book3s/64/hash.h
arch/powerpc/include/asm/book3s/64/pgtable.h
arch/powerpc/mm/pgtable_64.c