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: Bart Veer <bartv at ecoscentric dot com>
- To: osv at javad dot ru
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Wed, 27 Nov 2002 12:15:07 +0000 (GMT)
- Subject: Re: [ECOS] USB version is 1.10?!
- References: <877kf26lt1.fsf@osv.javad.ru>
>>>>> "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