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处开始执行。以下为其内核启动流程:
到这里其实就结束了,不得不说这个前辈的文章是真的写的逻辑清晰,收获颇多。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
电源
+关注
关注
184文章
17559浏览量
249396 -
cpu
+关注
关注
68文章
10824浏览量
211088 -
多核
+关注
关注
0文章
43浏览量
12320 -
SMP
+关注
关注
0文章
71浏览量
19628
发布评论请先 登录
相关推荐
记录学习ARM Linux的多核启动过程
CONFIG_HOTPLUG_CPU.cpu_die = vexpress_cpu_die,#endif};2.2.多核启动多核的
发表于 05-25 10:43
基于raspi 3b上的SMP设计实现
本帖主要描述raspi 3b上SMP实现,该实现主要基于现有raspi2 bsp代码基础上添加相关SMP支持,所需支持的功能主要包括:多核启动多核
发表于 12-05 13:56
RT-Thread SMP和AMP初体验简介
多处理,AMP模式的RTOS在各个CPU上均运行一个操作系统实例(这些操作实例不一定完全相同),各个操作系统拥有自己专用的内存,相互之间通过访问受限的共享内存进行通信。RT-Thread SMP 启动
发表于 02-03 14:33
SOC的多核启动流程详解
启动的时候启动多个core, COLD_BOOT_SINGLE_CPU=0, _secondary_cold_boot=1, 则下面代码会被编译,则主核走 do_primary_col
发表于 02-21 15:11
Linux在SMP系统上的移植研究
硬件平台下的启动流程、任务调度策略、任务间同步与互斥、中断处理等问题,结合自主研发嵌入式应用的实际需求,得到解决上述问题的方案,完成嵌入式Linux在SMP系统上的移植,并实现嵌入式Linux在自主
发表于 11-14 16:09
•11次下载
ARM64 SMP多核启动(上)—spin-table
一般嵌入式系统使用的都是对称多处理器(Symmetric Multi-Processor, SMP)系统,包含了多个cpu, 这几个cpu都是相同的处理器,如4核Contex-A53。
发表于 06-09 14:28
•958次阅读
SMP是什么?多核芯片(SMP)的启动方法
SMP 英文为Symmetric Multi-Processing ,是对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构,一个服务器系统可以同时运行多个处理器,并共享内
RT-Thread SMP启动流程
SMP(Symmetric Multi-processing) :对称多处理,在一个计算机上汇集了一组处理器 (多 CPU), 各 CPU 之间共享内存子系统以及总线结构。
secondary cpu执行流程介绍
: 由于其底层相关初始化流程与primary cpu类似,因此此处不再介绍。我们这里主要看一下它是如何通过secondary_start_kernel启动idle线程的: asmlin
评论