Odd QMI devices - ZTE MF60

Bjørn Mork bjorn at mork.no
Mon Jul 2 11:20:58 PDT 2012


Time to start adding quirk support :-)

So I've just gone another round with device and finally made some
progress.  Sending QMI_CTL "set instance id" will enable the ethernet
interface, providing a local DHCP configured and NATed connection using
RFC1918 addresses.  Many other QMI commands are supported, including at
least one QMI_WDS command, but the normal connection management commands
will make the firmware crash.  So this device needs to be treated with
special care!

3G connection management is done using the built-in web server.  Does
not look like it can be managed by QMI.  But many QMI_NAS and QMI_DMS
commands are supported.

I have no documentation for "set instance id" except the description
from Code Aurora and sample usage snooped from the Windows driver.
Windows sets TLV 0x01 to a single 0, so that's what I'm using as well:

 01 0f 00 00 00 00 00 00  20 00 04 00 01 01 00 00


In addition to the QMI/wwan interface the device provides a QCDM
interface (#0) and an AT interface with PPP support (#1):

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 40 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=1402 Rev= 0.00
S:  Manufacturer=ZTE,Incorporated
S:  Product=ZTE WCDMA Technologies MSM
S:  SerialNumber=xxx
C:* #Ifs= 4 Cfg#= 1 Atr=c0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms


Hope this info is useful.  I am currently wondering if maybe the "set
instance id" is a missing magic command, explaining some of the firmware
crashes we see.  If so, then it should probably be included somewhere in
the connection setup.  But it sure would be nice to have some
documentation for this, as well as the "set data format" QMI_CTL
command.  We know some of that, but I've seen a couple of examples where
Windows set the format to 3.   Wonder what that means?  Get current
setting maybe?  Use firmware default?  Something else?


Bjørn


More information about the libqmi-devel mailing list