diff mbox

hw/arm_boot.c: move initrd load address up to accommodate large kernels

Message ID 1303227154-31067-1-git-send-email-peter.maydell@linaro.org
State Accepted
Commit 756ba3b0127fea2bfb538d256c76f19aec126732
Headers show

Commit Message

Peter Maydell April 19, 2011, 3:32 p.m. UTC
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 <peter.maydell@linaro.org>
---
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(-)

Comments

Aurelien Jarno April 20, 2011, 11:02 a.m. UTC | #1
On Tue, Apr 19, 2011 at 04:32:34PM +0100, Peter Maydell wrote:
> 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 <peter.maydell@linaro.org>
> ---
> 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(-)

Thanks, applied.

> 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[] = {
> -- 
> 1.7.1
> 
> 
>
diff mbox

Patch

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[] = {