|
@@ -74,6 +74,8 @@ void __cpuinit sh73a0_secondary_init(unsigned int cpu)
|
|
|
|
|
|
int __cpuinit sh73a0_boot_secondary(unsigned int cpu)
|
|
|
{
|
|
|
+ cpu = cpu_logical_map(cpu);
|
|
|
+
|
|
|
/* enable cache coherency */
|
|
|
modify_scu_cpu_psr(0, 3 << (cpu * 8));
|
|
|
|
|
@@ -87,6 +89,8 @@ int __cpuinit sh73a0_boot_secondary(unsigned int cpu)
|
|
|
|
|
|
void __init sh73a0_smp_prepare_cpus(void)
|
|
|
{
|
|
|
+ int cpu = cpu_logical_map(0);
|
|
|
+
|
|
|
scu_enable(scu_base_addr());
|
|
|
|
|
|
/* Map the reset vector (in headsmp.S) */
|
|
@@ -94,5 +98,5 @@ void __init sh73a0_smp_prepare_cpus(void)
|
|
|
__raw_writel(__pa(shmobile_secondary_vector), __io(SBAR));
|
|
|
|
|
|
/* enable cache coherency on CPU0 */
|
|
|
- modify_scu_cpu_psr(0, 3 << (0 * 8));
|
|
|
+ modify_scu_cpu_psr(0, 3 << (cpu * 8));
|
|
|
}
|