【发布时间】:2017-12-03 14:29:59
【问题描述】:
我想知道谁填充了 PCI 特定设备的配置空间 首先是当新设备连接到 PCI 总线时。我知道 bios 和操作系统都可以配置 PCI 空间,但是谁将设备的信息提供给它们。
【问题讨论】:
标签: linux linux-device-driver pci-e pci-bus
我想知道谁填充了 PCI 特定设备的配置空间 首先是当新设备连接到 PCI 总线时。我知道 bios 和操作系统都可以配置 PCI 空间,但是谁将设备的信息提供给它们。
【问题讨论】:
标签: linux linux-device-driver pci-e pci-bus
PCI 配置空间的只读字段,标识设备及其功能,是设备内置的,不是由软件填充的。
某些字段(例如 BAR)由 BIOS 配置,作为其设置系统地址映射的职责的一部分。其余字段由操作系统或设备驱动程序编程。 (BIOS 也可能有该设备的驱动程序,如果该设备可用于引导系统。)
这三个软件组件(BIOS、操作系统和驱动程序)的决定基于其设计者内置在软件中和/或系统安装程序或用户配置的规则和策略。例如,BIOS 设置菜单通常具有控制 BAR 区域放置位置的设置。在 Windows 中,用于配置设备的信息可能来自注册表。
【讨论】: