Re: status of Sierra Wireless MC8305 1199:9011 ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thomas Schäfer <tschaefer@xxxxxxxxxxx> writes:

> Hi,
>
> Yesterday I have had a access to a new notebook with built in UMTS-device.
>
> The live-cd with kernel 3.7 tried qmi_wwan, but failed:
>
> [   12.115215] qmi_wwan 1-1.5:2.5: CDC functional descriptors missing

Wow, that brings back memories of old bugs...

The qmi_wwan probing had some pretty bad built-in assumptions up to and
including v3.8. This one in particular, would make it require a CDC
header and Union descriptor if the probed interface had anything but 3
endpoints.

We've also later discovered that interface #5 on this device never
should have been handled by qmi_wwan, and it was removed from the driver
in Linux v3.11. AFAIK it is not a QMI interface, but more likely a MBIM
interface?

> [   12.115226] qmi_wwan: probe of 1-1.5:2.5 failed with error -1
> [   12.115244] usbcore: registered new interface driver qmi_wwan
>
> I tried manually the option-driver, but then the system is crashed.
>
> Any hints, test proposals?
>
>
> Thomas
>
>
>
>
>
> Bus 001 Device 008: ID 1199:9011 Sierra Wireless, Inc. 
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass          239 Miscellaneous Device
>   bDeviceSubClass         2 ?
>   bDeviceProtocol         1 Interface Association
>   bMaxPacketSize0        64
>   idVendor           0x1199 Sierra Wireless, Inc.
>   idProduct          0x9011 
>   bcdDevice            0.02
>   iManufacturer           4 Sierra Wireless Inc
>   iProduct                3 MC8305
>   iSerial                 0 
>   bNumConfigurations      2

Good.  You have two alternate configs here.

>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength          157
>     bNumInterfaces          4
>     bConfigurationValue     1
>     iConfiguration          1 Qualcomm Configuration


The first one is assumed to be a standard Gobi2K config, and 4
interfaces is correct:

                 * 0: QMI/net
                 * 1: DM/DIAG (use libqcdm from ModemManager for communication)
                 * 2: AT-capable modem port
                 * 3: NMEA


>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        3
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass    255 Vendor Specific Subclass
>       bInterfaceProtocol    255 Vendor Specific Protocol
>       iInterface              0 
>       ** UNRECOGNIZED:  05 24 00 10 01
>       ** UNRECOGNIZED:  05 24 15 00 01
>       ** UNRECOGNIZED:  05 24 06 03 03
>       ** UNRECOGNIZED:  15 24 12 20 01 98 b0 6a 49 b0 9e 48 96 94 46 d9 9a 28 ca 4e 5d
>       ** UNRECOGNIZED:  06 24 13 00 01 20


Hmm, MDLM and OBEX descriptors.  Uhm, OK.

>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength          200
>     bNumInterfaces          5
>     bConfigurationValue     2
>     iConfiguration          2 Qualcomm Configuration

Then there is a second config, which is the interesting one.


>     bmAttributes         0xe0
>       Self Powered
>       Remote Wakeup
>     MaxPower              500mA
>     Interface Association:
>       bLength                 8
>       bDescriptorType        11
>       bFirstInterface         5
>       bInterfaceCount         2
>       bFunctionClass          2 Communications
>       bFunctionSubClass      14 
>       bFunctionProtocol       0 
>       iFunction               0 
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        5
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         2 Communications
>       bInterfaceSubClass     14 
>       bInterfaceProtocol      0 
>       iInterface              0 
>       CDC Header:
>         bcdCDC               1.10
>       UNRECOGNIZED CDC:  0c 24 1b 00 01 00 10 10 80 e0 0f 20

Yes, that's a Sierra MBIM function all right.  And the reason Linux
selects this configuration by default: The first interface has a proper
class instead of ff.

But do note the lack of a CDC Union descriptor here.  This is a well
known Sierra bug.  But it shouldn't be a problem.  We got a workaround
in the initial cdc_mbim version already.

>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass    255 Vendor Specific Subclass
>       bInterfaceProtocol    255 Vendor Specific Protocol

The rest of these interfaces look like the same serial functions as in
cfg #1.  If that works, then it is interesting.  I can configure my
MC7710 to do something similar, but all configurations mixing serial
functions and MBIM crashes the firmware.  I guess you could be luckier...

Anyway, if you want to use this device with any Linux version before
v3.8 then you just have to use cfg #1.  That's the one with a QMI
function.

And if this device has the same ZLP bug as the other Sierra MBIM devices
we've seen, then the MBIM function won't work in v3.8 to v3.12 either so
you are stuck with cfg #1 there as well.  But v3.13 should work.

Any MBIM success with this device would be interesting to register.

Note that there are also most likely firmware bugs affecting
configuration switching.  My MC7710 will auto-detect the management
protocol instead of using the USB configuration number to set it,
meaning that a QMI probe will make the MBIM function speak QMI...

And switching from MBIM mode to QMI mode "too late" (I don't have an
exact number here, but fast manual switching does work so it's probably
a few seconds) makes the firmware send 0 bytes packets as fast as it can
after receiving a DHCP request.  Which won't kill your PC anymore (but
probably will in v3.7!).  You'll still notice that the wwan interface
doesn't work and your fan starts going faster...

So use a recent kernel and use udev to set the wanted configuration on
device discovery…


Bjørn
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux