]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - common/spl/spl.c
SPL: Add support for loading image from ram in SPL.
[karo-tx-uboot.git] / common / spl / spl.c
index f2f6de7f2ac8d684c003e939eae6d5c75443aaca..c640f874040b9f118ca44e30c8f3936379cce6b2 100644 (file)
@@ -128,6 +128,23 @@ static void __noreturn jump_to_image_no_args(void)
        image_entry((u32 *)boot_params_ptr_addr);
 }
 
+#ifdef CONFIG_SPL_RAM_DEVICE
+static void spl_ram_load_image(void)
+{
+       const struct image_header *header;
+
+       /*
+        * Get the header.  It will point to an address defined by handoff
+        * which will tell where the image located inside the flash. For
+        * now, it will temporary fixed to address pointed by U-Boot.
+        */
+       header = (struct image_header *)
+               (CONFIG_SYS_TEXT_BASE - sizeof(struct image_header));
+
+       spl_parse_image_header(header);
+}
+#endif
+
 void board_init_r(gd_t *dummy1, ulong dummy2)
 {
        u32 boot_device;
@@ -145,6 +162,11 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
        boot_device = spl_boot_device();
        debug("boot device - %d\n", boot_device);
        switch (boot_device) {
+#ifdef CONFIG_SPL_RAM_DEVICE
+       case BOOT_DEVICE_RAM:
+               spl_ram_load_image();
+               break;
+#endif
 #ifdef CONFIG_SPL_MMC_SUPPORT
        case BOOT_DEVICE_MMC1:
        case BOOT_DEVICE_MMC2: