gpt4 book ai didi

uefi - EFI 应用程序能否在 BDS 阶段之前自动加载和执行?

转载 作者:行者123 更新时间:2023-12-01 04:58:56 25 4
gpt4 key购买 nike

是否可以在 BDS 阶段之前自动加载和执行 EFI 应用程序,就在加载所有 DXE 驱动程序之后?
如果我在 DXE 驱动程序之后将应用程序包含在 .fdf 文件中,它会自动加载和执行吗?

最佳答案

这个问题很板,我只会用我的答案来触及表面。请阅读我提到的文档以获取更多信息。

如果您的硬件有完整的 UEFI 固件源代码,那么您可以添加 UEFI 模块以在 BDS 阶段之前执行。否则,您只能通过使用 ExitBootServices 添加 UEFI 应用程序来影响引导顺序(即在调用 bcfg 之前) shell命令,请查看this question .

如果要在 BDS 之前执行代码,则必须是 DXE 模块(即 DRIVERRUNTIME_DRIVER )。可以使用许多模块类型,具体取决于您的用例。您可以在 INF file specification 的附录 G 中找到有关模块类型的更多信息。 .

添加到 FDF文件不足以执行代码。 FDF文件仅描述 Flash 布局:每个二进制文件将如何以及放置在最终 Flash 镜像中的位置。要添加 DXE 驱动程序,您还必须添加您的 INF文件到平台DSC文件。接下来是正确的[Depex] INF 中的部分,可以很简单:

[Depex]
TRUE

您必须了解的最后一件事是 DXE Dispatcher .每次开机 DXE Dispatcher遍历已知图像列表并调用 EFI_DRIVER_BINDING_SUPPORTED函数(由 EFI_DRIVER_BINDING_PROTOCOL 定义)。此方法应检查平台中是否有支持的硬件。如果 EFI_DRIVER_BINDING_SUPPORTED返回成功然后将调用其他驱动绑定(bind)方法( EFI_DRIVER_BINDING_START),这将启动设备。入口点只能用于协议(protocol)注册,不建议在入口点启动设备。

有用的资源:
  • EDK II Specifications - 各种文件类型的规范(INFFDFDSCDEC 等)
  • Developer Resources - 驱动程序编写者指南和驱动程序向导。
  • EDK2 sourceforge - 关于 EDK2 的非常有用的资源库
  • 关于uefi - EFI 应用程序能否在 BDS 阶段之前自动加载和执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34585576/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com