Message ID | 1303227154-31067-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | 756ba3b0127fea2bfb538d256c76f19aec126732 |
Headers | show |
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 --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[] = {
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(-)