- USB and SPL related Kconfig clean-up / re-organization
This commit is contained in:
Tom Rini 2023-05-18 14:02:39 -04:00
commit 51148de673
5 changed files with 126 additions and 95 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"