ZTE devices

Nick Hibma nick at van-laarhoven.org
Thu Jul 9 15:35:39 UTC 2009


HPS,

Not sure whether this is actually a problem, but you might want to have a 
look at the switch command for ZTE devices in the FBSD7 code base. it uses a 
ZTE specific command. The ZTE 636 device here switches properly using that 
command sequence.

On another note, that device presents alternate interfaces, as in, interface 
0 and 2 have alternates 1 and 3 resp. How does the new stack handle that? 
Can you set these alternates during attach? If so, you might want to do that 
for ZTE devices, as the alternates probably contain the additional serial 
ports.

Below the descriptor dump for those devices.

Nick

DEVICE addr 2
DEVICE descriptor:
bLength=18 bDescriptorType=device(1) bcdUSB=2.00 bDeviceClass=0 
bDeviceSubClass=0
bDeviceProtocol=0 bMaxPacketSize=64 idVendor=0x19d2 idProduct=0x0031 
bcdDevice=0
iManufacturer=2(ZTE, Incorporated) iProduct=1(ZTE CDMA Technologies MSM) 
iSerialNumber=3(1234567890ABCDEF) bNumConfigurations=1

CONFIGURATION descriptor 0:
bLength=9 bDescriptorType=config(2) wTotalLength=256 bNumInterface=4
bConfigurationValue=1 iConfiguration=0() bmAttributes=a0 bMaxPower=500 mA

INTERFACE descriptor 0:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=0 
bAlternateSetting=0
bNumEndpoints=0 bInterfaceClass=255 bInterfaceSubClass=255
bInterfaceProtocol=255 iInterface=0()

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=0 ...

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=21 ...

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=6 ...

Unknown descriptor (class 255/255):
bLength=21 bDescriptorType=36 bDescriptorSubtype=18 ...

Unknown descriptor (class 255/255):
bLength=6 bDescriptorType=36 bDescriptorSubtype=19 ...

INTERFACE descriptor 1:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=0 
bAlternateSetting=1
bNumEndpoints=2 bInterfaceClass=255 bInterfaceSubClass=255
bInterfaceProtocol=255 iInterface=0()

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=1-in
bmAttributes=bulk wMaxPacketSize=512 bInterval=32

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=1-out
bmAttributes=bulk wMaxPacketSize=512 bInterval=32

INTERFACE descriptor 2:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=1 
bAlternateSetting=0
bNumEndpoints=0 bInterfaceClass=255 bInterfaceSubClass=255
bInterfaceProtocol=255 iInterface=0()

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=0 ...

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=21 ...

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=6 ...

Unknown descriptor (class 255/255):
bLength=21 bDescriptorType=36 bDescriptorSubtype=18 ...

Unknown descriptor (class 255/255):
bLength=6 bDescriptorType=36 bDescriptorSubtype=19 ...

INTERFACE descriptor 3:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=1 
bAlternateSetting=1
bNumEndpoints=2 bInterfaceClass=255 bInterfaceSubClass=255
bInterfaceProtocol=255 iInterface=0()

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=2-in
bmAttributes=bulk wMaxPacketSize=512 bInterval=32

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=2-out
bmAttributes=bulk wMaxPacketSize=512 bInterval=32

INTERFACE descriptor 4:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=2 
bAlternateSetting=0
bNumEndpoints=2 bInterfaceClass=8 bInterfaceSubClass=6
bInterfaceProtocol=80 iInterface=0()

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=3-out
bmAttributes=bulk wMaxPacketSize=512 bInterval=0

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=3-in
bmAttributes=bulk wMaxPacketSize=512 bInterval=0

INTERFACE descriptor 5:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=3 
bAlternateSetting=0
bNumEndpoints=3 bInterfaceClass=255 bInterfaceSubClass=255
bInterfaceProtocol=255 iInterface=0()

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=0 ...

Unknown descriptor (class 255/255):
bLength=4 bDescriptorType=36 bDescriptorSubtype=2 ...

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=1 ...

Unknown descriptor (class 255/255):
bLength=5 bDescriptorType=36 bDescriptorSubtype=6 ...

Unknown descriptor (class 255/255):
bLength=21 bDescriptorType=36 bDescriptorSubtype=18 ...

Unknown descriptor (class 255/255):
bLength=6 bDescriptorType=36 bDescriptorSubtype=19 ...

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=4-in
bmAttributes=interrupt wMaxPacketSize=64 bInterval=5

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=5-in
bmAttributes=bulk wMaxPacketSize=512 bInterval=32

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=4-out
bmAttributes=bulk wMaxPacketSize=512 bInterval=32

current configuration 1

----------



More information about the freebsd-usb mailing list