Browse Source

spl: dfu: move DFU Kconfig to SPL Kconfig

The DFU Kconfig menu entries should be part of the SPL
Kconfig file. Also avoid using the top level Makefile by
moving the config dependent build artifacts to the driver/
and driver/usb/gadget/ Makfiles.

With that, DFU can be built again in SPL if
CONFIG_SPL_DFU_SUPPORT is enabled.

Fixes: 6ad6102246 ("usb:gadget: Disallow DFU in SPL for now")

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
tags/2020-06-01
Stefan Agner 4 years ago
committed by Tom Rini
parent
commit
5991703e88
6 changed files with 35 additions and 33 deletions
  1. +0
    -27
      Kconfig
  2. +26
    -0
      common/spl/Kconfig
  3. +3
    -0
      drivers/Makefile
  4. +6
    -2
      drivers/usb/gadget/Makefile
  5. +0
    -1
      include/configs/dra7xx_evm.h
  6. +0
    -3
      scripts/Makefile.spl

+ 0
- 27
Kconfig View File

@@ -292,33 +292,6 @@ config FIT_IMAGE_POST_PROCESS
injected into the FIT creation (i.e. the blobs would have been pre-
processed before being added to the FIT image).

config SPL_DFU_SUPPORT
bool "Enable SPL with DFU to load binaries to memory device"
depends on USB
help
Currently the SPL does not have capability to load the
binaries or boot images to boot devices like ram,eMMC,SPI,etc.
This feature enables the DFU (Device Firmware Upgarde) 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 will be useful to flash the binaries to factory
or bare-metal boards using USB interface.

choice
bool "DFU device selection"
depends on SPL_DFU_SUPPORT

config SPL_DFU_RAM
bool "RAM device"
depends on SPL_DFU_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 SYS_CLK_FREQ
depends on ARC || ARCH_SUNXI
int "CPU clock frequency"


+ 26
- 0
common/spl/Kconfig View File

@@ -524,6 +524,32 @@ config SPL_USB_SUPPORT
config options. This enables loading from USB using a configured
device.

config SPL_DFU_SUPPORT
bool "Support DFU (Device Firmware Upgarde)"
depends on SPL
select SPL_HASH_SUPPORT
help
This feature enables the DFU (Device Firmware Upgarde) 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_SUPPORT

config SPL_DFU_RAM
bool "RAM device"
depends on SPL_DFU_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_WATCHDOG_SUPPORT
bool "Support watchdog drivers"
depends on SPL


+ 3
- 0
drivers/Makefile View File

@@ -34,6 +34,9 @@ obj-$(CONFIG_SPL_ETH_SUPPORT) += net/phy/
obj-$(CONFIG_SPL_USBETH_SUPPORT) += net/phy/
obj-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += usb/musb-new/
obj-$(CONFIG_SPL_USBETH_SUPPORT) += usb/gadget/
obj-$(CONFIG_SPL_DFU_SUPPORT) += usb/gadget/
obj-$(CONFIG_SPL_DFU_SUPPORT) += usb/gadget/udc/
obj-$(CONFIG_SPL_DFU_SUPPORT) += dfu/
obj-$(CONFIG_SPL_WATCHDOG_SUPPORT) += watchdog/
obj-$(CONFIG_SPL_USB_HOST_SUPPORT) += usb/host/
obj-$(CONFIG_OMAP_USB_PHY) += usb/phy/


+ 6
- 2
drivers/usb/gadget/Makefile View File

@@ -8,6 +8,10 @@
obj-$(CONFIG_USB_GADGET) += epautoconf.o config.o usbstring.o
obj-$(CONFIG_USB_ETHER) += epautoconf.o config.o usbstring.o

ifdef CONFIG_SPL_BUILD
obj-$(CONFIG_SPL_DFU_SUPPORT) += f_dfu.o
endif

# new USB gadget layer dependencies
ifdef CONFIG_USB_GADGET
obj-$(CONFIG_USB_GADGET_AT91) += at91_udc.o
@@ -18,13 +22,13 @@ obj-$(CONFIG_USB_GADGET_DWC2_OTG_PHY) += dwc2_udc_otg_phy.o
obj-$(CONFIG_USB_GADGET_FOTG210) += fotg210.o
obj-$(CONFIG_CI_UDC) += ci_udc.o
obj-$(CONFIG_USB_GADGET_DOWNLOAD) += g_dnl.o
obj-$(CONFIG_USB_FUNCTION_THOR) += f_thor.o
ifndef CONFIG_SPL_BUILD
obj-$(CONFIG_USB_FUNCTION_THOR) += f_thor.o
obj-$(CONFIG_USB_FUNCTION_DFU) += f_dfu.o
endif
obj-$(CONFIG_USB_FUNCTION_MASS_STORAGE) += f_mass_storage.o
obj-$(CONFIG_USB_FUNCTION_FASTBOOT) += f_fastboot.o
endif
endif
ifdef CONFIG_USB_ETHER
obj-y += ether.o
obj-$(CONFIG_USB_ETH_RNDIS) += rndis.o


+ 0
- 1
include/configs/dra7xx_evm.h View File

@@ -134,7 +134,6 @@
#undef CONFIG_CMD_BOOTD
#ifdef CONFIG_SPL_DFU_SUPPORT
#define CONFIG_SPL_LOAD_FIT_ADDRESS 0x80200000
#define CONFIG_SPL_HASH_SUPPORT
#define DFU_ALT_INFO_RAM \
"dfu_alt_info_ram=" \
"kernel ram 0x80200000 0x4000000;" \


+ 0
- 3
scripts/Makefile.spl View File

@@ -66,9 +66,6 @@ endif

libs-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/
libs-y += drivers/
libs-$(CONFIG_SPL_DFU_SUPPORT) += drivers/dfu/
libs-$(CONFIG_SPL_DFU_SUPPORT) += drivers/usb/gadget/
libs-$(CONFIG_SPL_DFU_SUPPORT) += drivers/usb/gadget/udc/
libs-$(CONFIG_SPL_DFU_SUPPORT) += drivers/usb/dwc3/
libs-y += dts/
libs-y += fs/