Snapdragon X55 (Thinkpad X1 Nano w/5G Modem)

Oskar Stenman oskar at cetex.se
Tue May 11 06:04:19 UTC 2021


Hi!

I'm trying to get the modem running on my Thinkpad X1 Nano which i ordered
with the Snapdragon X55 / 5G Modem.

I contacted Bjørn Mork who seems to be the author for some other kernel
modules for usb-devices and we've been digging a bit. He informed me that
you're already working on this chip here:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bus/mhi/pci_generic.c?id=aac426562f568520b674f0d5ae3929977be9f1c0

I'm on ubuntu 21.04 (if it matters) and have built my kernel from mainline
git (as well as bleeding-edge modemmanager, libqmi, libmbim as of may 7th)
and now ModemManager detects the modem but but something is still failing
when trying to enable it.

Here's a loose translation of what Bjørn mentioned:

---------------------
This problem might be specific to Lenovo/Thinkpad, the only thing you might
need could be to actually turn on the radio:

                                                                 >>>>>>
 HwRadioState = 'on'
                                                                 >>>>>>
 SwRadioState = 'off'

HwRadioState indicates that the input-signal to the module (W_DISABLE#) is
OK.
SwRadioState indicates that the radio is put in airplane mode through
software.  Either BIOS or it might be the default of the modem-firmware.

Lenovo has earlier (EM7455) required that the driver sends a magic "Set FCC
Authentication" request on startup to enable the radio. You can also see it
in your log since MM tries it when the radio-state returns
"OperationNotAllowed".

                                                                 <<<<<<
QMUX:
                                                                 <<<<<<
 length  = 19
                                                                 <<<<<<
 flags   = 0x80
                                                                 <<<<<<
 service = "dms"
                                                                 <<<<<<
 client  = 1
                                                                 <<<<<< QMI:
                                                                 <<<<<<
 flags       = "response"
                                                                 <<<<<<
 transaction = 5
                                                                 <<<<<<
 tlv_length  = 7
                                                                 <<<<<<
 message     = "Set FCC Authentication" (0x555F)
                                                                 <<<<<< TLV:
                                                                 <<<<<<
 type       = "Result" (0x02)
                                                                 <<<<<<
 length     = 4
                                                                 <<<<<<
 value      = 01:00:11:00
                                                                 <<<<<<
 translated = FAILURE: MissingArgument


'MissingArgument' is also interesting. It means that the request ID exists
and since this is a vendor-specific code (as far as i know) it oculd mean
that it's specified by Lenovo, not by Sierra Wireless as i've previously
thought.

That could mean that this is the correct method to enable the radio, but
that they require an input-argument. Maybe a code? or something else?

It could also just mean that QMI_DMS request 0x555F is something else
entirely in this Foxconn modem and is completley unrelated to radio on/off.

The problem we have now is that we no longer have a simple solution to
snoop the trafic from windows. It was simple with USB but I have no idea
how to do that with PCIe. I've never worked with PCI-drivers.
---------------------

Does anyone have any idea / some other input for how to get further?

Best regards
Oskar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20210511/b432cda4/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mmcli
Type: application/octet-stream
Size: 4571 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20210511/b432cda4/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nmcli_conn_show_wwan
Type: application/octet-stream
Size: 4962 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20210511/b432cda4/attachment-0004.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ModemManager.log
Type: text/x-log
Size: 42188 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20210511/b432cda4/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lspci-vnn
Type: application/octet-stream
Size: 15159 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20210511/b432cda4/attachment-0005.obj>


More information about the ModemManager-devel mailing list