Cinterion MV31-W modem support

ROSTANSKI Tomasz tomasz.rostanski at thalesgroup.com
Tue Aug 3 15:13:56 UTC 2021


Hi,

The patch works. No QMI is being probed.
I think I spotted the reason why not only cinterion module is considered appropriate for the modem.
After executing the:
mmcli --report-kernel-event="action=add,subsystem=wwan,name=wwan0mbim0"

we can see:

[2940]: <debug> [base-manager] kernel event reported:
[2940]: <debug> [base-manager]   action:    add
[2940]: <debug> [base-manager]   subsystem: wwan
[2940]: <debug> [base-manager]   name:      wwan0mbim0
[2940]: <debug> [base-manager]   uid:       n/a
[2940]: <debug> [wwan0mbim0] preloading contents and properties...
[2940]: <debug> [wwan0mbim0] sysfs path: /sys/devices/platform/soc at 0/884057000000.pci/pci0002:57/0002:57:00.0/0002:58:00.0/mhi0/wwan/wwan0/wwan0mbim0
[2940]: <debug> [wwan0mbim0] port contents loaded:
[2940]: <debug> [wwan0mbim0]   bus: pci
[2940]: <debug> [wwan0mbim0]   device: /sys/devices/platform/soc at 0/884057000000.pci/pci0002:57/0002:57:00.0
[2940]: <debug> [wwan0mbim0]   subsystems: wwan, mhi, pci
[2940]: <debug> [wwan0mbim0]   drivers: mhi-pci-generic, pcieport
[2940]: <debug> [wwan0mbim0]   vendor: 177d
[2940]: <debug> [wwan0mbim0]   product: a22d
[2940]: <debug> [wwan0mbim0]   revision: 0002
[2940]: <debug> [wwan0mbim0]   ID_VENDOR_ID: 0x177d
[2940]: <debug> [wwan0mbim0]   ID_MODEL_ID: 0xa22d
[2940]: <debug> [wwan0mbim0]   ID_REVISION: 0x0002

The detected vendor id is 0x177d:a22d is a PCI bridge:
0002:57:00.0 PCI bridge: Cavium, Inc. Device a22d (rev 02) (prog-if 00 [Normal decode])
While the modem is:
0002:58:00.0 Wireless controller [0d40]: Thomson-CSF/TTM Device 00b3
(Thomson-CSF is former name of Thales)

root at OpenWrt:~# lspci
0000:00:01.0 PCI bridge: Cavium, Inc. THUNDERX PCC Bridge (rev 02)
0000:00:06.0 System peripheral: Cavium, Inc. THUNDERX GPIO Controller (rev 02)
0000:00:07.0 System peripheral: Cavium, Inc. THUNDERX MPI / SPI Controller (rev 02)
0000:00:08.0 System peripheral: Cavium, Inc. THUNDERX MIO-PTP Controller (rev 02)
0000:00:09.0 PCI bridge: Cavium, Inc. THUNDERX PCC Bridge (rev 02)
0000:00:0a.0 PCI bridge: Cavium, Inc. THUNDERX PCC Bridge (rev 02)
0000:00:0b.0 Memory controller: Cavium, Inc. Device a04f (rev 02)
0000:00:0c.0 PCI bridge: Cavium, Inc. THUNDERX PCC Bridge (rev 02)
0000:00:0d.0 Serial bus controller [0c80]: Cavium, Inc. Device a04e (rev 02)
0000:00:0e.0 System peripheral: Cavium, Inc. THUNDERX PCIe Switch Logic Interface (rev 02)
0000:00:0f.0 PCI bridge: Cavium, Inc. THUNDERX PCC Bridge (rev 02)
0000:00:10.0 USB controller: Cavium, Inc. Device a055 (rev 02)
0000:00:11.0 USB controller: Cavium, Inc. Device a055 (rev 02)
0000:01:00.0 System peripheral: Cavium, Inc. ThunderX MRML(Master RML Bridge to RSL devices) (rev 02)
0000:01:00.1 System peripheral: Cavium, Inc. THUNDERX Reset Controller (rev 02)
0000:01:01.3 Serial bus controller [0c80]: Cavium, Inc. THUNDERX SMI / MDIO Controller (rev 02)
0000:01:01.4 Memory controller: Cavium, Inc. THUNDERX eMMC/SD Controller (rev 02)
0000:01:01.7 System peripheral: Cavium, Inc. THUNDERX Parallel Bus (rev 02)
0000:01:02.0 System peripheral: Cavium, Inc. Device a056 (rev 02)
0000:01:06.0 Memory controller: Cavium, Inc. ThunderX L2C-TAD (Level 2 cache tag and data) (rev 02)
0000:01:07.0 Memory controller: Cavium, Inc. THUNDERX L2C-CBC (rev 02)
0000:01:07.4 Memory controller: Cavium, Inc. THUNDERX L2C-MCI (rev 02)
0000:01:09.0 Serial bus controller [0c80]: Cavium, Inc. THUNDERX TWSI / I2C Controller (rev 02)
0000:01:09.1 Serial bus controller [0c80]: Cavium, Inc. THUNDERX TWSI / I2C Controller (rev 02)
0000:01:0a.0 Memory controller: Cavium, Inc. THUNDERX LMC (DRAM Controller) (rev 02)
0000:01:0c.0 System peripheral: Cavium, Inc. THUNDERX OCLA (On-Chip Logic Analyzer) (rev 02)
0000:01:0c.1 System peripheral: Cavium, Inc. THUNDERX OCLA (On-Chip Logic Analyzer) (rev 02)
0000:01:0d.0 System peripheral: Cavium, Inc. Device a042 (rev 02)
0000:01:10.0 Network controller: Cavium, Inc. THUNDERX BGX (Common Ethernet Interface) (rev 02)
0000:01:12.0 Network controller: Cavium, Inc. Device a054 (rev 02)
0000:02:00.0 Processing accelerators: Cavium, Inc. THUNDERX Random Number Generator (rev 02)
0000:02:00.1 Processing accelerators: Cavium, Inc. THUNDERX Random Number Generator virtual function (rev 02)
0000:03:00.0 Memory controller: Cavium, Inc. Device a043 (rev 02)
0000:04:00.0 Encryption controller: Cavium, Inc. THUNDERX CPT Cryptographic Accelerator (rev 02)
0000:05:00.0 Ethernet controller: Cavium, Inc. THUNDERX Network Interface Controller (rev 02)
0000:05:00.1 Ethernet controller: Cavium, Inc. THUNDERX Network Interface Controller virtual function (rev 02)
0000:05:00.2 Ethernet controller: Cavium, Inc. THUNDERX Network Interface Controller virtual function (rev 02)
0001:1f:00.0 PCI bridge: Cavium, Inc. Device a22d (rev 02)
0001:20:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter
0002:57:00.0 PCI bridge: Cavium, Inc. Device a22d (rev 02)
0002:58:00.0 Wireless controller [0d40]: Thomson-CSF/TTM Device 00b3

