测试环境:Ubuntu 18.04
测试目标:通过 Linux 命令,触发 PCIe 设备的 FLR (Function-Level Reset)。
测试步骤:
- 通过 lspci 指令确定设备的 PCIe Function ID
bryan@bryan-pc:~$ lspci
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 08)
00:02.0 VGA compatible controller: Intel Corporation 8th Gen Core Processor Gaussian Mixture Model
00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
00:14.2 Signal processing controller: Intel Corporation 200 Series PCH Thermal Subsystem
00:15.0 Signal processing controller: Intel Corporation 200 Series PCH Serial IO I2C Controller #0
00:15.1 Signal processing controller: Intel Corporation 200 Series PCH Serial IO I2C Controller #1
00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1
00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]
00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #7 (rev f0)
00:1d.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #9 (rev f0)
00:1e.0 Signal processing controller: Intel Corporation 200 Series/Z370 Chipset Family Serial IO UART Controller #0
00:1f.0 ISA bridge: Intel Corporation Device a2cc
00:1f.2 Memory controller: Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller
00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
00:1f.4 SMBus: Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
03:00.0 Network controller: Intel Corporation Dual Band Wireless-AC 3165 Plus Bluetooth (rev 99)
2. 切换为 root 用户,进入 PCIe Function 设备目录。
bryan@bryan-pc:~$ su
Password:
root@bryan-pc:/home/bryan# cd /sys/bus/pci/devices/0000:03:00.0
root@bryan-pc:/sys/bus/pci/devices/0000:03:00.0# ls
aer_dev_correctable broken_parity_status current_link_speed dma_mask_bits firmware_node link max_link_width net rescan revision uevent
aer_dev_fatal class current_link_width driver ieee80211 local_cpulist modalias numa_node reset subsystem vendor
aer_dev_nonfatal config d3cold_allowed driver_override irq local_cpus msi_bus power resource subsystem_device
ari_enabled consistent_dma_mask_bits device enable leds max_link_speed msi_irqs remove resource0 subsystem_vendor
- 向设备的 reset 文件写入 1,复位该 PCIe Function。
root@bryan-pc:/sys/bus/pci/devices/0000:03:00.0# echo 1 > reset