This patch series map all the kernel regions (vmalloc, IO and vmemmap) using 0xc top nibble address. This brings hash translation kernel mapping in sync with radix. Each of these regions can now map 512TB. We use one context to map these regions and hence the 512TB limit. We also update radix to use the same limit even though we don't have context related restrictions there.
For 4K page size, Michael Ellerman requested to keep the VMALLOC_START the same as what we have with hash 64K. I did try to implement that but found that code gets complicated with no real benefit. To assist in debugging I am adding patch "powerpc/mm: Print kernel map details to dmesg" which should show different mapping region for the booted kernel. Also to note here is we now have the same map for both hash and radix on 4K page size. This limits 4K radix to 16TB linear mapping range. This was done to make sure we have a similar mapping between hash and radix. If we think this is unnecessarily limiting radix translation mode, I can drop this. Aneesh Kumar K.V (8): powerpc/mm/hash64: Add a variable to track the end of IO mapping powerpc/mm/hash64: Map all the kernel regions in the same 0xc range powerpc/mm: Validate address values against different region limits powerpc/mm: Drop the unnecessary region check powerpc/mm/hash: Simplify the region id calculation. powerpc/mm: Print kernel map details to dmesg powerpc/mm: Consolidate radix and hash address map details powerpc/mm/hash: Rename KERNEL_REGION_ID to LINEAR_MAP_REGION_ID arch/powerpc/include/asm/book3s/64/hash-4k.h | 6 -- arch/powerpc/include/asm/book3s/64/hash-64k.h | 6 -- arch/powerpc/include/asm/book3s/64/hash.h | 89 +++++++++++-------- arch/powerpc/include/asm/book3s/64/map.h | 80 +++++++++++++++++ arch/powerpc/include/asm/book3s/64/mmu-hash.h | 33 ++++--- arch/powerpc/include/asm/book3s/64/pgtable.h | 34 +------ arch/powerpc/include/asm/book3s/64/radix.h | 33 ++----- arch/powerpc/include/asm/page.h | 11 --- arch/powerpc/kernel/setup-common.c | 3 + arch/powerpc/kvm/book3s_hv_rm_xics.c | 2 +- arch/powerpc/mm/copro_fault.c | 18 ++-- arch/powerpc/mm/hash_utils_64.c | 48 ++++++---- arch/powerpc/mm/pgtable-hash64.c | 13 ++- arch/powerpc/mm/pgtable-radix.c | 23 +++-- arch/powerpc/mm/pgtable_64.c | 15 ++-- arch/powerpc/mm/ptdump/hashpagetable.c | 4 - arch/powerpc/mm/ptdump/ptdump.c | 4 - arch/powerpc/mm/slb.c | 26 +++--- arch/powerpc/platforms/cell/spu_base.c | 4 +- drivers/misc/cxl/fault.c | 2 +- drivers/misc/ocxl/link.c | 2 +- 21 files changed, 255 insertions(+), 201 deletions(-) create mode 100644 arch/powerpc/include/asm/book3s/64/map.h -- 2.20.1