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: Markos 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: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
7d53e9c4cd
commit
c014d164f2
|
@ -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)
|
||||
|
|
|
@ -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 = ¤t_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();
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue