From patchwork Tue Apr 19 15:32:34 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1099 Return-Path: Delivered-To: unknown Received: from imap.gmail.com (74.125.159.109) by localhost6.localdomain6 with IMAP4-SSL; 08 Jun 2011 14:49:07 -0000 Delivered-To: patches@linaro.org Received: by 10.224.67.148 with SMTP id r20cs75261qai; Tue, 19 Apr 2011 08:32:38 -0700 (PDT) Received: by 10.227.130.78 with SMTP id r14mr6492017wbs.101.1303227157815; Tue, 19 Apr 2011 08:32:37 -0700 (PDT) Received: from mnementh.archaic.org.uk (mnementh.archaic.org.uk [81.2.115.146]) by mx.google.com with ESMTPS id bc3si51280wbb.27.2011.04.19.08.32.37 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 19 Apr 2011 08:32:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) client-ip=81.2.115.146; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) smtp.mail=pm215@archaic.org.uk Received: from pm215 by mnementh.archaic.org.uk with local (Exim 4.72) (envelope-from ) id 1QCCuo-00085W-Vl; Tue, 19 Apr 2011 16:32:34 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Cc: patches@linaro.org Subject: [PATCH] hw/arm_boot.c: move initrd load address up to accommodate large kernels Date: Tue, 19 Apr 2011 16:32:34 +0100 Message-Id: <1303227154-31067-1-git-send-email-peter.maydell@linaro.org> X-Mailer: git-send-email 1.7.2.5 Newer kernels are large enough that they can overlap the address where qemu places the initrd. Move the initrd up so that there is enough space for the kernel again. Unfortunately it's not possible to automatically determine the size of the kernel if it is compressed, so this is the best we can do. Signed-off-by: Peter Maydell --- I think a variant of this patch was posted some time last year but didn't attract any comment. Anyway, bumping up the arbitrary initrd load address is a bit ugly but does at least let large kernels boot, and corresponds to what you'd do on real hardware (ie change the load address in your u-boot script)... If anybody has a better solution then I'm happy to implement it; otherwise I think this patch should be committed. hw/arm_boot.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/hw/arm_boot.c b/hw/arm_boot.c index 41e99d1..bfac982 100644 --- a/hw/arm_boot.c +++ b/hw/arm_boot.c @@ -15,7 +15,7 @@ #define KERNEL_ARGS_ADDR 0x100 #define KERNEL_LOAD_ADDR 0x00010000 -#define INITRD_LOAD_ADDR 0x00800000 +#define INITRD_LOAD_ADDR 0x00d00000 /* The worlds second smallest bootloader. Set r0-r2, then jump to kernel. */ static uint32_t bootloader[] = {