Updating firmware in a mobile broadband modem

Pavlin Georgiev pavlin at varna.net
Mon Apr 9 08:42:06 UTC 2018


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.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


More information about the libqmi-devel mailing list