diff mbox series

[4/4] usb: gadget: Add and use matching SPL USB ethernet gadget Kconfig symbols

Message ID 20230506144240.10042-4-marex@denx.de
State Accepted
Commit da83ada02a2684f743fadaf3b915e92f83d74628
Delegated to: Marek Vasut
Headers show
Series [1/4] usb: Move SPL_USB_HOST Kconfig symbol to drivers/usb/ | expand

Commit Message

Marek Vasut May 6, 2023, 2:42 p.m. UTC
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 <marex@denx.de>
---
Cc: Andrew Davis <afd@ti.com>
Cc: Chris Packham <judge.packham@gmail.com>
Cc: Jim Liu <jim.t90615@gmail.com>
Cc: Lukasz Majewski <lukma@denx.de>
Cc: Samuel Holland <samuel@sholland.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Stefan Roese <sr@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Cc: Weijie Gao <weijie.gao@mediatek.com>
---
 drivers/usb/gadget/Kconfig  | 24 ++++++++++++++++++++++++
 drivers/usb/gadget/Makefile |  3 +--
 2 files changed, 25 insertions(+), 2 deletions(-)

Comments

Tom Rini May 16, 2023, 8:21 p.m. UTC | #1
On Sat, May 06, 2023 at 04:42:40PM +0200, Marek Vasut wrote:

> 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 <marex@denx.de>

Reviewed-by: Tom Rini <trini@konsulko.com>
diff mbox series

Patch

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