谁填写了pci的设备配置space?

who fills the device configuration space of pci?

我想知道谁填写了特定 PCI 设备的配置 space 当一个新设备连接到 PCI 总线时,它首先出现。我知道 bios 和操作系统都可以配置 PCI space 但是谁把设备的信息提供给他们。

识别设备及其功能的 PCI 配置 space 的只读字段是设备内置的,不是由软件填充的。

一些字段,例如 BAR,由 BIOS 配置,作为其设置系统地址映射的职责的一部分。其余字段由 OS 或设备驱动程序编程。 (BIOS也可能有该设备的驱动程序,如果该设备可用于启动系统。)

这三个软件组件(BIOS、OS 和驱动程序)的决策基于其设计者内置到软件中的规则和策略 and/or 由系统配置安装者或用户。例如,BIOS 设置菜单通常有设置来控制 BAR 区域的放置位置。在 Windows 中,用于配置设备的信息可能来自注册表。