Balbir Singh <bsinghar...@gmail.com> writes: > <snip> > >> static void __init radix_init_partition_table(void) >> { >> - unsigned long rts_field; >> + unsigned long rts_field, ptcr; > > I think these functions have changed, check for conflicts against > http://git.kernel.org/cgit/linux/kernel/git/paulus/powerpc.git/commit/?h=kvm-ppc-next&id=9d66195807ac6cb8a14231fd055ff755977c5fca
They did, I ended up with: https://github.com/linuxppc/linux/commit/fb7314c5d6b00dbaaac14c28a52a87dee7e726df modified arch/powerpc/mm/pgtable_64.c @@ -44,6 +44,7 @@ #include <asm/mmu_context.h> #include <asm/pgtable.h> #include <asm/mmu.h> +#include <asm/opal.h> #include <asm/smp.h> #include <asm/machdep.h> #include <asm/tlb.h> @@ -435,7 +436,7 @@ void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift) #ifdef CONFIG_PPC_BOOK3S_64 void __init mmu_partition_table_init(void) { - unsigned long patb_size = 1UL << PATB_SIZE_SHIFT; + unsigned long ptcr, patb_size = 1UL << PATB_SIZE_SHIFT; BUILD_BUG_ON_MSG((PATB_SIZE_SHIFT > 36), "Partition table size too large."); partition_tb = __va(memblock_alloc_base(patb_size, patb_size, @@ -448,7 +449,9 @@ void __init mmu_partition_table_init(void) * update partition table control register, * 64 K size. */ - mtspr(SPRN_PTCR, __pa(partition_tb) | (PATB_SIZE_SHIFT - 12)); + ptcr = __pa(partition_tb) | (PATB_SIZE_SHIFT - 12); + mtspr(SPRN_PTCR, ptcr); + powernv_set_ptcr(ptcr); } void mmu_partition_table_set_entry(unsigned int lpid, unsigned long dw0, cheers