问题标签 [uefi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2102 浏览

config - 从 PCI 配置空间 (EFI) 读取 USB 设备供应商 ID 和设备 ID

我想通过 EFI 程序获取插入的 USB 设备的供应商 ID 和设备 ID。我可以读取整个 PCI 配置空间我找到了我的 USB 设备被插入的 USB 主机控制器我还可以读取为此控制器寻址的整个内存,但我不知道我在这个内存中究竟在寻找什么来获取这些 ID。有人能帮我吗?

0 投票
4 回答
1424 浏览

bios - 修改带有错误 BIOS 的华硕 Z170 主板上的 ia32 功能控制寄存器

我处于不幸的情况,我需要使用 BIOS 未在 ia32 功能控制 MSR 寄存器中启用的 CPU 功能。BIOS 确实设置了锁定位,因此我无法自己设置该位。BIOS (Asus UEFI BIOS) 没有改变行为的选项。问题是,有什么办法可以设置这个位吗?我在考虑是否可以编写 UEFI 扩展或一些我可以从 UEFI shell 执行的程序。但是我不确定在执行之前寄存器是否被锁定(我对 UEFI 及其编程环境知之甚少)。或者,是否可以使用标准工具修补 BIOS 更新映像或对其进行修改?有人听说过这方面的成功商店吗?

有问题的功能是 SGX(软件保护扩展)。主板是华硕Z170-K。一切都已准备好支持 SGX,除了 BIOS 无法设置该位。

5 月 22 日更新:我刚刚将华硕 Z170-K 更新为新发布的 BIOS 1803(5 月 20 日发布)。这是版本号的一大飞跃,所以我充满希望。可悲的是,SGX 支持仍然不存在。我现在已经向华硕提交了一个新的请求,这一次我不打算被拒绝。我认为这完全是业余的,从一开始就不受支持 - 它是支持 Skylake CPU 的重要组成部分,所以我认为所有需要这个的客户都应该尝试寻求退款(我知道我会这样做)。

0 投票
1 回答
868 浏览

c - 如何将外部库 (.lib) 从第三方链接到 UEFI 应用程序?(由 EDK2 提供)

我有 EDK II (UDK2014) 应用程序,我需要从第 3 方链接一个 LIB 文件。我试图在我的应用 INF 文件中添加“BuildOptions”:

但它仍然没有工作。错误信息是:

似乎“lib.exe”命令无法正常工作。我尝试更改 LIB 文件名,结果是一样的。

我将 Visual Studio 2013 用于我的工具链。

0 投票
3 回答
2737 浏览

c - UEFI 编程:如何初始化 CHAR16 Unicode 字符串?

我必须使用一些 char16 宽的字符串来进行 uefi 编程。如何轻松初始化它们?CHAR8 很简单:

CHAR16 同时以这种方式努力工作,因此我选择了这个初始化:

所以问题是初始化 CHAR16 字符串的正确和最简单的方法是什么?

0 投票
1 回答
813 浏览

c# - 如何获得系统权限

我有一个需要SeSystemEnvironmentPrivilege访问UEFI NVRAM.

我发现了一个很长的代码,用于Win32 API获取特权,但是有没有 .NET 版本来获取它?在进程类中,还是在其他地方?

0 投票
1 回答
3918 浏览

c - 无法构建 EDK(UEFI 的开发环境)

我按照这里的构建说明进行操作。但是一旦我运行构建,这就是我得到的:

我怎样才能解决这个问题?

0 投票
0 回答
760 浏览

image - 为什么 EFI 图像在 PE/COFF 标头之前需要一些额外的填充

我检查过的每个 EFI 映像40h在 MS-DOS 存根和在某些情况下未使用的 PE 签名之间至少有字节填充。它充满了零。

我正在编写一个链接器,我的第一个计划是在指定位置有 0 填充,但似乎 UEFI 加载器在加载文件后只是停止响应。我尝试了一些奇怪的组合,例如将 DOS 标头和 PE 标头合并到一个位置,但发生了同样的问题。

我还尝试完全删除 DOS 存根,由于某种原因,我的固件仍然能够识别图像。通常,如果图像不以MZ签名开头,加载程序会打印错误消息并退出。我敢肯定,在这种情况下,它会正确地直接解析 COFF 格式,因为在为可选标头写入无效的 Magic 值之后,加载器会识别并打印错误消息。问题是它仍然会出错并且什么也不打印。它只是挂起。像这样正常解析PE标头。我可以指望它在其他机器上工作吗?

我敢肯定,否则图像可以正常工作。即使不是这样,当有填充时,加载程序也会打印错误消息并退出,而不是仅仅挂起。如果图像加载并成功执行,它应该打印Hello World消息。当10h填充存在并且一切开始正常工作时,就会发生这种情况。我如何完成这样的任务?有什么建议么?

0 投票
2 回答
1710 浏览

qemu - Please tell me how to run my UEFI application on QEMU

My environment is Ubuntu15.10. I wrote the following source code.

I wrote the following Makefile and compile source code.

I store hello.efi on named RT directory and I run "qemu-system-x86_64 -bios OVMF.fd -hda fat:RT/". I run hello.efi but not execute my UEFI application. Qemu say "Error reported: Invalud Parameter".

Please help me!

0 投票
2 回答
5755 浏览

boot - GRUB2 UEFI 加载程序如何知道在哪里查找配置文件(或第二阶段的文件所在的位置)?

如果我在启用 GPT 的分区上使用 GRUB2,加载程序如何“知道”在哪里可以找到其配置文件和其他第二阶段的文件?

注意:我发现一些关于与 GRUB 的 EFI 加载器位于同一文件夹中的配置文件的提及,并且包含来自指定分区的“主”配置文件的链式加载,但这绝对不是真的 - 只有一个“东西。 efi”文件。

0 投票
1 回答
1046 浏览

firmware - 默认 UEFI 引导顺序(在固件映像中)

使用 EDK2 构建固件,提供自定义默认引导顺序的最简单方法是什么?

例如,我知道 QEMU 的 Ovmf 根据 QEMU 的“引导顺序”fw_cfg 文件(使用 QemuBootOrderLib 中的代码)以编程方式重新定义 UEFI 引导顺序。因此,类似地,我可以以编程方式指定和执行引导顺序。

有没有更简单的方法来实现这一点(也许为 UEFI vars 提供自定义值)?

注意:不使用shell!我需要固件映像中包含此配置!