This series adds support for CDC ECM and CDC NCM devices. U-Boot currently only has support for automatic binding of the first device configuration for devices, so this implementaion works by adding bindings for VID/PID pairs and letting the drivers try to change active configuration during probe.
The driver implementations was created based of the CDC ECM 1.2 and CDC NCM 1.1 specifications and was tested on a few different USB Ethernet adapters using ASIX or Realtek IC. Patch 1-3 import headers and macros from Linux kernel. Patch 4 export a helper that drivers can use to select a different device configuration. Patch 5-6 adds drivers for CDC ECM and CDC NCM. Patch 7-8 allows ASIX and Realtek adapters to use CDC ECM and CDC NCM. Jonas Karlman (8): usb: Import USB_DEVICE_VER() macro from Linux usb: Import USB_INTERFACE_INFO() macro from Linux usb: Sync linux/usb/cdc.h from Linux usb: Extract usb_select_configuration_no() helper usb: eth: Add CDC ECM support usb: eth: Add CDC NCM driver usb: eth: Bind ASIX AX88179A/AX88772D/AX88279 to CDC ECM/NCM driver usb: eth: Bind Realtek RTL815x to CDC ECM driver common/usb.c | 59 +++-- doc/README.usb | 2 + drivers/usb/eth/Kconfig | 18 ++ drivers/usb/eth/Makefile | 2 + drivers/usb/eth/asix88179.c | 5 + drivers/usb/eth/cdc_common.c | 265 +++++++++++++++++++ drivers/usb/eth/cdc_common.h | 35 +++ drivers/usb/eth/cdc_ecm.c | 292 +++++++++++++++++++++ drivers/usb/eth/cdc_ncm.c | 483 +++++++++++++++++++++++++++++++++++ include/linux/usb/cdc.h | 233 ++++++++++++++++- include/usb.h | 48 ++++ 11 files changed, 1417 insertions(+), 25 deletions(-) create mode 100644 drivers/usb/eth/cdc_common.c create mode 100644 drivers/usb/eth/cdc_common.h create mode 100644 drivers/usb/eth/cdc_ecm.c create mode 100644 drivers/usb/eth/cdc_ncm.c -- 2.54.0

