Hi Stefan, > From: Stefan Agner <stefan.ag...@toradex.com> > > 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: 6ad6102246d8 ("usb:gadget: Disallow DFU in SPL for now") > > Signed-off-by: Stefan Agner <stefan.ag...@toradex.com> > Reviewed-by: Simon Glass <s...@chromium.org>
Acked-by: Lukasz Majewski <l.majew...@samsung.com> > > --- > Tom, I checked size for am335x_evm_usbspl_defconfig, it stays > fine with this patch. > > Changes in v3: None > Changes in v2: > - Leave DWC3 config in top level SPL Makefile (as U-Boot does) > > Kconfig | 27 --------------------------- > common/spl/Kconfig | 26 ++++++++++++++++++++++++++ > drivers/Makefile | 3 +++ > drivers/usb/gadget/Makefile | 8 ++++++-- > include/configs/dra7xx_evm.h | 1 - > scripts/Makefile.spl | 3 --- > 6 files changed, 35 insertions(+), 33 deletions(-) > > diff --git a/Kconfig b/Kconfig > index 1263d0b..a759e4d 100644 > --- a/Kconfig > +++ b/Kconfig > @@ -291,33 +291,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" > diff --git a/common/spl/Kconfig b/common/spl/Kconfig > index bb99f1f..54bcba3 100644 > --- a/common/spl/Kconfig > +++ b/common/spl/Kconfig > @@ -497,6 +497,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 > diff --git a/drivers/Makefile b/drivers/Makefile > index 761d0b3..40aba58 100644 > --- a/drivers/Makefile > +++ b/drivers/Makefile > @@ -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/ > diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile > index acc9964..5b18e8c 100644 > --- a/drivers/usb/gadget/Makefile > +++ b/drivers/usb/gadget/Makefile > @@ -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 > diff --git a/include/configs/dra7xx_evm.h > b/include/configs/dra7xx_evm.h index 798002d..e295a84 100644 > --- a/include/configs/dra7xx_evm.h > +++ b/include/configs/dra7xx_evm.h > @@ -133,7 +133,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;" \ > diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl > index e0b0117..1e3b60a 100644 > --- a/scripts/Makefile.spl > +++ b/scripts/Makefile.spl > @@ -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/ -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot