[ATF][Power]ARMv8 psci bootup target cpu api

本文软件分析使用arm-trust-firmwire v1.3版本。基于公开的fvp platform分析流程
cpu on的api是提供给cpu bootup使用的,主要其他core将目标cpu bootup的api(hotplug 插核的动作),从atf执行完成后还是会返回到kernel。而目标cpu开始进行warm boot(hotplug on)的动作,具体参考章节ARMv8 cpu warm boot (hotplug on),smc cpu on的时候需要将target entrypoint传给target cpu,从kernel来看应该是secondary_entry,而对应idle cpu的entry point是cpu_resume。

cpu boot:
static int cpu_psci_cpu_boot(unsigned int cpu)
{
	int err = psci_ops.cpu_on(cpu_logical_map(cpu), __pa(secondary_entry));
	if (err)
		pr_err("failed to boot CPU%d (%d)\n", cpu, err);

	return err;
}
cpu suspend
static int psci_suspend_finisher(unsigned long index)
{
	u32 *state = __this_cpu_read(psci_power_state);

	return psci_ops.cpu_suspend(state[index - 1],
				    virt_to_phys(cpu_resume));
}
cpu bootup api:

boot up target cpu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值