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);
}
Example #2
0
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);
}