PCIe 设备如何在 BIOS/UEFI 中显得可启动?

pen*_*ire 5 embedded x86 bios pci-e uefi

我有一个基于 Intel 的主机系统,带有我公司设计的 PCIe 子卡。我们可以枚举它以允许与英特尔处理器共享内存。我希望使可通过 PCIe 访问的子卡内存空间能够被 BIOS/UEFI 识别为可引导。

我可以选择实现众多 HCI 标准之一,但这似乎会很慢,因为该子卡由处理器驱动,并且 HCI 必须在软件中实现。一个更具体的问题是,是否存在 BIOS/UEFI 在枚举子卡后可以识别的已知可启动内存格式?谷歌搜索对我来说并没有取得太大的成功,这些标准,以及 BIOS 或 UEFI 在启动过程中如何符合所述标准似乎是部落知识并且很难发现。

其他详情:

  • 我想在主机 CPU 上启动 Linux 或 Vxworks。
  • 两个图像都驻留在子卡上的非易失性存储器中。
  • 子卡处理器负责通过 PCIe 将共享内存中的图像呈现给主机 CPU。
  • 就主机 CPU 而言,您几乎可以将子卡视为 NVMe 或 SATA SSD 扩展卡,但子卡负责更多功能,而不仅仅是启动主机 CPU,这就是为什么这些类型的设备不适用于我的应用程序。

uni*_*urf 3

一种简洁的方法是让您的设备公开 PCI 选项 ROM(UEFI 2.8中的第 14.4.2 节)。SIMPLE_FILESYSTEM_PROTOCOL您可以相当轻松地实现将图像公开为文件系统中的文件的基本操作。无需模拟 HCI。