Message ID | 1417443189-16679-1-git-send-email-rjones@redhat.com |
---|---|
State | New |
Headers | show |
On 1 December 2014 at 14:13, Richard W.M. Jones <rjones@redhat.com> wrote: > Resolves: https://bugs.launchpad.net/qemu/+bug/1383857 > Signed-off-by: Richard W.M. Jones <rjones@redhat.com> This is really a kernel bug. https://www.kernel.org/doc/Documentation/arm64/booting.txt just says "The device tree blob (dtb) must be placed on an 8-byte boundary within the first 512 megabytes from the start of the kernel image and must not cross a 2-megabyte boundary." and doesn't make any requirements about it not overlapping a page with the initrd. > --- > hw/arm/boot.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/arm/boot.c b/hw/arm/boot.c > index 0014c34..a859922 100644 > --- a/hw/arm/boot.c > +++ b/hw/arm/boot.c > @@ -632,11 +632,11 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info) > */ > if (have_dtb(info)) { > /* Place the DTB after the initrd in memory. Note that some > - * kernels will trash anything in the 4K page the initrd > + * kernels will trash anything in the page the initrd > * ends in, so make sure the DTB isn't caught up in that. > */ > hwaddr dtb_start = QEMU_ALIGN_UP(info->initrd_start + initrd_size, > - 4096); > + 65536); I'd rather we didn't do this unconditionally, because for some of our board models 64K is a significant proportion of their total RAM. -- PMM
diff --git a/hw/arm/boot.c b/hw/arm/boot.c index 0014c34..a859922 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -632,11 +632,11 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info) */ if (have_dtb(info)) { /* Place the DTB after the initrd in memory. Note that some - * kernels will trash anything in the 4K page the initrd + * kernels will trash anything in the page the initrd * ends in, so make sure the DTB isn't caught up in that. */ hwaddr dtb_start = QEMU_ALIGN_UP(info->initrd_start + initrd_size, - 4096); + 65536); if (load_dtb(dtb_start, info, 0) < 0) { exit(1); }
Resolves: https://bugs.launchpad.net/qemu/+bug/1383857 Signed-off-by: Richard W.M. Jones <rjones@redhat.com> --- hw/arm/boot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)