nuttx/drivers/usbdev
Adam Feuer 237c0cca09 CDC ECM Ethernet over USB High Speed for SAMA5D36-Xplained #68
Author: Alan Carvalho de Assis <acassis@gmail.com>

    Run nxstyle against .c .h files and fix it

Author: Adam Feuer <adam@starcat.io>

Summary

    Adds CDC ECM Ethernet over USB High Speed for SAMA5D36-Xplained
      (and maybe other boards) (most of the code was there already,
      but didn't work out of the box for the SAMA5D36-Xplained)
    Only SAMA5D36-Xplained has been tested so far

Impact

    None if you don't use the CDC ECM Ethernet driver
    On SAMA5D36-Xplained, this adds high-speed Internet connectivity
      over USB 2.0 High Speed. via the USB CDC ECM Gadget driver.
    It may work on other boards too.
    This also fixed full-speed (low-speed) mode for the board too.

Limitations

    Hasn't been tested on anything other than SAMA5D36-Xplained board.

TODO

    Ideally this would include a composite RNDIS device so it would
      also work seamlessly on Windows. That is for a future PR
    Ideally this would include software to help configuration via
      mDNS/DNS-SD for plug and play compatibility with Linux and macOS.
      That is for a future PR.

Detail

    Only a few lines of C driver code needed to be changed, since the
      capability was there already. The rest is config and documentation.
    Changes the SAMA5D3-Xplained board bringup to match the SAMA5D3-EK
      board bringup
    A helper script to configure Linux routing and iptables NAT is also
      provided, along with documentation on how to use it.

Testing

    Manual, on a Ubuntu Linux 19.10 system and MacOS 10.14.6 Mojave
      MacBook Pro.

How To Verify

    Follow the new CDC ECM Ethernet over USB instructions in the board
      README.txt file

Commits:

    remove non-UTF-8 chars in comment and reformat

    removed unneeded comment markers

    instructions for using the defconfigs

    removed EMAC from config

    - to prove this example only needs the CDC ECM Ethernet over USB to work

    added CDC-ECM Ethernet over USB info to README

    added U-Boot image

    added netusb helper script

    - this can configure the Linux network interface and routes
      so you can ping or access the NuttX system via TCP/IP.

    renamed defconfig dirs to be ethernet-over-usb

    - was usb-over-ethernet which is not right

    added USB DMA to defconfigs

    updated readme with autoboot and debugging info

    bringing ethernet-over-usb examples into parity

    added cdc ecm ethernet over usb with telnetd config

    added defconfig

    only use phy interrupt if netdevices is ethernet

    - because now netdevice could be CDC ECM ethernet over usb
      which has no PHY interrupt

    add bringup to Makefile

    add bringup

    app init cleanup

    init cdc ecm driver and rndis driver; some cleanup

    fixed some typos and odd characters

    usb over ethernet working over usb 2.0 hs
2020-01-10 07:13:37 -03:00
..
cdcacm_desc.c Cosmetic spacing and used UNUSEd macro 2017-11-09 12:25:13 -06:00
cdcacm.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
cdcacm.h Various cosmetic changes. 2019-09-09 14:47:47 -06:00
cdcecm.c CDC ECM Ethernet over USB High Speed for SAMA5D36-Xplained #68 2020-01-10 07:13:37 -03:00
cdcecm.h drivers/usbdev/cdcecm.c: Adds USB Device Support for CDC/ECM 2018-08-16 08:49:11 -06:00
composite_desc.c USB device: Rename usbdev_description_s to usbdev_devinfo_s to avoid any more confusion of naming with device descriptions in the future. Instances of usbdev_devinfo_s are now called devinfo vs devdesc when is a bad naming collision. 2017-07-20 09:34:48 -06:00
composite.c drivers/usbdev/cdcacm.c: This fixes a problem where the host sent a "get descriptor" message of type "standard" with a recipient of type "interface". Since the composite driver would only pass messages to the child interfaces when a message was not "standard", this message was not handled. I changed the condition so that the composite driver checks not only if this is a "standard" message but if it is also directed to the device. Otherwise, the handling is delegated to the children of the composite device. 2019-03-26 21:54:01 -06:00
composite.h Squashed commit of the following: 2017-07-24 16:46:30 -06:00
dfu.c Updates from coding standard review of PRs 753 and 754 2018-11-09 07:44:22 -06:00
Kconfig Merged in antmerlino/nuttx/rndis (pull request #980) 2019-08-10 17:52:19 +00:00
Make.defs NuttX: Add DFU Runtime driver for activating bootloader through USB command. 2018-11-09 14:11:31 +02:00
pl2303.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
rndis_std.h Remove trailing spaces at the end of lines. 2018-08-13 07:39:38 -06:00
rndis.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
usbdev_strings.c drivers/usbdev: Add support for RX flow control to the CDC/ACM driver. 2017-09-22 14:01:00 -06:00
usbdev_trace.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
usbdev_trprintf.c drivers/usbdev: Add support for RX flow control to the CDC/ACM driver. 2017-09-22 14:01:00 -06:00
usbmsc_desc.c Cosmetic spacing and used UNUSEd macro 2017-11-09 12:25:13 -06:00
usbmsc_scsi.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
usbmsc.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
usbmsc.h Fix typos, 1 in a #define, others in comments. This changes one definition: _MQ_TIMEDRECIEVE is changed to _MQ_TIMEDRECEIVE. It appears this symbol is not used anywhere. 2019-09-11 08:56:56 -06:00