This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: USB version is 1.10?!
- From: Jay Foster <jay at systech dot com>
- To: 'Bart Veer' <bartv at ecoscentric dot com>, osv at javad dot ru
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Wed, 27 Nov 2002 08:32:15 -0800
- Subject: RE: [ECOS] USB version is 1.10?!
Looks to me like the definitions are correct. 0x0110 IS version 1.1.
Version 1.1 and 1.10 are effectively the same. 0x0101 would be version
1.01.
Jay
-----Original Message-----
From: Bart Veer [mailto:bartv@ecoscentric.com]
Sent: Wednesday, November 27, 2002 4:15 AM
To: osv@javad.ru
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] USB version is 1.10?!
>>>>> "Sergei" == Sergei Organov <osv@javad.ru> writes:
Sergei> In the file 'packages/io/usb/common/current/include/usb.h'
Sergei> one reads:
Sergei> #define USB_DEVICE_DESCRIPTOR_USB11_LO 0x10
Sergei> #define USB_DEVICE_DESCRIPTOR_USB11_HI 0x01
Sergei> However, in the "Universal Serial Bus Specification
Sergei> Revision 1.1" on p.197 one can read:
Sergei> Field Size Value Description
Sergei> bcdUSB 2 BCD USB Specification Release Number in
Binary-Coded
Sergei> Decimal (i.e., 2.10 is 210H). This field
identifies
Sergei> the release of the USB Specification
with which the
Sergei> device and its descriptors are
compliant.
Sergei> Please note the example: 0x210 is 2.10. Therefore, eCos
Sergei> definition 0x110 means USB Specification Release Number
Sergei> 1.10? Shouldn't it be 0x101 instead?
I agree that your interpretation of the specification appears the
obvious one. However every 1.1 device I have seen (various hubs,
printer, scanner, mp3 player, ...) uses 0x0110 for the release number,
not 0x0101. For example, /usr/src/linux-<version>/drivers/usb/hcd.c
contains
/* usb 1.1 root hub device descriptor */
static const u8 usb11_rh_dev_descriptor [18] = {
0x12, /* __u8 bLength; */
0x01, /* __u8 bDescriptorType; Device */
0x10, 0x01, /* __u16 bcdUSB; v1.1 */
...
So 0x0110 appears de facto correct and very unlikely to cause
problems, even if the specification implies otherwise. In practice I
doubt that there is any host-side code that cares about the
differences between 1.0 and 1.1, so the LO byte will be ignored. If
there had been revisions 1.2, 1.3, -> 1.10 rather than a major upgrade
to 2.0 then the situation would be different. Hopefully the next
revision will be called 2.01 rather than 2.1, to avoid further
confusion.
Bart
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss