qemu-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-discuss] big mips64-64 initrd does not boot


From: Peter Maydell
Subject: Re: [Qemu-discuss] big mips64-64 initrd does not boot
Date: Thu, 8 Sep 2016 19:21:12 +0100

On 8 September 2016 at 10:29, Dennis Luehring <address@hidden> wrote:
> small tests show that this seem not to be a kernel or gcc bug (same problem
> with linux 4.5,4.6.4,4,7, gcc 5.2,5.3,6.1)

That doesn't show that it's not a kernel bug -- it just shows
that if it is a kernel bug it's been around since at least 4.5...
You could test that it's not a kernel bug by booting the kernel
and initrd on a real malta board, if you had one.

> is my big_inird.cpio too large for the malta platform (or my linux-conf?) or
> is this maybe an emulation problem with qemu?

I don't know MIPS particularly, but I took a quick look
at the malta board code.

One thing that does stand out is that the malta memory map
has the full 2G of RAM starting at 0x80000000, but also
has a 256M window (alias) into that RAM starting at 0.
I think that if the kernel is linked such that it loads
at the 0 alias address rather than the 0x80000000 full-ram
address then when QEMU puts the initrd immediately
after the kernel it will run off the end of the alias window.
You could test this theory by putting some printfs in the
load_kernel() function in hw/mips/mips_malta.c to see what
addresses the kernel and initrd are being put at.
If the initrd is being put properly into the high part
of RAM then the problem may be in the kerneli if it
tries to refer to it via the limited-size alias window.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]