コード例 #1
0
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);
}
コード例 #2
0
ファイル: platsmp.c プロジェクト: robcore/SGS4-3.13
int __cpuinit msm8962_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(APCS_ALIAS0_BASE_ADDR, cpu);
		else if (!of_board_is_rumi())
			msm8962_release_secondary(APCS_ALIAS0_BASE_ADDR, cpu);

		per_cpu(cold_boot_done, cpu) = true;
	}
	return release_from_pen(cpu);
}
コード例 #3
0
ファイル: platsmp.c プロジェクト: StanTRC/lge-kernel-e400
int __cpuinit msm8974_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 (machine_is_msm8974_sim() || machine_is_mpq8092_sim())
			release_secondary_sim(0xf9088000, cpu);
		else if (!machine_is_msm8974_rumi())
			msm8974_release_secondary(0xf9088000, cpu);

		per_cpu(cold_boot_done, cpu) = true;
	}
	return release_from_pen(cpu);
}
コード例 #4
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);
}