Skip to content

Commit

Permalink
sh: Fix up the secondary CPU entry point for 32bit mode.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Paul Mundt committed Jan 15, 2010
1 parent a6198a2 commit f0cb773
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion arch/sh/kernel/cpu/sh4a/smp-shx3.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down

0 comments on commit f0cb773

Please sign in to comment.