root at OpenWrt:~# lspci -n
0000:00:01.0 0604: 177d:a002 (rev 02)
0000:00:06.0 0880: 177d:a00a (rev 02)
0000:00:07.0 0880: 177d:a00b (rev 02)
0000:00:08.0 0880: 177d:a00c (rev 02)
0000:00:09.0 0604: 177d:a002 (rev 02)
0000:00:0a.0 0604: 177d:a002 (rev 02)
0000:00:0b.0 0580: 177d:a04f (rev 02)
0000:00:0c.0 0604: 177d:a002 (rev 02)
0000:00:0d.0 0c80: 177d:a04e (rev 02)
0000:00:0e.0 0880: 177d:a015 (rev 02)
0000:00:0f.0 0604: 177d:a002 (rev 02)
0000:00:10.0 0c03: 177d:a055 (rev 02)
0000:00:11.0 0c03: 177d:a055 (rev 02)
0000:01:00.0 0880: 177d:a001 (rev 02)
0000:01:00.1 0880: 177d:a00e (rev 02)
0000:01:01.3 0c80: 177d:a02b (rev 02)
0000:01:01.4 0580: 177d:a010 (rev 02)
0000:01:01.7 0880: 177d:a035 (rev 02)
0000:01:02.0 0880: 177d:a056 (rev 02)
0000:01:06.0 0580: 177d:a02e (rev 02)
0000:01:07.0 0580: 177d:a02f (rev 02)
0000:01:07.4 0580: 177d:a030 (rev 02)
0000:01:09.0 0c80: 177d:a012 (rev 02)
0000:01:09.1 0c80: 177d:a012 (rev 02)
0000:01:0a.0 0580: 177d:a022 (rev 02)
0000:01:0c.0 0880: 177d:a023 (rev 02)
0000:01:0c.1 0880: 177d:a023 (rev 02)
0000:01:0d.0 0880: 177d:a042 (rev 02)
0000:01:10.0 0280: 177d:a026 (rev 02)
0000:01:12.0 0280: 177d:a054 (rev 02)
0000:02:00.0 1200: 177d:a018 (rev 02)
0000:02:00.1 1200: 177d:a033 (rev 02)
0000:03:00.0 0580: 177d:a043 (rev 02)
0000:04:00.0 1080: 177d:a040 (rev 02)
0000:05:00.0 0200: 177d:a01e (rev 02)
0000:05:00.1 0200: 177d:a034 (rev 02)
0000:05:00.2 0200: 177d:a034 (rev 02)
0001:1f:00.0 0604: 177d:a22d (rev 02)
0001:20:00.0 0280: 168c:003c
0002:57:00.0 0604: 177d:a22d (rev 02)
0002:58:00.0 0d40: 1269:00b3

