首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使基于UEFI EDK2的BIOS自动加载位于自己固件卷中的驱动程序?

如何使基于UEFI EDK2的BIOS自动加载位于自己固件卷中的驱动程序?
EN

Stack Overflow用户
提问于 2014-10-08 19:39:34
回答 1查看 841关注 0票数 4

我正在使用UEFI EDK2创建一个BIOS。我已经修改了FDF,以便将驱动程序( UEFI和遗留版本)从主固件卷移到单独的固件卷(FV)中,我严格地创建这个版本是为了保存驱动程序。

在我将驱动程序从主FV移开之前,我会看到遗留的OROM在发布期间登录。但是,由于我已经将驱动程序移到新的FV,我不再看到遗留的OROM登录。似乎遗留的OROM不再被加载。

EDK2似乎“自动”只加载特定的FVs,然后分派它们的驱动程序,但我不知道这些特定的FV是如何在EDK2中识别的。

我已经搜索了几个小时的EDK2代码,试图找出FV是在哪里/如何创建/初始化的,但是我找不到这段代码。我猜我需要将新的FV的GUID添加到某些列表或数据结构中,但我现在真的猜到了。

任何指示都将不胜感激。

EN

Stack Overflow用户

回答已采纳

发布于 2014-10-16 19:49:38

我在BIOS中找到了创建固件卷滚刀的位置(在专用文件中)。我在那里添加了代码来为我的新固件卷创建一个FV滚刀。

之后,我不得不安装一个PPI来处理新的固件卷。下面是PPI创建代码:

代码语言:javascript
运行
复制
    static EFI_PEI_FIRMWARE_VOLUME_INFO_PPI mNewFvPpiInfo = {
      EFI_FIRMWARE_FILESYSTEM2_GUID,
      (VOID*) <Starting address of new FV in the ROM>,
      <size of the new FV in the ROM>,
      NULL,
      NULL
    };

    static EFI_PEI_PPI_DESCTRIPTOR mNewFvPpi = {
      (EFI_PEI_PPI_DESCTRIPTOR_PPI | EFI_PEI_PPI_DESCTRIPTOR_TERMINATE_LIST),
      &gEfiPeiFirmwareVolumeInfoPpiGuid,
      &mNewFvPpiInfo
    };

下面是安装PPI的代码(放置在将新的FV HOB添加到FV HOB列表之后):

代码语言:javascript
运行
复制
    (*ppPeiServices)->InstallPpi(ppPeiServices, &mNewPvPpi);
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26265053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档