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)
|
||||
{
|
||||
__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))
|
||||
__raw_writel(STBCR_MSTP, STBCR_REG(cpu));
|
||||
|
|
Loading…
Reference in a new issue