sh: Fix up the secondary CPU entry point for 32bit mode.
Presently the secondary CPU entry point is only aimed at 29bit phys mode, causing it to point to a stray virtual address in 32bit mode. Fix it up after consulting with our shiny new __in_29bit_mode(). Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
a6198a238b
commit
f0cb77372c
@ -78,7 +78,10 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
|
|||||||
|
|
||||||
void plat_start_cpu(unsigned int cpu, unsigned long entry_point)
|
void plat_start_cpu(unsigned int cpu, unsigned long entry_point)
|
||||||
{
|
{
|
||||||
__raw_writel(entry_point, RESET_REG(cpu));
|
if (__in_29bit_mode())
|
||||||
|
__raw_writel(entry_point, RESET_REG(cpu));
|
||||||
|
else
|
||||||
|
__raw_writel(virt_to_phys(entry_point), RESET_REG(cpu));
|
||||||
|
|
||||||
if (!(__raw_readl(STBCR_REG(cpu)) & STBCR_MSTP))
|
if (!(__raw_readl(STBCR_REG(cpu)) & STBCR_MSTP))
|
||||||
__raw_writel(STBCR_MSTP, STBCR_REG(cpu));
|
__raw_writel(STBCR_MSTP, STBCR_REG(cpu));
|
||||||
|
Loading…
Reference in New Issue
Block a user