Yoo*_* OH 4 boot assembly bios sequence uefi
这个问题的表达方式和什么是 UEFI 的启动顺序一样?,但似乎不是我想要的。我想从指令的角度了解 UEFI 序列。
例如,在 BIOS 引导模式的情况下,以简化的方式,
相关文章:https : //neosmart.net/wiki/mbr-boot-process/
但,
在 UEFI 的情况下,我很难掌握这个顺序。
我已经浏览了 UEFI 规范文档和 OS Dev UEFI 部分。
UEFI:https : //uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf
操作系统开发:https : //wiki.osdev.org/UEFI
似乎这个 efi_main() 函数在 BIOS 模式下相当于 0x7C00 的点。但是如何?
UEFI固件是否在做类似的事情
jmp efi_main
在完成一系列工作之后?
一季度。UEFI 启动模式的流程如何?
Q2。是否有一个很好的 UEFI 示例或教程,例如基于 BIOS 的 Brokenthorn?
聚苯乙烯
我已经看到了英特尔在 2020 年取消 BIOS 支持的消息(这些年已经过去了)。
https://www.anandtech.com/show/12068/intel-to-remove-bios-support-from-uefi-by-2020
它说
Once CSM is removed, the new platforms will be unable to run 32-bit operating systems, unable to use related software (at least natively), and unable to use older hardware, such as RAID HBAs (and therefore older hard drives that are connected to those HBAs), network cards, and even graphics cards that lack UEFI-compatible vBIOS (launched before 2012 – 2013)
Q3。这是否意味着与 BIOS 启动相关的所有内容(0x7C00 处的第一阶段引导加载程序和 BIOS 中断等)都将被弃用?
小智 7
问题 1:
UEFI 启动顺序分为多个“阶段”,您可以在此处找到有关每个阶段的一些基本信息。
为了加载 SEC 阶段,SecCore 位于内存地址 0xFFFFFFF0(该地址映射到 UEFI 闪存),因此是重置向量的目标。
在 dxe 阶段之后,可以在加载操作系统之前调用多个 UEFI 应用程序。
问题 2:
如果您想对 UEFI 的工作原理有一个基本的了解,我会推荐“Beyond BIOS”一书。
如果您想学习如何编写 UEFI 驱动程序/应用程序,我建议您查看EDK2 存储库中的一些示例应用程序(以及如何使用它构建应用程序),可以在规范中找到更多详细信息。