This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]