扫描 PCI 设备¶
语法¶
pciscan <setting>
示例¶
扫描所有 PCI 设备¶
#!ipxe
:scan pciscan addr || goto scan_done
echo Found PCI device ${addr:busdevfn}
goto scan
:scan_done
描述¶
从指定设置中的 PCI bus:dev.fn 地址开始扫描 PCI 总线,并把下一个设备的 PCI bus:dev.fn 地址存储到指定设置中。如果指定设置为空,则从第一个 PCI 设备开始扫描。
如果没有更多 PCI 设备,命令会以错误状态静默失败。
命令状态¶
| 成功 | 找到了一个 PCI 设备,bus:dev.fn 地址已存储到设置中 |
|---|---|
| 失败 | 没有找到更多 PCI 设备 |
另请参阅¶
ifstatgoto- 全部 iPXE 设置列表
- 全部 iPXE 命令列表
构建选项¶
此命令仅在启用构建选项 PCI_CMD 时可用。
备注¶
你可以使用 PCI bus:dev.fn 地址从 PCI 配置空间提取信息。例如,列出所有 PCI 设备的厂商 ID 和设备 ID:
#!ipxe
:scan pciscan addr || goto scan_done
echo ${addr:busdevfn}: ${pci/${addr}.0.2}:${pci/${addr}.2.2}
goto scan
:scan_done
该设置会被创建为 16 位无符号整数(uint16),因此可以用在 ${pci/${addr}.0.2} 这类构造的 PCI 配置空间设置中。你可以使用 busdevfn 设置类型把它格式化为 PCI bus:dev.fn 地址。例如:
iPXE> pciscan addr
iPXE> show addr
addr:uint16 = 0xea
iPXE> show addr:busdevfn
addr:busdevfn = 00:1d.2