OSDN Git Service

microblaze: Support loading of u-boot initrd images
authorEdgar E. Iglesias <edgar.iglesias@xilinx.com>
Fri, 3 May 2013 13:19:45 +0000 (15:19 +0200)
committerEdgar E. Iglesias <edgar.iglesias@xilinx.com>
Mon, 12 May 2014 23:12:40 +0000 (09:12 +1000)
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
hw/microblaze/boot.c

index 48d9e7a..deeecfc 100644 (file)
@@ -174,9 +174,15 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
             high = ROUND_UP(high + kernel_size, 4);
             boot_info.initrd_start = high;
             initrd_offset = boot_info.initrd_start - ddr_base;
-            initrd_size = load_image_targphys(initrd_filename,
-                                              boot_info.initrd_start,
-                                              ram_size - initrd_offset);
+
+            initrd_size = load_ramdisk(initrd_filename,
+                                       boot_info.initrd_start,
+                                       ram_size - initrd_offset);
+            if (initrd_size < 0) {
+                initrd_size = load_image_targphys(initrd_filename,
+                                                  boot_info.initrd_start,
+                                                  ram_size - initrd_offset);
+            }
             if (initrd_size < 0) {
                 error_report("qemu: could not load initrd '%s'\n",
                              initrd_filename);