PCIe 设备如何显示为 BIOS/UEFI 可引导?
How does a PCIe device appear bootable to the BIOS/UEFI?
我有一个基于 Intel 的主机系统,带有我公司设计的 PCIe 子卡。我们能够枚举它以允许与英特尔处理器共享内存。我希望通过 PCIe 访问子卡内存 space,使其被 BIOS/UEFI.
识别为可引导
我可以走实施众多 HCI 标准之一的道路,但这似乎会很慢,因为该子卡由处理器驱动,并且 HCI 必须在软件中实施。一个更具体的问题是,在子卡被枚举后,是否存在 BIOS/UEFI 可以识别的已知可引导内存格式?谷歌搜索对我和这些标准并没有取得太大的成功,而 bios 或 UEFI 在引导过程中如何符合上述标准似乎是部落知识并且很难发现。
其他详情:
- 我想在主机 CPU 上启动 Linux 或 Vxworks。
- 两个图像都驻留在子卡上的非易失性存储器中。
- 子卡处理器负责通过 PCIe 将共享内存中的图像呈现给主机 CPU。
- 就主机 CPU 而言,您几乎可以将子卡视为 NVMe 或 SATA SSD 扩展卡,但子卡负责的功能不仅仅是启动主机 CPU 这就是为什么这些类型的设备不适用于我的应用程序的原因。
一个简洁的方法是让您的设备公开一个 PCI Option ROM(UEFI 2.8 中的第 14.4.2 节)。您可以相当轻松地实现一个基本的 SIMPLE_FILESYSTEM_PROTOCOL
将图像公开为文件系统中的文件。无需模拟 HCI。
我有一个基于 Intel 的主机系统,带有我公司设计的 PCIe 子卡。我们能够枚举它以允许与英特尔处理器共享内存。我希望通过 PCIe 访问子卡内存 space,使其被 BIOS/UEFI.
识别为可引导我可以走实施众多 HCI 标准之一的道路,但这似乎会很慢,因为该子卡由处理器驱动,并且 HCI 必须在软件中实施。一个更具体的问题是,在子卡被枚举后,是否存在 BIOS/UEFI 可以识别的已知可引导内存格式?谷歌搜索对我和这些标准并没有取得太大的成功,而 bios 或 UEFI 在引导过程中如何符合上述标准似乎是部落知识并且很难发现。
其他详情:
- 我想在主机 CPU 上启动 Linux 或 Vxworks。
- 两个图像都驻留在子卡上的非易失性存储器中。
- 子卡处理器负责通过 PCIe 将共享内存中的图像呈现给主机 CPU。
- 就主机 CPU 而言,您几乎可以将子卡视为 NVMe 或 SATA SSD 扩展卡,但子卡负责的功能不仅仅是启动主机 CPU 这就是为什么这些类型的设备不适用于我的应用程序的原因。
一个简洁的方法是让您的设备公开一个 PCI Option ROM(UEFI 2.8 中的第 14.4.2 节)。您可以相当轻松地实现一个基本的 SIMPLE_FILESYSTEM_PROTOCOL
将图像公开为文件系统中的文件。无需模拟 HCI。