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处开始执行。以下为其内核启动流程:

到这里其实就结束了,不得不说这个前辈的文章是真的写的逻辑清晰,收获颇多。
-
电源
+关注
关注
185文章
18709浏览量
261383 -
cpu
+关注
关注
68文章
11216浏览量
222933 -
多核
+关注
关注
0文章
43浏览量
12655 -
SMP
+关注
关注
0文章
80浏览量
20692
发布评论请先 登录
记录学习ARM Linux的多核启动过程
基于raspi 3b上的SMP设计实现
RT-Thread SMP和AMP初体验简介
SOC的多核启动流程详解
Linux在SMP系统上的移植研究
ARM64 SMP多核启动(上)—spin-table
SMP是什么?多核芯片(SMP)的启动方法
RT-Thread SMP启动流程
secondary cpu执行流程介绍

SMP多核secondary cpu启动流程
评论