1

当我的计算机模块 (Adlink comExpressBT) 启动 Linux 4.4.3 时,我收到以下错误,该错误对应于 PnP 故障,阻止了 SMBus 驱动程序加载:(仅供参考 - SMBus 用于 I2C 接口)

Oct 27 01:22:28 buildroot kern.info kernel: [    5.701720] i2c /dev entries driver
Oct 27 01:22:28 buildroot kern.warn kernel: [    5.709082] ACPI Warning: SystemIO range 0x000000000000E000-0x000000000000E01F conflicts with OpRegion 0x000000000000E000-0x000000000000E00F (\_SB_.PCI0.SBUS.SMBI) (20150930/utaddress-254)
Oct 27 01:22:28 buildroot kern.info kernel: [    5.742765] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver

我从 Buildroot 中删除了 ACPI(和 acpid),然后加载了 SMBus 驱动程序。但是,对于我们正在使用的映射 RAM 的定制 PCIe FPGA,PnP 失败了。未正确读取 MSI 功能,导致以下情况:

Oct 31 22:06:25 buildroot kern.crit kernel: [  478.997584] /dev/dcb: initialising
Oct 31 22:06:25 buildroot kern.warn kernel: [  479.007245] pci_drv_DCB 0000:01:00.0: using bridge 0000:00:1c.0 INT A to get IRQ 16
Oct 31 22:06:25 buildroot kern.info kernel: [  479.025554] pci_drv_DCB 0000:01:00.0: PCI->APIC IRQ transform: INT A -> IRQ 16
Oct 31 22:06:25 buildroot kern.info kernel: [  479.043131] pci_drv_DCB 0000:01:00.0: enabling device (0000 -> 0002)
Oct 31 22:06:25 buildroot kern.crit kernel: [  479.059059] pci_DCB: memstart=0x0, memlen=0x0
Oct 31 22:06:25 buildroot kern.err kernel: [  479.070813] Memory address conflict for device "0000:01:00.0", request_mem_region( memstart=0x0, memlen=0x0 ) failed.
Oct 31 22:06:25 buildroot kern.warn kernel: [  479.095176] Unable to request memory for device.
Oct 31 22:06:25 buildroot kern.warn kernel: [  479.107604] pci_drv_DCB: probe of 0000:01:00.0 failed with error -12**

尽管区域地址看起来不错,但无法正确读取 MSI 功能:(来自“lspci -vvv”)

01:00.0 RAM memory: Xilinx Corporation Default PCIe endpoint ID
    Subsystem: Xilinx Corporation Default PCIe endpoint ID
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 0
    Region 0: Memory at b0700000 (64-bit, non-prefetchable) [size=64K]
    Expansion ROM at b0600000 [disabled] [size=1M]
    Capabilities: [40] Power Management version 3
            Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot-,D3cold-)
            Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME
    Capabilities: [48] MSI: Enable- Count=1/1 Maskable+ 64bit+
            Address: 0000000000000000  Data: 0000
            Masking: 00000000  Pending: 00000000**
    Capabilities: [60] Express (v1) Endpoint, MSI 00
            DevCap: MaxPayload 512 bytes, PhantFunc 1, Latency L0s unlimited, L1 unlimited
                    ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10.000W
            DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                    RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
                    MaxPayload 128 bytes, MaxReadReq 512 bytes
            DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
            LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Exit Latency L0s unlimited, L1 unlimited
                    ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
            LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                    ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
            LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

看来我必须在某种程度上启用 ACPI 才能使 PnP-PCI 发现正常工作。有任何想法吗?提前致谢。——罗斯·R。

4

0 回答 0