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> Jay Foster <jay@systech.com> writes:
    >> Looks to me like the definitions are correct.  0x0110 IS version 1.1.
    >> Version 1.1 and 1.10 are effectively the same.

    Sergei> Really? And if the 1.x specification will ever reach it's 10'th revision
    Sergei> (that is very unlikely), what would be the hex representation for it then?

    >> 0x0101 would be version 1.01.

Or even 1.0.1. Version strings do not follow normal arithmetic rules.

    Sergei> Yes. But IMHO 1.01 is much closer to 1.1 than 1.10 to 1.1.
    Sergei> I mean that I read 1.1 as "major version 1 minor version
    Sergei> 1", 1.01 as "major version 1 minor version 1", and 1.10 as
    Sergei> "major version 1 minor version 10".

    Sergei> I must say that Bart's explanation does make sense to me.
    Sergei> Besides, we are in the M$ world, who cares about
    Sergei> specifications there ;-) Anyway, if I were the person who
    Sergei> makes decisions about eCos, I'd put the value that
    Sergei> specification requires no matter what others do as it
    Sergei> won't break anything anyway as Bart has correctly
    Sergei> mentioned in his reply.

I am afraid the #define is not going to change, i.e. the default will
remain 0x0110. The eCos-based USB device has to interoperate with
arbitrary code on the host-side. With most, possibly all, host-side
code the exact version string will not matter. If there is any
host-side code which does care about the version, it is safer to be
bug-compatible with everybody else rather than attempt strict
compliance with part of a specification that everybody ignores.

Note that this #define is not used by any eCos code (other than a
testcase). Instead it is the responsibility of application code to
provide the USB enumeration data, including this version. If an
application developer wants to go for strict compliance then the
enumeration data can contain 0x01 rather than
USB_DEVICE_DESCRIPTOR_USB11_LO.

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]