spl: dfu: add dfu support in SPL
Traditionally the DFU support is available only as part 2nd stage boot loader(u-boot) and DFU is not supported in SPL. The SPL-DFU feature is useful for boards which does not have MMC/SD, ethernet boot mechanism to boot the board and only has USB inteface. This patch add DFU support in SPL with RAM memory device support to load and execute u-boot. And then leverage full functionality DFU in u-boot to flash boot inital binary images to factory or bare-metal boards to memory devices like SPI, eMMC, MMC/SD card using USB interface. This SPL-DFU support can be enabled through Menuconfig->Boot Images->Enable SPL-DFU support Signed-off-by: Ravi Babu <ravibabu@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
e915716a5c
commit
bc5dbcb918
27
Kconfig
27
Kconfig
|
@ -291,6 +291,33 @@ config FIT_IMAGE_POST_PROCESS
|
||||||
injected into the FIT creation (i.e. the blobs would have been pre-
|
injected into the FIT creation (i.e. the blobs would have been pre-
|
||||||
processed before being added to the FIT image).
|
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
|
config SYS_CLK_FREQ
|
||||||
depends on ARC || ARCH_SUNXI
|
depends on ARC || ARCH_SUNXI
|
||||||
int "CPU clock frequency"
|
int "CPU clock frequency"
|
||||||
|
|
|
@ -89,6 +89,7 @@ obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
|
||||||
endif # !CONFIG_SPL_BUILD
|
endif # !CONFIG_SPL_BUILD
|
||||||
|
|
||||||
ifdef CONFIG_SPL_BUILD
|
ifdef CONFIG_SPL_BUILD
|
||||||
|
obj-$(CONFIG_SPL_DFU_SUPPORT) += cli_hush.o
|
||||||
obj-$(CONFIG_SPL_HASH_SUPPORT) += hash.o
|
obj-$(CONFIG_SPL_HASH_SUPPORT) += hash.o
|
||||||
obj-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
|
obj-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
|
||||||
obj-$(CONFIG_SPL_YMODEM_SUPPORT) += xyzModem.o
|
obj-$(CONFIG_SPL_YMODEM_SUPPORT) += xyzModem.o
|
||||||
|
|
|
@ -66,6 +66,10 @@ endif
|
||||||
|
|
||||||
libs-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/
|
libs-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/
|
||||||
libs-y += drivers/
|
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 += dts/
|
||||||
libs-y += fs/
|
libs-y += fs/
|
||||||
libs-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/
|
libs-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/
|
||||||
|
|
Loading…
Reference in New Issue