【PCIe】在系统初始化阶段,为什么要枚举两次(BIOSOS)
2026/7/8 16:08:48 网站建设 项目流程

声明

  • 🔥文章目的在于学习记录,知识分享。因个人能力有限:如有错误之处,请帮忙指出;如有疑问,欢迎随时交流
  • 🔥感谢“点评赞”,期待大家提出问题进行深度讨论。
  • 内容如涉及侵权,请及时联系我删除。

概要

在系统初始化阶段,一直疑惑PCIe的枚举到底需要几次?BIOS/UEFI和OS(Linux/Windows)是否都要做,是否都必须做,为什么必须做?

先说结论:必须要做,因为每个阶段的目的不一样。

BIOS/UEFI阶段

BIOS/UEFI阶段执行枚举的主要目的是从硬件的角度实现PCIe设备的扫描和硬件属性的扫描,包括mem空间的分配等。

这个阶段属于硬件扫描过程,需要保证将可用的设备扫描出来,并确认相关Cap(类似MSI/MSIX/Link width&Speed/SRIOV等特性),并且通过相关程序实现资源分配。

OS阶段

OS阶段主要是软件行为,目的是实现驱动加载的过程。主要通过获取设备的vendor ID、Device ID 、Subsystem ID等信息,执行相关软件的加载和初始化动作,给后续使用提供基础。

总结

PCIe的枚举在BIOS/UEFI和OS阶段都要执行,且目的不一样。一个着重于硬件背景,一个着重于软件背景。

参考文献

本文完,感谢大家阅读!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询