On 29 November 2010 14:37, Prasad Joshi <prasadjoshi...@gmail.com> wrote: > I am running QEMU Arm emulation on x86_64 machine. I downloaded the > arm-test kernel and the initrd image available on QEMU download site. > > When I run the qemu-system-arm with the memory less than or equal to > 256M everything works fine. > pra...@prasad-desktop:~/Downloads/arm-test$ qemu-system-arm -kernel > zImage.integrator -initrd arm_root.img -m 256 > > But, when I assign memory more than 256M it fails to run
This is because the Integrator development board only supports a maximum of 256M of RAM (the hole in its physical address layout for RAM is that large, and after that come some memory mapped devices). > pra...@prasad-desktop:~/Downloads/arm-test$ qemu-system-arm -kernel > zImage.integrator -initrd arm_root.img -m 512 > qemu: hardware error: pl011_read: Bad offset 16000018 It's a bug that we don't do something sensible when the user requests more memory than the board supports (like bailing out with an error), rather than blindly mapping both RAM and devices into the same place and then booting the kernel. (Slight tangent but related:) the interface to the board init routine for "how much RAM should we model?" is a bit limiting because there's no way to tell the difference between "ram size specified by user on command line" and "ram size which is a random default from vl.c". (It would be useful for most boards models to default to whatever the maximum standard amount of memory for them is, for instance.) Incidentally the Integrator is a truly ancient devboard and I'm not sure it deserves to be the default any more ;-) -- PMM