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