summaryrefslogtreecommitdiff
path: root/common/spl/spl.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/spl/spl.c')
-rw-r--r--common/spl/spl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/common/spl/spl.c b/common/spl/spl.c
index e14ec80..57b73af 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -174,7 +174,7 @@ __weak void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
# define CONFIG_SPL_LOAD_FIT_ADDRESS 0
#endif
-#ifdef CONFIG_SPL_RAM_DEVICE
+#if defined(CONFIG_SPL_RAM_DEVICE) || defined(CONFIG_SPL_DFU_SUPPORT)
static ulong spl_ram_load_read(struct spl_load_info *load, ulong sector,
ulong count, void *buf)
{
@@ -312,6 +312,9 @@ struct boot_device_name boot_name_table[] = {
#ifdef CONFIG_SPL_USB_SUPPORT
{ BOOT_DEVICE_USB, "USB" },
#endif
+#ifdef CONFIG_SPL_DFU_SUPPORT
+ { BOOT_DEVICE_DFU, "USB DFU" },
+#endif
#ifdef CONFIG_SPL_SATA_SUPPORT
{ BOOT_DEVICE_SATA, "SATA" },
#endif
@@ -398,6 +401,11 @@ static int spl_load_image(u32 boot_device)
case BOOT_DEVICE_USB:
return spl_usb_load_image();
#endif
+#ifdef CONFIG_SPL_DFU_SUPPORT
+ case BOOT_DEVICE_DFU:
+ spl_dfu_cmd(0, "dfu_alt_info_ram", "ram", "0");
+ return spl_ram_load_image();
+#endif
#ifdef CONFIG_SPL_SATA_SUPPORT
case BOOT_DEVICE_SATA:
return spl_sata_load_image();