pcie 的bdf 详细介绍,及用法实例、linux 查看pci设备信息命令详解

PCIe是指PCI Express,是一种计算机总线标准。在PCIe中,每个连接到主板上的设备都有唯一的地址,被称为BDF。

  • BDF:Bus、Device、Function 的缩写。其中Bus是指PCIe总线编号(一个系统中可能存在多个PCIe总线),Device是指连接到该总线上的某个设备编号,Function是指同一个设备上不同功能的编号。
  • Root表示开头、根部的意思。因此,Root BDF是指PCIe层次结构中最高层的设备(通常是主板)的BDF地址。

在PCIe设备ID和驱动程序匹配过程中,使用Root BDF和设备的BDF地址来确认特定设备的位置和身份。

PCIe BDF 是用于唯一识别 PCIe 设备的标志符。BDF 表示总线编号、设备编号和功能编号。这三个数字结合在一起,可以标识一个具体的 PCIe 设备。

  • 总线编号:表示 PCIe 设备所连接到的 PCIe 根端点所在的物理总线编号。这个编号是唯一的,它和系统中所有其他 PCIe 总线的编号都不同。
  • 设备编号:表示物理总线上被分配给 PCIe 设备的编号。这个编号是唯一的,它和同一总线上的其他设备的编号都不同。
  • 功能编号:表示在同一 PCIe 设备内部,每个功能被分配的编号。对于只有一个功能的设备,这个值通常为 0。而对于包含多个功能的设备,每个功能都被分配一个唯一的编号。

BDF 的典型格式为 BBBB:DD:FF。其中,“BBBB” 是四位十六进制的总线编号,“DD” 是两位十六进制的设备编号,“FF” 是两位十六进制的功能编号。

例如,一个叫做“0000:03:00.0”的 PCIe BDF 号码,表示这个 PCIe 设备连接到物理总线 0000 上,它的设备编号为 03,它只有一个功能,其功能编号为 0。

在 Linux 系统中,可以使用各种工具来查看 PCI Express(PCIe)总线拓扑。以下是一些常见的方法:

  1. 使用 lspci 命令
lspci -t

该命令以树形结构列出 PCIe 总线及其连接的设备和桥接器信息。

  1. 使用 lspci 和 grep 命令
lspci -vv | grep "^\([0-9a-f]\{2\}:\)\{2\}[0-9a-f]\{2\}"

该命令将以详细格式输出 lspci 信息,并查找所有 PCIe 设备的详细信息。

  1. 使用 lshw 命令
sudo lshw -class bridge -businfo

该命令列出 PCIe 桥接器及其子设备的详细信息,并以总线信息的形式输出。

  1. 使用 hwloc 工具
hwloc-ls --whole-system

该工具将显示整个系统的硬件拓扑结构,包括 PCIe 拓扑。

猜你喜欢

转载自blog.csdn.net/qq_37037348/article/details/130564019
bdf