![基于 ARM 的计算机有什么启动标准吗?](https://linux22.com/image/1356493/%E5%9F%BA%E4%BA%8E%20ARM%20%E7%9A%84%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%9C%89%E4%BB%80%E4%B9%88%E5%90%AF%E5%8A%A8%E6%A0%87%E5%87%86%E5%90%97%EF%BC%9F.png)
正如问题标题所述 - 众所周知,存在一些标准,根据这些标准,如果您格式化您的 U 盘,在其中安装 x86 引导加载程序和系统分区,您就可以获得一个几乎可以在任何计算机上启动的 x86 USB 棒。对于配备 ARM 处理器的计算机(如笔记本电脑),是否有类似的标准?
答案1
以前有一篇关于“引导 ARM Linux”的多页文档。不幸的是,该文档的网页链接现已损坏,但似乎有一份副本这里。但是该文档没有指定或建议特定的引导加载程序或引导媒体上的任何文件/数据组织。
我记得的事情是内核应该链接到物理主内存 + 0x8000 的开始处执行。
ARM Linux 还需要在启动时将各种内存、主板和机器参数(称为 ARM 标签或 ATAG 列表)列表通过内存缓冲区传递给内核。引导加载程序将负责在内存缓冲区中构建 ATAG 和内核命令行。ATAG 显然已被弃用,并且由设备树替换在较新的 Linux 内核版本中。
引导加载程序还需要设置和初始化 RAM(这意味着设置时钟/振荡器),初始化一个串行端口或控制台,并检测 ARM 机器类型。
请注意,大多数 ARM SoC 采用多阶段启动序列,实际加载 Linux 内核的引导加载程序有时是第三阶段引导加载程序。
答案2
截至 2020 年,Arm SystemReady是一套总体标准的名称,旨在“启用通用的现成操作系统”。具体来说,对于启动标准,即基于 UEFI 的基本启动要求 (BBR)。
Arm SystemReady 是一项基于一组硬件和固件标准的合规性认证计划。这些标准包括基本系统架构 (BSA) 和基本启动要求 (BBR) 规范以及特定于市场的补充。
Arm SystemReady 取代了成功的 Arm ServerReady 合规计划,并将其扩展到更广泛的设备。
该认证计划有 4 种形式(大概针对那些“特定市场补充剂”):
- SystemReady SR(以前称为 Arm ServerReady)
- SystemReady ES(嵌入式服务器就绪)
- SystemReady IR(物联网就绪)
- SystemReady LS (LinuxBoot ServerReady)
答案3
没有标准。每个 SoC 供应商都使用自己的引导加载程序。
我已经看到来自 3 家主要 SoC 供应商的引导加载程序代码,它们 3 个都是不同的(使用不同的内部数据结构/等等)。