-----Original Message-----
From: Loic Poulain <loic.poulain at linaro.org> 
Sent: Friday, July 30, 2021 4:05 PM
To: Aleksander Morgado <aleksander at aleksander.es>
Cc: ROSTANSKI Tomasz <tomasz.rostanski at thalesgroup.com>; modemmanager-devel at lists.freedesktop.org
Subject: Re: Cinterion MV31-W modem support

Hi Tomasz,

On Thu, 29 Jul 2021 at 15:49, Aleksander Morgado <aleksander at aleksander.es> wrote:
>
> Hey,
>
> > I have modified the plugin as suggested.
> > There's some progress but no success yet.
> >
> > I have started Modem Manager, then executed (we're running on openwrt with no udev):
> > mmcli --report-kernel-event="action=add,subsystem=wwan,name=wwan0mbim0"
> >
> > And then observed that Modem Manager tried talking to modem using QMI first and them MBIM but without success. The log is below.
> >
>
> Ok. I think you're the first ones I know of doing that testing :)
>
> > Thanks,
> > Tomasz
> >
> > root at OpenWrt:~# ls /dev/wwan*
> > /dev/wwan0at0    /dev/wwan0mbim0
> >
> > [7442]: <debug> [base-manager] kernel event reported:
> > [7442]: <debug> [base-manager]   action:    add
> > [7442]: <debug> [base-manager]   subsystem: wwan
> > [7442]: <debug> [base-manager]   name:      wwan0mbim0
> > [7442]: <debug> [base-manager]   uid:       n/a
> > [7442]: <debug> [wwan0mbim0] preloading contents and properties...
> > [7442]: <debug> [wwan0mbim0] sysfs path: 
> > /sys/devices/platform/soc at 0/884057000000.pci/pci0002:57/0002:57:00.0
> > /0002:58:00.0/mhi0/wwan/wwan0/wwan0mbim0
> > [7442]: <debug> [wwan0mbim0] port contents loaded:
> > [7442]: <debug> [wwan0mbim0]   bus: pci
> > [7442]: <debug> [wwan0mbim0]   device: /sys/devices/platform/soc at 0/884057000000.pci/pci0002:57/0002:57:00.0
> > [7442]: <debug> [wwan0mbim0]   subsystems: wwan, mhi, pci
> > [7442]: <debug> [wwan0mbim0]   drivers: mhi-pci-generic, pcieport
> > [7442]: <debug> [wwan0mbim0]   vendor: 177d
> > [7442]: <debug> [wwan0mbim0]   product: a22d
> > [7442]: <debug> [wwan0mbim0]   revision: 0002
> > [7442]: <debug> [wwan0mbim0]   ID_VENDOR_ID: 0x177d
> > [7442]: <debug> [wwan0mbim0]   ID_MODEL_ID: 0xa22d
> > [7442]: <debug> [wwan0mbim0]   ID_REVISION: 0x0002
> > [7442]: <debug> [wwan0mbim0] property added: ID_MM_CANDIDATE=1
> > [7442]: <warn>  [wwan0mbim0] unknown match condition parameter: 
> > ATTR{type}
> > [7442]: <warn>  [wwan0mbim0] unknown match condition parameter: 
> > ATTR{type}
> > [7442]: <warn>  [wwan0mbim0] unknown match condition parameter: 
> > ATTR{type}
> > [7442]: <warn>  [wwan0mbim0] unknown match condition parameter: 
> > ATTR{type}
> > [7442]: <warn>  [wwan0mbim0] unknown match condition parameter: 
> > ATTR{type}
> > [7442]: <warn>  [wwan0mbim0] invalid pattern in rule '*MBIM': Error 
> > while compiling regular expression *MBIM at char 0: nothing to 
> > repeat
> > [7442]: <warn>  [wwan0mbim0] invalid pattern in rule '*QMI': Error 
> > while compiling regular expression *QMI at char 0: nothing to repeat
> > [7442]: <warn>  [wwan0mbim0] invalid pattern in rule '*AT': Error 
> > while compiling regular expression *AT at char 0: nothing to repeat
> > [7442]: <warn>  [wwan0mbim0] invalid pattern in rule '*QCDM': Error 
> > while compiling regular expression *QCDM at char 0: nothing to 
> > repeat
> > [7442]: <warn>  [wwan0mbim0] invalid pattern in rule '*FIREHOSE': 
> > Error while compiling regular expression *FIREHOSE at char 0: 
> > nothing to repeat
>
> Those warnings above show that the current available rules to flag 
> port type hints based on either type or name are failing badly when 
> using the limited built-in udev parser. I've opened this issue to 
> track it: 
> https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/
> 410

I've submitted a patch:
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/593
It fixes the ATTR parsing issue, not the regular expression, but should be enough to solve your 'qmi' probing issue.

Regards,
Loic


More information about the ModemManager-devel mailing list