Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6c88600 authored by Aneesh Kumar K.V's avatar Aneesh Kumar K.V Committed by Michael Ellerman
Browse files

powerpc/mm/radix: Update LPCR only if it is powernv



LPCR cannot be updated when running in guest mode.

Fixes: 2bfd65e4 ("powerpc/mm/radix: Add radix callbacks for early init routines")
Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 8dd75ccb
Loading
Loading
Loading
Loading
+10 −13
Original line number Diff line number Diff line
@@ -296,11 +296,6 @@ static void __init radix_init_page_sizes(void)
void __init radix__early_init_mmu(void)
{
	unsigned long lpcr;
	/*
	 * setup LPCR UPRT based on mmu_features
	 */
	lpcr = mfspr(SPRN_LPCR);
	mtspr(SPRN_LPCR, lpcr | LPCR_UPRT);

#ifdef CONFIG_PPC_64K_PAGES
	/* PAGE_SIZE mappings */
@@ -343,8 +338,11 @@ void __init radix__early_init_mmu(void)
	__pte_frag_size_shift = H_PTE_FRAG_SIZE_SHIFT;

	radix_init_page_sizes();
	if (!firmware_has_feature(FW_FEATURE_LPAR))
	if (!firmware_has_feature(FW_FEATURE_LPAR)) {
		lpcr = mfspr(SPRN_LPCR);
		mtspr(SPRN_LPCR, lpcr | LPCR_UPRT);
		radix_init_partition_table();
	}

	radix_init_pgtable();
}
@@ -353,17 +351,16 @@ void radix__early_init_mmu_secondary(void)
{
	unsigned long lpcr;
	/*
	 * setup LPCR UPRT based on mmu_features
	 * update partition table control register and UPRT
	 */
	if (!firmware_has_feature(FW_FEATURE_LPAR)) {
		lpcr = mfspr(SPRN_LPCR);
		mtspr(SPRN_LPCR, lpcr | LPCR_UPRT);
	/*
	 * update partition table control register, 64 K size.
	 */
	if (!firmware_has_feature(FW_FEATURE_LPAR))

		mtspr(SPRN_PTCR,
		      __pa(partition_tb) | (PATB_SIZE_SHIFT - 12));
	}
}

void radix__setup_initial_memory_limit(phys_addr_t first_memblock_base,
				phys_addr_t first_memblock_size)