From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59409) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UwK6i-0000DH-DL for qemu-devel@nongnu.org; Mon, 08 Jul 2013 18:40:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UwK6d-0006oS-I5 for qemu-devel@nongnu.org; Mon, 08 Jul 2013 18:40:32 -0400 Received: from mail-pb0-x229.google.com ([2607:f8b0:400e:c01::229]:40111) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UwK6d-0006oK-Bf for qemu-devel@nongnu.org; Mon, 08 Jul 2013 18:40:27 -0400 Received: by mail-pb0-f41.google.com with SMTP id rp16so4821063pbb.0 for ; Mon, 08 Jul 2013 15:40:26 -0700 (PDT) Sender: =?UTF-8?Q?S=C3=B6ren_Brinkmann?= From: Soren Brinkmann Date: Mon, 8 Jul 2013 15:40:02 -0700 Message-Id: <1373323202-17083-3-git-send-email-soren.brinkmann@xilinx.com> In-Reply-To: <1373323202-17083-1-git-send-email-soren.brinkmann@xilinx.com> References: <1373323202-17083-1-git-send-email-soren.brinkmann@xilinx.com> Subject: [Qemu-devel] [PATCH v3 2/2] hw/arm: Use 'load_ramdisk()' for loading ramdisks w/ U-Boot header List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook , Peter Maydell , Paolo Bonzini , Peter Crosthwaite Cc: Edgar Iglesias , qemu-devel@nongnu.org, Soren Brinkmann The load_ramdisk function is used to load ramdisk featuring a U-Boot header. Signed-off-by: Soren Brinkmann --- v2: - try to load a u-boot ramdisk using the new load_ramdisk() function first. And then, in case of an error, fall back to the traditional way for loading a ramdisk. In order to keep ramdisk and kernel loading symmetrical. hw/arm/boot.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/arm/boot.c b/hw/arm/boot.c index 7c0090f..a356b53 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -425,10 +425,16 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info) info->entry = entry; if (is_linux) { if (info->initrd_filename) { - initrd_size = load_image_targphys(info->initrd_filename, - info->initrd_start, - info->ram_size - - info->initrd_start); + initrd_size = load_ramdisk(info->initrd_filename, + info->initrd_start, + info->ram_size - + info->initrd_start); + if (initrd_size < 0) { + initrd_size = load_image_targphys(info->initrd_filename, + info->initrd_start, + info->ram_size - + info->initrd_start); + } if (initrd_size < 0) { fprintf(stderr, "qemu: could not load initrd '%s'\n", info->initrd_filename); -- 1.8.3.2