我需要在Linux中以phisical方式关闭我的PCI设备。我找到了我需要的函数,但它似乎编写了一个内核模式应用程序来使用该库,因为我在内核头文件中找到它。
我在drivers / pci / pci.c中找到了这个函数int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
,我不知道如何使用它。
另外,我在文档中读到,一般设备驱动程序不用于将设备切换到d3cold,因为设备只是关闭而根本不工作(是的,有一些设备,可以不完全关闭,并且能够发送唤醒呼叫,但这是另一个故事......)我想,我需要与PCI总线通信。
我不知道在哪里寻找答案,请指导我的任务。
答案 0 :(得分:1)
潜在方法1 我认为您可以使用以下命令来做到这一点:
禁用
回声0> / sys / bus / pci / slots / $ NUMBER / power
启用
回声1> / sys / bus / pci / slots / $ NUMBER / power
其中$ NUMBER是PCI插槽的编号。
lspci -vv可能有助于识别设备。这没有很好的记录...
答案 1 :(得分:0)
另一种方法是将关机通知发送到pci设备。我以nvm设备为例
通过lspci读取bar0值,偏移量为10h。
lspci -s 01:00.0 -xxxx。例如,您得到了值:0xfc1f4004
addr为0xfc1f4000的读存储器
在0xfc1f4014的位14中写入1
偏移14h:CC –控制器配置。 Bit 15:14 = 01b正常关机通知