aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2023-05-18 14:02:39 -0400
committerTom Rini <trini@konsulko.com>2023-05-18 14:02:39 -0400
commit51148de67366e73c6a19a8b43eb065e57d08a606 (patch)
tree354c868a7e1ad26939c26e29ad0e998fe569e033
parentf0e201433a2f6e6776fe7aaa6a89ca3df21a4435 (diff)
parentda83ada02a2684f743fadaf3b915e92f83d74628 (diff)
downloadu-boot-51148de67366e73c6a19a8b43eb065e57d08a606.zip
u-boot-51148de67366e73c6a19a8b43eb065e57d08a606.tar.gz
u-boot-51148de67366e73c6a19a8b43eb065e57d08a606.tar.bz2
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-usb into next
- USB and SPL related Kconfig clean-up / re-organization
-rw-r--r--common/spl/Kconfig90
-rw-r--r--drivers/usb/Kconfig22
-rw-r--r--drivers/usb/gadget/Kconfig88
-rw-r--r--drivers/usb/gadget/Makefile8
-rw-r--r--drivers/usb/host/Kconfig13
5 files changed, 126 insertions, 95 deletions
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 2c042ad..6774ba5 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -1345,96 +1345,6 @@ config SPL_THERMAL
automatic power-off when the temperature gets too high or low. Other
devices may be discrete but connected on a suitable bus.
-config SPL_USB_HOST
- bool "Support USB host drivers"
- help
- Enable access to USB (Universal Serial Bus) host devices so that
- SPL can load U-Boot from a connected USB peripheral, such as a USB
- flash stick. While USB takes a little longer to start up than most
- buses, it is very flexible since many different types of storage
- device can be attached. This option enables the drivers in
- drivers/usb/host as part of an SPL build.
-
-config SPL_USB_STORAGE
- bool "Support loading from USB"
- depends on SPL_USB_HOST
- help
- Enable support for USB devices in SPL. This allows use of USB
- devices such as hard drives and flash drivers for loading U-Boot.
- The actual drivers are enabled separately using the normal U-Boot
- config options. This enables loading from USB using a configured
- device.
-
-config SYS_USB_FAT_BOOT_PARTITION
- int "Partition on USB to use to load U-Boot from"
- depends on SPL_USB_STORAGE
- default 1
- help
- Partition on the USB storage device to load U-Boot from
-
-config SPL_USB_GADGET
- bool "Suppport USB Gadget drivers"
- help
- Enable USB Gadget API which allows to enable USB device functions
- in SPL.
-
-if SPL_USB_GADGET
-
-config SPL_USB_ETHER
- bool "Support USB Ethernet drivers"
- depends on SPL_NET
- help
- Enable access to the USB network subsystem and associated
- drivers in SPL. This permits SPL to load U-Boot over a
- USB-connected Ethernet link (such as a USB Ethernet dongle) rather
- than from an onboard peripheral. Environment support is required
- since the network stack uses a number of environment variables.
- See also SPL_NET and SPL_ETH.
-
-config SPL_DFU
- bool "Support DFU (Device Firmware Upgrade)"
- select SPL_HASH
- select SPL_DFU_NO_RESET
- depends on SPL_RAM_SUPPORT
- help
- This feature enables the DFU (Device Firmware Upgrade) in SPL with
- RAM memory device support. The ROM code will load and execute
- the SPL built with dfu. The user can load binaries (u-boot/kernel) to
- selected device partition from host-pc using dfu-utils.
- This feature is useful to flash the binaries to factory or bare-metal
- boards using USB interface.
-
-choice
- bool "DFU device selection"
- depends on SPL_DFU
-
-config SPL_DFU_RAM
- bool "RAM device"
- depends on SPL_DFU && SPL_RAM_SUPPORT
- help
- select RAM/DDR memory device for loading binary images
- (u-boot/kernel) to the selected device partition using
- DFU and execute the u-boot/kernel from RAM.
-
-endchoice
-
-config SPL_USB_SDP_SUPPORT
- bool "Support SDP (Serial Download Protocol)"
- depends on SPL_SERIAL
- help
- Enable Serial Download Protocol (SDP) device support in SPL. This
- allows to download images into memory and execute (jump to) them
- using the same protocol as implemented by the i.MX family's boot ROM.
-
-config SPL_SDP_USB_DEV
- int "SDP USB controller index"
- default 0
- depends on SPL_USB_SDP_SUPPORT
- help
- Some boards have USB controller other than 0. Define this option
- so it can be used in compiled environment.
-endif
-
config SPL_WATCHDOG
bool "Support watchdog drivers"
imply SPL_WDT if !HW_WATCHDOG
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 94fb32d..a972d87 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -126,6 +126,28 @@ config USB_HUB_DEBOUNCE_TIMEOUT
value = 1s because some usb device needs around 1.5s to be initialized
and a 2s value should solve detection issue on problematic USB keys.
+if SPL_USB_HOST
+
+comment "USB peripherals in SPL"
+
+config SPL_USB_STORAGE
+ bool "Support loading from USB"
+ help
+ Enable support for USB devices in SPL. This allows use of USB
+ devices such as hard drives and flash drivers for loading U-Boot.
+ The actual drivers are enabled separately using the normal U-Boot
+ config options. This enables loading from USB using a configured
+ device.
+
+config SYS_USB_FAT_BOOT_PARTITION
+ int "Partition on USB to use to load U-Boot from"
+ depends on SPL_USB_STORAGE
+ default 1
+ help
+ Partition on the USB storage device to load U-Boot from.
+
+endif
+
if USB_KEYBOARD
config USB_KEYBOARD_FN_KEYS
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 941f97c..1cfe602 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -36,6 +36,12 @@ menuconfig USB_GADGET
peripheral/device side bus controller, and a "gadget driver" for
your peripheral protocol.
+config SPL_USB_GADGET
+ bool "USB Gadget Support in SPL"
+ help
+ Enable USB Gadget API which allows to enable USB device functions
+ in SPL.
+
if USB_GADGET
config USB_GADGET_MANUFACTURER
@@ -265,3 +271,85 @@ config USBNET_HOST_ADDR
endif # USB_ETHER
endif # USB_GADGET
+
+if SPL_USB_GADGET
+
+config SPL_USB_ETHER
+ bool "Support USB Ethernet drivers in SPL"
+ depends on SPL_NET
+ help
+ Enable access to the USB network subsystem and associated
+ drivers in SPL. This permits SPL to load U-Boot over a
+ USB-connected Ethernet link (such as a USB Ethernet dongle) rather
+ than from an onboard peripheral. Environment support is required
+ 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
+ select SPL_DFU_NO_RESET
+ depends on SPL_RAM_SUPPORT
+ help
+ This feature enables the DFU (Device Firmware Upgrade) in SPL with
+ RAM memory device support. The ROM code will load and execute
+ the SPL built with dfu. The user can load binaries (u-boot/kernel) to
+ selected device partition from host-pc using dfu-utils.
+ This feature is useful to flash the binaries to factory or bare-metal
+ boards using USB interface.
+
+choice
+ bool "DFU device selection in SPL"
+ depends on SPL_DFU
+
+config SPL_DFU_RAM
+ bool "RAM device"
+ depends on SPL_DFU && SPL_RAM_SUPPORT
+ help
+ select RAM/DDR memory device for loading binary images
+ (u-boot/kernel) to the selected device partition using
+ DFU and execute the u-boot/kernel from RAM.
+
+endchoice
+
+config SPL_USB_SDP_SUPPORT
+ bool "Support SDP (Serial Download Protocol) in SPL"
+ depends on SPL_SERIAL
+ help
+ Enable Serial Download Protocol (SDP) device support in SPL. This
+ allows to download images into memory and execute (jump to) them
+ using the same protocol as implemented by the i.MX family's boot ROM.
+
+config SPL_SDP_USB_DEV
+ int "SDP USB controller index in SPL"
+ default 0
+ depends on SPL_USB_SDP_SUPPORT
+ help
+ Some boards have USB controller other than 0. Define this option
+ so it can be used in compiled environment.
+
+endif # SPL_USB_GADGET
diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
index 6cfe0f3..6abcce0 100644
--- a/drivers/usb/gadget/Makefile
+++ b/drivers/usb/gadget/Makefile
@@ -3,8 +3,9 @@
# (C) Copyright 2000-2007
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-obj-$(CONFIG_USB_GADGET) += epautoconf.o config.o usbstring.o
-obj-$(CONFIG_USB_ETHER) += epautoconf.o config.o usbstring.o
+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,9 +35,6 @@ endif
obj-$(CONFIG_CI_UDC) += ci_udc.o
-obj-$(CONFIG_USB_ETHER) += ether.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
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 6213b3c..1a883ba 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -6,6 +6,19 @@ comment "USB Host Controller Drivers"
config USB_HOST
bool
select DM_USB
+ help
+ Enable access to USB (Universal Serial Bus) host devices so that
+ SPL can load U-Boot from a connected USB peripheral, such as a USB
+ flash stick. While USB takes a little longer to start up than most
+ buses, it is very flexible since many different types of storage
+ device can be attached.
+
+config SPL_USB_HOST
+ bool "Support USB host drivers"
+ depends on SPL
+ help
+ For detailed help see USB_HOST Kconfig symbol. This option enables
+ the drivers in drivers/usb/host as part of an SPL build.
config USB_XHCI_HCD
bool "xHCI HCD (USB 3.0) support"