secondary cpu启动
由于psci方式启动secondary cpu的流程,除了其所执行的cpu_ops不同之外,其它流程与spin-table方式是相同的,因此我们这里只给出执行流程图,详细分析可以参考上篇博文。其中以下流程执行secondary cpu启动相关的一些初始化工作:
在初始化完成且hotplug线程创建完成后,就可通过以下流程唤醒cpu hotplug线程:
此后hotplug线程将调用psci回调函数,并最终触发smc异常进入bl31:
bl31接收到该异常后执行std_svc_smc_handler处理函数,并最终调用平台相关的电源管理接口,完成cpu的上电工作,以下为其执行流程:
平台相关回调函数pwr_domain_on将为secondary cpu设置入口函数,然后为其上电使该cpu跳转到内核入口secondary_entry处开始执行。以下为其内核启动流程:
到这里其实就结束了,不得不说这个前辈的文章是真的写的逻辑清晰,收获颇多。
全部0条评论
快来发表一下你的评论吧 !