int __cpuinit arm_boot_secondary(unsigned int cpu, struct task_struct *idle) { pr_debug("Starting secondary CPU %d\n", cpu); if (per_cpu(cold_boot_done, cpu) == false) { if (of_board_is_sim()) release_secondary_sim(0xf9088000, cpu); else if (!of_board_is_rumi()) arm_release_secondary(0xf9088000, cpu); per_cpu(cold_boot_done, cpu) = true; } return release_from_pen(cpu); }
static int __cpuinit msm8936_boot_secondary(unsigned int cpu, struct task_struct *idle) { pr_debug("Starting secondary CPU %d\n", cpu); if (per_cpu(cold_boot_done, cpu) == false) { u32 mpidr = cpu_logical_map(cpu); u32 apcs_base = MPIDR_AFFINITY_LEVEL(mpidr, 1) ? 0xb088000 : 0xb188000; if (of_board_is_sim()) release_secondary_sim(apcs_base, MPIDR_AFFINITY_LEVEL(mpidr, 0)); else if (!of_board_is_rumi()) arm_release_secondary(apcs_base, MPIDR_AFFINITY_LEVEL(mpidr, 0)); per_cpu(cold_boot_done, cpu) = true; } return release_from_pen(cpu); }