Mixture of interfaces (vendor specific, class interfaces) problems

Janusz Dziedzic Janusz.Dziedzic at BenQ.com
Wed Dec 6 05:19:12 PST 2006


Hello, 

My release: 

bmw-ws047# uname -a 
FreeBSD bmw-ws047.bqeu.corp.com 6.1-RC FreeBSD 6.1-RC #0: Thu Jul 20
16:20:27 CEST 2006
root at bmw-ws047.bqeu.corp.com:/usr/src/sys/i386/compile/CHAOS i386 


FIRST CONFIGURATION (two vendor specific interfaces - works fine): 

dmesg: 
Dec 6 13:03:55 bmw-ws047 kernel: ugen0: detached 
Dec 6 13:04:02 bmw-ws047 kernel: ugen0: BenQ Siemens BenQ Siemens Mobile
Phone, rev 1.10/0.00, addr 2 

usb_dump: 
bmw-ws047# ./usb_dump -D -f /dev/ugen0 
DEVICE descriptor: 
bLength=18 bDescriptorType=1 bcdUSB=1.10 bDeviceClass=0
bDeviceSubClass=0 
bDeviceProtocol=0 bMaxPacketSize=64 
idVendor=0x04a5 idProduct=0x4013 bcdDevice=0 
iManufacturer=1 iProduct=2 iSerialNumber=0 bNumConfigurations=1 

Current configuration is number 1 

CONFIGURATION descriptor index 0: 
bLength=9 bDescriptorType=2 wTotalLength=62 bNumInterface=2 
bConfigurationValue=1 iConfiguration=0 bmAttributes=a0 bMaxPower=500 mA 

INTERFACE descriptor index 0, alt index 0: 
bLength=9 bDescriptorType=4 bInterfaceNumber=0 bAlternateSetting=0 
bNumEndpoints=3 bInterfaceClass=255 bInterfaceSubClass=255 
bInterfaceProtocol=255 iInterface=3 

ENDPOINT descriptor index 0: 
bLength=7 bDescriptorType=5 bEndpointAddress=1-in 
bmAttributes=3 wMaxPacketSize=16 bInterval=128 

ENDPOINT descriptor index 1: 
bLength=7 bDescriptorType=5 bEndpointAddress=2-in 
bmAttributes=2 wMaxPacketSize=64 bInterval=0 

ENDPOINT descriptor index 2: 
bLength=7 bDescriptorType=5 bEndpointAddress=2-out 
bmAttributes=2 wMaxPacketSize=64 bInterval=0 

INTERFACE descriptor index 1, alt index 0: 
bLength=9 bDescriptorType=4 bInterfaceNumber=1 bAlternateSetting=0 
bNumEndpoints=2 bInterfaceClass=255 bInterfaceSubClass=255 
bInterfaceProtocol=255 iInterface=3 

ENDPOINT descriptor index 0: 
bLength=7 bDescriptorType=5 bEndpointAddress=4-in 
bmAttributes=2 wMaxPacketSize=64 bInterval=0 

ENDPOINT descriptor index 1: 
bLength=7 bDescriptorType=5 bEndpointAddress=4-out 
bmAttributes=2 wMaxPacketSize=64 bInterval=0 


OK, in this case I can communicate with my vendor specyfic devices via
/dev/ugen0.x. Is there chance to use ucom driver with vendor 
specific interfaces? How can I do that? 



SECOND CONFIGURATION (the same two vendor specific interfaces and third
mass storage interface): 

dmesg: 
Dec 6 13:07:58 bmw-ws047 kernel: umass0: BenQ Siemens BenQ Siemens USB
MMC Storage, rev 1.10/0.00, addr 2 
Dec 6 13:07:58 bmw-ws047 kernel: umass0: SCSI over Bulk-Only; quirks =
0x0000 
Dec 6 13:07:58 bmw-ws047 kernel: umass0: Get Max Lun not supported
(STALLED) 
Dec 6 13:07:58 bmw-ws047 kernel: umass0:0:0:-1: Attached to scbus0 
Dec 6 13:07:58 bmw-ws047 kernel: da0 at umass-sim0 bus 0 target 0 lun 0 
Dec 6 13:07:58 bmw-ws047 kernel: da0: <BenQ MMC Storage 2.31> Removable
Direct Access SCSI-2 device 
Dec 6 13:07:58 bmw-ws047 kernel: da0: 1.000MB/s transfers 
Dec 6 13:07:58 bmw-ws047 kernel: da0: 968MB (1984001 512 byte sectors:
64H 32S/T 968C) 


I can mount device da0 and works fine, but where are my two vendor
specific interfaces? 



Under Linux (2.6), windows (nt, xp etc) everything works fine. In second
configuration I have two 
vendor specific interfaces (I can decide which driver I want to use with
them) and third interface 
(class specific) mass storage. 


So, can fsbd load different drivers for each interface? 
How load drivers for vendor specific interfaces? (under Linux I can
simply add module parameters and works fine, egg. insmod usbserial
vendor=0x... product=0x...). 

Best Regards 
Janusz  
 
 


More information about the freebsd-usb mailing list