如何使用安装在设备中的 nvme linux 驱动程序调用 pcie 功能

问题描述

我是 linux 设备驱动程序的新手。我熟悉 pcie 和 nvme 的 linux 驱动程序代码。 我已经加载了 linux nvme 驱动程序并且能够通过 nvme cli 发送读、写命令。 加载 nvme 驱动程序后,是否可以将 pcie 命令(更改速度、车道)发送到设备。对现有的 nvme 驱动程序代码要做哪些更改? 主要目标是移植一堆 pcie 测试用例以与 nvme 读/写并行运行。

解决方法

您可以使用 setpci 来发出 PCIe 命令。无需对 nvme 驱动程序代码进行任何更改。

setpci -s Bus:device.function reg=value

您可以使用 setpci --dumpregs 来检查链接控制 2 寄存器的寄存器地址。然后修改nvme设备上行桥的目标链路速度