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-
|
||||
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"
|
||||
|
@ -89,6 +89,7 @@ obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
|
||||
endif # !CONFIG_SPL_BUILD
|
||||
|
||||
ifdef CONFIG_SPL_BUILD
|
||||
obj-$(CONFIG_SPL_DFU_SUPPORT) += cli_hush.o
|
||||
obj-$(CONFIG_SPL_HASH_SUPPORT) += hash.o
|
||||
obj-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
|
||||
obj-$(CONFIG_SPL_YMODEM_SUPPORT) += xyzModem.o
|
||||
|
@ -66,6 +66,10 @@ 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/
|
||||
libs-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/
|
||||
|
Loading…
Reference in New Issue
Block a user