This is the mail archive of the ecos-patches@sourceware.org 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 serial package


Andrew Lunn wrote:
The eCos library uses the 'usbs_enumeration_data' structure which calls out the different descriptor types, but makes no provision for class descriptors that I could find. Maybe we could add something to the structure? Like a catch-all void/byte pointer and length? Could it be done without breaking the existing code?

Do these class descriptors have a well defined structure? It would be better to define a class structure which is then added to the usbs_enumeration_data. We can define a CDL interface which is used to enable this structure and the necessary code in usbs_handle_standard_control() to return it to the host. Class drivers which need to use it then implement the CDL structure.

For this specific (communications) class there are several little "functional" descriptors, each a few bytes long. They each follow the usual descriptor convention where the first byte is the length, the second byte is the descriptor type, and the third is the descriptor subtype. After that the remaining bytes are defined by the type/subtype.

For each different one, the class code/driver/package can create a C struct to declare and define them.

The problem is that for even this one class, I count 18 different functional descriptors! The "Header Functional Descriptor", the "Call Management Functional Descriptor", the "Abstract Control Management Functional Descriptor", and so on. The class has several subclasses - for serial ports, modems, telephones, ISDN devices, etc - so the possible combinations could add up.

For this specific driver we need one or two.

So, I'm not sure the best way to proceed.


Frank


P.S. This info is all in the "USB Serial Bus Class Definitions for Communications Devices" spec which you can download from the developer's section of www.usb.org.




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