Define SPL_USB_ETH_RNDIS symbol to make it possible to select USB gadget ethernet support in SPL and U-Boot separately in Kconfig . Make use of the new symbols in gadget Makefile and move the rndis.o just below the now merged USB_ETHER symbol in Makefile.
Signed-off-by: Marek Vasut <ma...@denx.de> --- Cc: Andrew Davis <a...@ti.com> Cc: Chris Packham <judge.pack...@gmail.com> Cc: Jim Liu <jim.t90...@gmail.com> Cc: Lukasz Majewski <lu...@denx.de> Cc: Samuel Holland <sam...@sholland.org> Cc: Simon Glass <s...@chromium.org> Cc: Stefan Roese <s...@denx.de> Cc: Tom Rini <tr...@konsulko.com> Cc: Weijie Gao <weijie....@mediatek.com> --- drivers/usb/gadget/Kconfig | 24 ++++++++++++++++++++++++ drivers/usb/gadget/Makefile | 3 +-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig index 6f85089a9bf..1cfe6022842 100644 --- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig @@ -285,6 +285,30 @@ config SPL_USB_ETHER since the network stack uses a number of environment variables. See also SPL_NET and SPL_ETH. +if SPL_USB_ETHER + +choice + prompt "USB Ethernet Gadget Model in SPL" + default SPL_USB_ETH_RNDIS + help + There is several models (protocols) to implement Ethernet over USB + devices. The main ones are Microsoft's RNDIS and USB's CDC-Ethernet + (also called CDC-ECM). RNDIS is obviously compatible with Windows, + while CDC-ECM is not. Most other operating systems support both, so + if inter-operability is a concern, RNDIS is to be preferred. + +config SPL_USB_ETH_RNDIS + bool "RNDIS Protocol" + help + The RNDIS (Remote Network Driver Interface Specification) is a + Microsoft proprietary protocol to create an Ethernet device over USB. + Windows obviously supports it, as well as all the major operating + systems, so it's the best option for compatibility. + +endchoice + +endif # SPL_USB_ETHER + config SPL_DFU bool "Support DFU (Device Firmware Upgrade) in SPL" select SPL_HASH diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile index a9edeb9f396..6abcce0d9c7 100644 --- a/drivers/usb/gadget/Makefile +++ b/drivers/usb/gadget/Makefile @@ -5,6 +5,7 @@ obj-$(CONFIG_$(SPL_TPL_)USB_GADGET) += epautoconf.o config.o usbstring.o obj-$(CONFIG_$(SPL_TPL_)USB_ETHER) += epautoconf.o config.o usbstring.o ether.o +obj-$(CONFIG_$(SPL_TPL_)USB_ETH_RNDIS) += rndis.o ifdef CONFIG_SPL_BUILD obj-$(CONFIG_SPL_USB_GADGET) += g_dnl.o @@ -34,8 +35,6 @@ endif obj-$(CONFIG_CI_UDC) += ci_udc.o -obj-$(CONFIG_USB_ETH_RNDIS) += rndis.o - # Devices not related to the new gadget layer depend on CONFIG_USB_DEVICE # This is really only N900 and USBTTY now. obj-$(CONFIG_USB_DEVICE) += core.o ep0.o -- 2.39.2