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

Commit c014d164 authored by Markos Chandras's avatar Markos Chandras Committed by Ralf Baechle
Browse files

MIPS: Add platform callback before initializing the L2 cache



Allow platforms to perform platform-specific steps before configuring
the L2 cache. This is necessary for platforms with CM3 since the L2
parameters no longer live in the Config2 register.

Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10642/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 7d53e9c4
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -81,6 +81,13 @@ int mips_cm_probe(void)
	phys_addr_t addr;
	u32 base_reg;

	/*
	 * No need to probe again if we have already been
	 * here before.
	 */
	if (mips_cm_base)
		return 0;

	addr = mips_cm_phys_base();
	BUG_ON((addr & CM_GCR_BASE_GCRBASE_MSK) != addr);
	if (!addr)
+10 −0
Original line number Diff line number Diff line
@@ -123,6 +123,10 @@ static int __init mips_sc_probe_cm3(void)
	return 1;
}

void __weak platform_early_l2_init(void)
{
}

static inline int __init mips_sc_probe(void)
{
	struct cpuinfo_mips *c = &current_cpu_data;
@@ -132,6 +136,12 @@ static inline int __init mips_sc_probe(void)
	/* Mark as not present until probe completed */
	c->scache.flags |= MIPS_CACHE_NOT_PRESENT;

	/*
	 * Do we need some platform specific probing before
	 * we configure L2?
	 */
	platform_early_l2_init();

	if (mips_cm_revision() >= CM_REV_CM3)
		return mips_sc_probe_cm3();

+7 −0
Original line number Diff line number Diff line
@@ -303,3 +303,10 @@ void __init prom_init(void)
	if (!register_vsmp_smp_ops())
		return;
}

void platform_early_l2_init(void)
{
	/* L2 configuration lives in the CM3 */
	if (mips_cm_revision() >= CM_REV_CM3)
		mips_cm_probe();
}