完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、ARM64的多核启动流程分析 工作中遇到的多核 ARM CPU 越来越多,总结分享一些多核启动的知识,希望能帮助更多小伙伴。 在 ARM64 架构下如果想要启动多核,有 spin-table 和 psci 两种方式,下面针对这两种启动流程进行分析。 代码版本 boot-wrapper-aarch64 version : 28932c41e14d730b8b9a7310071384178611fb32 linux v5.14 多核 CPU 的启动方式 嵌入式系统的启动的基本流程是先运行 bootloader ,然后由 bootloader 引导启动 kernel,这里无论启动的是 rt-thread 或者是 linux 原理都是一样的。 上电后所有的 CPU 都会从 bootrom 里面开始执行代码,为了防止并发造成的一些问题,需要将除了 primary cpu 以外的 cpu 拦截下来,这样才能保证启动的顺序是可控的。 spin-table 启动方法 在启动的过程中,bootloader 中有一道栅栏,它拦住了除了 cpu0 外的其他 cpu。cpu0 直接往下运行,进行设备初始化以及运行 Kernel。其他 cpu0 则在栅栏外进入睡眠状态。 cpu0 在初始化 smp 的时候,会在 cpu-release-addr 里面填入一个地址并唤醒其他 cpu。这时睡眠的 cpu 接受到信号,醒来的时候会先检查 cpu-release-addr 这个地址里面的数据是不是有效。如果该地址是有效的(非 0 ),意味着自己需要真正开始启动了,接下来他会跳转到。 下面我们看看 arm64 里面的实现,在 arch/arm64/boot/dts/xxx.dts 中有如下描述:
ARM64 的多核启动流程分析.pdf
(128.94 KB, 下载次数: 5
)
原作者:我夏了夏天 |
|
相关推荐
|
|
迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-配置创建私有配置文件
628 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之Makefile修改
732 浏览 0 评论
飞凌嵌入式-ELFBOARD-ELF 2硬件知识分享之Debug
940 浏览 1 评论
飞凌嵌入式ElfBoard ELF 1板卡-烧录流程介绍之单独更新内核
2479 浏览 1 评论
飞凌嵌入式ElfBoard ELF 1板卡-TF卡烧录流程之烧写过程
1061 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 02:20 , Processed in 0.584162 second(s), Total 69, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号