跳转至

扫描 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 设备

另请参阅

构建选项

此命令仅在启用构建选项 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