有Bootloader,为什么还要BROM?
不少硬件平台都提供类似Boot ROM或者PBL(高通平台)固化的一段程序,出厂后用户一定不能修改。BROM可以引导Bootloader程序。大家知道,每个可启动的平台都会在存储设备,例如EMMC/NAND/UFS保存Bootloader程序,它负责初始化硬件并引导操作系统,既然有它了,为什么还需要BROM呢? 设想一种情况,当EMMC/UFS保存的Bootloader内容被意外改变了,无法启动了,还有没有机会救平台了? 这个时候只有BROM或PBL提供的紧急下载功能可以恢复Bootloader.
高通/MTK/苹果平台启动简图
高通/MTK/苹果平台启动简图
以Android和IOS系统为例,按照BootROM -> Bootloader stage 1 -> Bootloader -> OS的顺序:
高通
- PBL -> SBL1 -> APPSBL(lk) -> HLOS(Linux) -> Android
PBL就是高通的Boot ROM.
MTK
- BROM -> Preloader -> lk -> Kernel(Linux) -> Android
苹果
- IOS
Boot ROM -> LLB(A9系列及以前) -> iBoot -> Kernel(XNU) - Intel Mac
Boot ROM -> iBoot -> UEFI -> Kernel(XNU) - Apple Mac
Boot ROM -> LLB -> iBoot -> Kernel(XNU)
Note: LLB: Low Level Bootloader, 用于定位加载iBoot
若文章对您有帮助,欢迎关注。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。