Commit f0cb7737 authored by Paul Mundt's avatar Paul Mundt

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: default avatarPaul Mundt <lethal@linux-sh.org>
parent a6198a23
...@@ -78,7 +78,10 @@ void __init plat_prepare_cpus(unsigned int max_cpus) ...@@ -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));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment