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]

Re: Q: USB & SA11x0 target & W2K host ethernet


>>>>> "Thilo" == Jeremias, Thilo (RSA, Brisbane) <tjeremias@rsasecurity.com.au> writes:

    Thilo> g'day, out there!
    Thilo> Is there anyone who could tell me if / where I can find a
    Thilo> USB COM DEV compliant Ethernet driver for W2K ? As far as I
    Thilo> understand that subject, this is part of linux, but I am
    Thilo> not sure whether MS support that device.

If you specifically want something that works with the SA11x0, you
need to be aware that there are certain issues with the USB
implementation in that device. From the relevant documentation at
http://sources.redhat.com/ecos/docs-latest/usb/sa11x0/devs-usb-sa11x0.html:

"There is one specific problem inherent in the UDC design of which
 application developers should be aware: the hardware cannot fully
 implement the USB standard for bulk transfers. A bulk transfer
 typically consists of some number of full-size 64-byte packets and is
 terminated by a packet less than the full size. If the amount of data
 transferred is an exact multiple of 64 bytes then this requires a
 terminating packet of 0 bytes of data (plus header and checksum). The
 SA11x0 USB hardware does not allow a 0-byte packet to be transmitted,
 so the device driver is forced to substitute a 1-byte packet and the
 host receives more data than expected. Protocol support is needed so
 that the appropriate host-side device driver can allow buffer space
 for the extra byte, detect when it gets sent, and discard it.
 Consequently certain standard USB class protocols cannot be
 implemented using the SA11x0, and therefore custom host-side device
 drivers will generally have to be provided, rather than re-using
 existing ones that understand the standard protocol."

Therefore even if MS provided a USB-ethernet device driver that
complied with the standard for USB communication devices (I do not
know one way or the other), that driver could not be used for a USB
peripheral based on an sa11x0. For eCos we worked around this by
defining an alternative protocol, see
http://sources.redhat.com/ecos/docs-latest/usb/eth/slave/io-usb-slave-eth.html
and specifically
http://sources.redhat.com/ecos/docs-latest/usb/eth/slave/usbseth-protocol.html

Bart


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