libqmi-devel Digest, Vol 77, Issue 3

Paul Gildea gildeap at tcd.ie
Mon Jan 14 15:03:00 UTC 2019


This report is from quite some time ago but as I hit this issue when
working with libqmi recently, maybe some of my debugging can help anybody
else if they get this issue. In my case the upgrade is failing whenever I
am using a slow baud rate. Each time I tried to upgrade an MC7455 with a
connection using baud 9600 I would get this error. On a hunch I thought
that this may be related to the issue. I redirected the upgrade output to a
file and the upgrade worked fine, I sshed in and that worked fine also.


Another issue I noticed is that when upgrading is complete and the updater
is waiting on a reply using the cdc-wdm port, if the higher enumerated of
the two ports is used, the transactions will time out. For instance if the
modem comes back up with cdc-wdm0 and cdc-wdm1 then if cdc-wdm1 is used
this will happen 12 times and then the program will print an error also
(seen below):

[14 Jan 2019, 14:34:43] [Debug] [/dev/cdc-wdm1] sent generic request
(translated)...
<<<<<< QMUX:
<<<<<<   length  = 11
<<<<<<   flags   = 0x00
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 0
<<<<<<   message     = "Sync" (0x0027)

[14 Jan 2019, 14:35:03] -Warning ** couldn't create DMS client after
upgrade: couldn't open QMI device: Transaction timed out
[14 Jan 2019, 14:35:03] -Error ** qmi_device_release_client: assertion
`QMI_IS_DEVICE (self)' failed

No functional error, the modem upgrades successfully, it just errors and
never returns to the linux prompt without user intervention. The lower
enumerated port works fine.

Regards,

--
Paul

On Mon, 9 Apr 2018 at 13:00, <libqmi-devel-request at lists.freedesktop.org>
wrote:

> Send libqmi-devel mailing list submissions to
>         libqmi-devel at lists.freedesktop.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://lists.freedesktop.org/mailman/listinfo/libqmi-devel
> or, via email, send a message with subject or body 'help' to
>         libqmi-devel-request at lists.freedesktop.org
>
> You can reach the person managing the list at
>         libqmi-devel-owner at lists.freedesktop.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of libqmi-devel digest..."
>
>
> Today's Topics:
>
>    1. Updating firmware in a mobile broadband modem (Pavlin Georgiev)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 9 Apr 2018 10:42:06 +0200
> From: Pavlin Georgiev <pavlin at varna.net>
> To: libqmi-devel at lists.freedesktop.org
> Subject: Updating firmware in a mobile broadband modem
> Message-ID: <f9757b9d-9cb8-d9d4-e6a2-021239289f59 at varna.net>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>
> My goal is to update the firmware of a broadband modem.
> I use qmi-firmware-update in combination with Sierra Wireless EM7455.
> That modem belongs to firmware series SWI9X30.
>
> I have read some of the update examples.
> I have made several experiments on EM7455.
> All of them have failed at the beginning of the update process.
>
> Now I try to try the cause.
> I ask you for cooperation.
>
> *HARDWARE*
> # lsusb
> Bus 003 Device 010: ID 413c:81b6 Dell Computer Corp.
> Note: a re-branded modem by Dell
>
>
> *DEVICE DRIVERS*
> I didn't use drivers from Sierra Wireless.
> Loaded modules are listed in the attached file.
> Note: I didn't seen module "qmi_wwan" in that list.
>
> Is the loading of driver "qmi_wwan" required?
>
>
> *SOFTWARE ENVIRONMENT*
> Distro: RHEL 7.5 x86_64 Workstation
> kernel-3.10.0-862.el7.x86_64
> libqmi-1.20.0-1.fc28.x86_64
> libqmi-utils-1.20.0-1.fc28.x86_64
>
> Note: libqmi is from Fedora 28 repository.
>
>
> *UPDATE TRIALS*
> I have tried and update operation by specifying:
>    A) THE VID:PID OF A DEVICE
>    B) AN EXPLICIT QMI DEVICE
> Results are listed in the attached file.
>
>
> Thanks in advance for your advice.
> Pavlin Georgiev
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> https://lists.freedesktop.org/archives/libqmi-devel/attachments/20180409/931475f9/attachment-0001.html
> >
> -------------- next part --------------
>
> Bus 003 Device 010: ID 413c:81b6 Dell Computer Corp.
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.10
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x413c Dell Computer Corp.
>   idProduct          0x81b6
>   bcdDevice            0.06
>   iManufacturer           1 Sierra Wireless, Incorporated
>   iProduct                2 EM7455
>   iSerial                 3 001027009999999
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength          260
>     bNumInterfaces          5
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xa0
>       (Bus Powered)
>       Remote Wakeup
>     MaxPower              500mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass    255 Vendor Specific Subclass
>       bInterfaceProtocol    255 Vendor Specific Protocol
>       iInterface              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x01  EP 1 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        2
>       bAlternateSetting       0
>       bNumEndpoints           3
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      0
>       bInterfaceProtocol      0
>       iInterface              0
>       ** UNRECOGNIZED:  05 24 00 10 01
>       ** UNRECOGNIZED:  05 24 01 00 00
>       ** UNRECOGNIZED:  04 24 02 02
>       ** UNRECOGNIZED:  05 24 06 00 00
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x000a  1x 10 bytes
>         bInterval               9
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x82  EP 2 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x02  EP 2 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        3
>       bAlternateSetting       0
>       bNumEndpoints           3
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      0
>       bInterfaceProtocol      0
>       iInterface              0
>       ** UNRECOGNIZED:  05 24 00 10 01
>       ** UNRECOGNIZED:  05 24 01 00 00
>       ** UNRECOGNIZED:  04 24 02 02
>       ** UNRECOGNIZED:  05 24 06 00 00
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x85  EP 5 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x000a  1x 10 bytes
>         bInterval               9
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x84  EP 4 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x03  EP 3 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Association:
>       bLength                 8
>       bDescriptorType        11
>       bFirstInterface        12
>       bInterfaceCount         2
>       bFunctionClass          2 Communications
>       bFunctionSubClass      14
>       bFunctionProtocol       0
>       iFunction               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber       12
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         2 Communications
>       bInterfaceSubClass     14
>       bInterfaceProtocol      0
>       iInterface              0
>       CDC Header:
>         bcdCDC               1.10
>       CDC Union:
>         bMasterInterface        12
>         bSlaveInterface         13
>       CDC MBIM:
>         bcdMBIMVersion       1.00
>         wMaxControlMessage   4096
>         bNumberFilters       32
>         bMaxFilterSize       128
>         wMaxSegmentSize      2048
>         bmNetworkCapabilities 0x20
>           8-byte ntb input size
>       UNRECOGNIZED CDC:  08 24 1c 00 01 40 dc 05
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x87  EP 7 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               9
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber       13
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass        10 CDC Data
>       bInterfaceSubClass      0 Unused
>       bInterfaceProtocol      2
>       iInterface              0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber       13
>       bAlternateSetting       1
>       bNumEndpoints           2
>       bInterfaceClass        10 CDC Data
>       bInterfaceSubClass      0 Unused
>       bInterfaceProtocol      2
>       iInterface              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x86  EP 6 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x04  EP 4 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>         ** UNRECOGNIZED:  2c ff 42 49 53 54 00 01 04 f5 40 f6 00 00 00 00
> 01 f7 c4 09 02 f8 88 13 03 f9 10 27 04 fa 10 27 00 09 04 00 00 a8 2d a7 c0
> 06 30 00
> Binary Object Store Descriptor:
>   bLength                 5
>   bDescriptorType        15
>   wTotalLength           22
>   bNumDeviceCaps          2
>   USB 2.0 Extension Device Capability:
>     bLength                 7
>     bDescriptorType        16
>     bDevCapabilityType      2
>     bmAttributes   0x00000002
>       Link Power Management (LPM) Supported
>   SuperSpeed USB Device Capability:
>     bLength                10
>     bDescriptorType        16
>     bDevCapabilityType      3
>     bmAttributes         0x00
>     wSpeedsSupported   0x000f
>       Device can operate at Low Speed (1Mbps)
>       Device can operate at Full Speed (12Mbps)
>       Device can operate at High Speed (480Mbps)
>       Device can operate at SuperSpeed (5Gbps)
>     bFunctionalitySupport   1
>       Lowest fully-functional device speed is Full Speed (12Mbps)
>     bU1DevExitLat           1 micro seconds
>     bU2DevExitLat         500 micro seconds
> Device Status:     0x0000
>   (Bus Powered)
> -------------- next part --------------
> EM7455
>
>
> AN UPDATE OPERATION SPECIFYING THE VID:PID OF THE DEVICE
>
> # qmi-firmware-update \
> --update \
> -d $USB_ID \
> --device-open-mbim \
> $FIRMWARE_IMG \
> $FIRMWARE_CFG
>
> loading device information before the update...
> setting firmware preference:
>   firmware version: '02.26.01.00'
>   config version:   '002.029_000'
>   carrier:          'SPRINT'
> rebooting in download mode...
> download mode detected
> downloading cwe image: SWI9X30C_02.26.01.00.cwe (64.5 MB)...
> (*-----) 00.0%error: error downloading image: couldn't write in session:
> error writing: only 94208/94208 bytes written
>
>
> # qmi-firmware-update \
> --update \
> -p \
> -d $USB_ID \
> --device-open-mbim \
> $FIRMWARE_IMG \
> $FIRMWARE_CFG
>
> loading device information before the update...
> setting firmware preference:
>   firmware version: '02.24.03.00'
>   config version:   '001.001_000'
>   carrier:          'VODAFONE'
> rebooting in download mode...
> download mode detected
> downloading cwe image: SWI9X30C_02.24.03.00.cwe (64.4 MB)...
> (*-----) 00.0%error: error downloading image: couldn't write in session:
> timed out waiting to write
>
>
> # qmi-firmware-update \
> --update \
> -d $USB_ID \
> $FIRMWARE_IMG \
> $FIRMWARE_CFG
>
> loading device information before the update...
> setting firmware preference:
>   firmware version: '02.24.03.00'
>   config version:   '001.001_000'
>   carrier:          'VODAFONE'
> rebooting in download mode...
> download mode detected
> downloading cwe image: SWI9X30C_02.24.03.00.cwe (64.4 MB)...
> (*-----) 00.0%error: error downloading image: couldn't write in session:
> timed out waiting to write
>
>
> AN UPDATE OPERATION SPECIFYING AN EXPLICIT QMI DEVICE
>
> # ls /dev/cdc*
> /dev/cdc-wdm0
>
> # qmi-firmware-update \
> --update \
> --cdc-wdm /dev/cdc-wdm0 \
> $FIRMWARE_IMG \
> $FIRMWARE_CFG
>
> loading device information before the update...
> setting firmware preference:
>   firmware version: '02.24.03.00'
>   config version:   '001.001_000'
>   carrier:          'VODAFONE'
> rebooting in download mode...
> download mode detected
> downloading cwe image: SWI9X30C_02.24.03.00.cwe (64.4 MB)...
> (*-----) 00.0%error: error downloading image: couldn't write in session:
> timed out waiting to write
> -------------- next part --------------
> Module                  Size  Used by
> fuse                   91880  2
> xt_CHECKSUM            12549  1
> iptable_mangle         12695  1
> ipt_MASQUERADE         12678  3
> nf_nat_masquerade_ipv4    13412  1 ipt_MASQUERADE
> iptable_nat            12875  1
> nf_nat_ipv4            14115  1 iptable_nat
> nf_nat                 26787  2 nf_nat_ipv4,nf_nat_masquerade_ipv4
> nf_conntrack_ipv4      15053  2
> nf_defrag_ipv4         12729  1 nf_conntrack_ipv4
> xt_conntrack           12760  1
> nf_conntrack          133053  5
> nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
> ipt_REJECT             12541  2
> nf_reject_ipv4         13373  1 ipt_REJECT
> tun                    31665  1
> bridge                146976  0
> stp                    12976  1 bridge
> llc                    14552  2 stp,bridge
> ebtable_filter         12827  0
> ebtables               35009  1 ebtable_filter
> ip6table_filter        12815  0
> ip6_tables             26912  1 ip6table_filter
> iptable_filter         12810  1
> devlink                42368  0
> sunrpc                353310  1
> intel_powerclamp       14419  0
> coretemp               13444  0
> snd_hda_codec_hdmi     52231  1
> intel_rapl             19542  0
> ppdev                  17671  0
> snd_hda_codec_realtek    97550  1
> kvm_intel             174841  0
> snd_hda_codec_generic    73855  1 snd_hda_codec_realtek
> kvm                   578518  1 kvm_intel
> iTCO_wdt               13480  0
> iTCO_vendor_support    13718  1 iTCO_wdt
> irqbypass              13503  1 kvm
> qcserial               17489  0
> snd_hda_intel          40122  6
> usb_wwan               19909  1 qcserial
> crc32_pclmul           13133  0
> snd_hda_codec         135389  4
> snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel
> ghash_clmulni_intel    13273  0
> aesni_intel           189414  0
> lrw                    13286  1 aesni_intel
> snd_hda_core           85885  5
> snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
> gf128mul               15139  1 lrw
> glue_helper            13990  1 aesni_intel
> snd_hwdep              13608  1 snd_hda_codec
> ablk_helper            13597  1 aesni_intel
> snd_seq                62785  0
> cryptd                 20511  3 ghash_clmulni_intel,aesni_intel,ablk_helper
> snd_seq_device         14356  1 snd_seq
> snd_pcm               101643  4
> snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core
> snd_timer              29810  2 snd_pcm,snd_seq
> snd                    79215  22
> snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device
> pcspkr                 12718  0
> sg                     40721  0
> soundcore              15047  1 snd
> wmi                    19086  0
> parport_pc             28205  0
> mei_me                 32848  0
> mei                    91099  1 mei_me
> parport                46395  2 ppdev,parport_pc
> i2c_i801               22550  0
> shpchp                 37047  0
> lpc_ich                21086  0
> ip_tables              27126  3 iptable_filter,iptable_mangle,iptable_nat
> xfs                  1003971  3
> libcrc32c              12644  3 xfs,nf_nat,nf_conntrack
> sd_mod                 46322  3
> sr_mod                 22416  0
> crc_t10dif             12912  1 sd_mod
> cdrom                  42556  1 sr_mod
> crct10dif_generic      12647  0
> i915                 1639824  1
> iosf_mbi               14990  2 i915,intel_rapl
> i2c_algo_bit           13413  1 i915
> drm_kms_helper        176920  1 i915
> ahci                   34056  2
> crct10dif_pclmul       14307  1
> crct10dif_common       12595  3
> crct10dif_pclmul,crct10dif_generic,crc_t10dif
> syscopyarea            12529  1 drm_kms_helper
> libahci                31992  1 ahci
> sysfillrect            12701  1 drm_kms_helper
> sysimgblt              12640  1 drm_kms_helper
> fb_sys_fops            12703  1 drm_kms_helper
> cdc_mbim               13511  0
> libata                242992  2 ahci,libahci
> drm                   397988  3 i915,drm_kms_helper
> cdc_wdm                19105  1 cdc_mbim
> crc32c_intel           22094  1
> serio_raw              13434  0
> r8169                  89196  0
> cdc_ncm                31279  1 cdc_mbim
> usbnet                 44087  2 cdc_mbim,cdc_ncm
> i2c_core               63151  5
> drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit
> mii                    13934  2 r8169,usbnet
> video                  24538  1 i915
> dm_mirror              22289  0
> dm_region_hash         20813  1 dm_mirror
> dm_log                 18411  2 dm_region_hash,dm_mirror
> dm_mod                123941  11 dm_log,dm_mirror
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> libqmi-devel mailing list
> libqmi-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libqmi-devel
>
>
> ------------------------------
>
> End of libqmi-devel Digest, Vol 77, Issue 3
> *******************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libqmi-devel/attachments/20190114/3ccdf6fd/attachment-0001.html>


More information about the libqmi-devel mailing list