PCI 地址的数字系统
lspci -D | grep -i "network\|ethernet"
0000:00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10)
0000:03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 04)
完整的 PCI 地址格式
标准 PCI 地址格式是:[domain]:[bus]:[slot].[function]
Domain:通常是 0000(大多数系统只有一个 domain)
Bus:00 到 FF
Slot:00 到 1F
Function:0 到 7
| 字段 | 范围 | 进制 | 说明 |
|---|---|---|---|
| Domain | 0000 – FFFF |
16进制 | 通常只有 0000 |
| Bus | 00 – FF |
16进制 | 最多 256 条总线(0–255) |
| Slot | 00 – 1F |
16进制 | 最多 32 个设备(0–31) |
| Function | 0 – 7 |
16进制 | 最多 8 个功能(0–7) |
具体例子
你的网卡地址:0000:03:00.0
| 部分 | 值 | 10进制 | 说明 |
|---|---|---|---|
| Domain | 0000 |
0 | 第 1 个 domain |
| Bus | 03 |
3 | 第 4 条总线 |
| Slot | 00 |
0 | 第 1 个槽位 |
| Function | 0 |
0 | 第 1 个功能 |
为什么用 16进制
- PCI 规范使用 16进制,因为它能紧凑地表示大范围地址
- 256 条总线 =
00–FF(16进制)= 0–255(10进制) - 32 个槽位 =
00–1F(16进制)= 0–31(10进制)
当你看到这样的地址:
0000:1A:0B.7
转换成 10 进制理解:
– Domain: 0000 = 0
– Bus: 1A = 26
– Slot: 0B = 11
– Function: 7 = 7
这在 sysfs 中的路径也会用 16 进制:
/sys/devices/pci0000:00/0000:00:1f.6/
/sys/devices/pci0000:00/0000:00:1c.7/0000:03:00.0/
所有 PCI 相关的工具(lspci、ethtool、lsof 等)都使用 16 进制表示 PCI 地址。
