PCAN-miniPCIe: unable to run non-mainline pcan driver with usemsi=1

This forum covers PCAN-Linux and Linux development issues concerning our products
Posts: 2
Joined: Mon 29. Mar 2021, 21:45

PCAN-miniPCIe: unable to run non-mainline pcan driver with usemsi=1

Post by acarrillo » Tue 30. Mar 2021, 03:00


I replied to a topic with this problem (viewtopic.php?f=59&t=4189&start=10#p15406), but figure that perhaps it is better to create a new thread since it's a slightly new subject :D .

I am bringing up an embedded linux platform via BusyBox/buildroot. I have the PCAN-miniPCIe 2-channel device. With the non-mainline pcan driver for linux (8.11.0), I am able to write messages to the CAN bus but not receive. I have verified that my CAN bus end-device is terminated correctly by connecting it to a separate CAN-USB dongle and seeing the expected data + data rate on my developer laptop.

I have assumed up to now that my problem in not receiving any messages is with legacy INTA versus MSI, so I have tried to run the driver with `usemsi=1`. With the `DEBUG_MSI` macro set during driver compilation, I can see the following debug data indicating failure and fallback to legacy INTA:

Code: Select all

pcan: Release_20210119_n (le)                                   
pcan: driver config [mod] [isa] [pci] [pec] [dng] [usb] [net]   
pcan 0000:10:00.0: using bridge 0000:00:1d.0 INT A to get IRQ 23
pcan 0000:10:00.0: PCI->APIC IRQ transform: INT A -> IRQ 23     
pcan 0000:10:00.0: PCAN-miniPCIe sub-system id 5h (2 channels)  
pcan: MSI flags=0082h => maxvec=2 vs. msi_max=2
pcan: enabling [1..2] MSI status: 1
pcan: fallback into INTA mode IRQ23 (err 1)
I do have `CONFIG_PCI_MSI` set in my kernel config, and the PCAN-miniPCIe device itself purports to support MSI:

Code: Select all

10:00.0 Network controller: PEAK-System Technik GmbH Device 0008 (rev 02)
        Subsystem: PEAK-System Technik GmbH Device 0005
        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 23
        Region 0: Memory at a1110000 (32-bit, non-prefetchable) [size=64K]
        Region 1: Memory at a1100000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [50] Power Management version 0
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [70] MSI: Enable- Count=1/2 Maskable- 64bit+
                Address: 00000000fee02004  Data: 4025
        Capabilities: [90] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
                DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Exit Latency L0s unlimited
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
                LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s (ok), Width x1 (ok)
                        TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
        Kernel driver in use: pcan
Any insights in what I should try next would be appreciated. Thank you!

Sales & Support
Sales & Support
Posts: 503
Joined: Fri 20. Sep 2019, 13:31

Re: PCAN-miniPCIe: unable to run non-mainline pcan driver with usemsi=1

Post by M.Heidemann » Wed 31. Mar 2021, 08:28


as you have also contacted us via email,
we deem this post redundant and close it.

Best Regards