On Tue, 29 Oct 2002, Wessler, Siegfried wrote:

| Hello,
|
| some questions regarding the communication while probing.
|
| I am using Linux kernel 2.4.18. I write some device drivers for USB devices
| (embedded system, not host pc!). I connect this USB device to a host pc
| running Linux kernel 2.4.18 either. I use a tiny driver evolved from Greg's
| USB skeleton driver to see the descriptors values and to get some data
| exchange.

My questions thus far:
. can you post the host driver source code so that we can see it?
. what processor chip is in the target usb device?  is it little or
  big endian?

| 1. -----------
| GetDescriptor-Request Stringdescriptor:
| I noticed that the indices for string descriptors seem to be static in
| value.

Where?  linux-usb makes no such assumptions that we know of.

| Example: In the devices driver did some defines like:
| #define STR_INTERFACE_DESCRIPTOR 0x05
| #define STR_SERIALNUM_DESCRIPTOR 0x03
|
| In the desriptor tables these numbers are set correct, still when the Linux
| host does enumeration and does a request for the string of the serialnumber
| the interface string is is written into dev->SerialNumber on the host side.
huh?

| If I change the values for these defines, this assignment is done correctly.
| Shouldn't the indices be of any byte wide value? Shouldn't the host pc
| "scan" these indices, as they are sent e.g. in the configuration descriptor?
or the device descriptor?

| Why does it seem, that I have to use a certain numbering plan for indices?
You shouldn't have to.  I've seen lots of other devices with a
large variety of string indexes.

| 2. ------------
| I adopted to:
| #define STR_INTERFACE_DESCRIPTOR 0x03
| #define STR_SERIALNUM_DESCRIPTOR 0x05
|
| Now I do enumeration again. When it first comes to the request of
| GetDescriptor Serialnumber, .wValue is set correctly to 0x0305, accessing
| device number 3, indexing string number 5.
  descriptor type 3, string index 5.

| But right after that I get another setup packet GetDescriptor Serialnumber
| with .wValue = 0x03F5.
| Since on the USB devices side I interpret low byte of .wValue as string
| index, this leads to an unknown index.
| As far as I read USB spec. the whole LSB contains the string index, not just
| the very lowest nibble, or am I wrong? So were does the "F" nibble comes
| from?
You are correct.  I don't know where the hex f comes from.
What host controller driver are you using?
Are there any usb bus or device errors (seen by the analyzer) around
this time?

| Connecting the same device to a Windows 2000 system and monitoring data flow
| with an USB analyzer I don't see both of the effect mentioned above.
|
|
| BTW: Is there any developer out there, using Philips ISP1181? I got one tiny
| question someone else might be able to answer...
|
| Thank You for any reply.
|
| Siegfried.
| _______________________________________________

When you insert this device into the USB bus, you should see some
messages from the USB driver subsystem, like these.  What do they say
on your system with your <?> device?

hub.c: USB new device connect on bus1/1, assigned device number 2
usb.c: kmalloc IF f6858240, numif 1
usb.c: skipped 1 class/vendor specific interface descriptors
usb.c: new device strings: Mfr=1, Product=2, SerialNumber=0
usb.c: USB device number 2 default language ID 0x409

and then a larger descriptor dump if there is no host device driver
for this device or if hotplug isn't enabled.  Please give the
contents of that larger descriptor dump also.
Also, is this a USB 2 device?  what descriptors types does it have?

-- 
~Randy



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to