On 19/06/14 22:47, Aurelien Jarno wrote: > On Thu, Jun 19, 2014 at 12:34:24PM -0700, Sanjay Lal wrote: >> >> On Jun 19, 2014, at 9:27 AM, Aurelien Jarno <aurel...@aurel32.net> wrote: >> >>> On Tue, Jun 17, 2014 at 11:10:35PM +0100, James Hogan wrote: >>>> In KVM mode the bootrom is loaded and executed from the last 1MB of >>>> DRAM. >>> >>> What is the reason for that? I am not opposed to that, but if it is >>> really needed, it means that loading a bootloader into the flash area >>> (for example YAMON) won't work and that this should be forbidden to the >>> user. >>> >> >> In trap and emulate mode, both the kernel and userland run in user mode on >> the processor. Virtual addresses >= 0x80000000 are only accessible in kernel >> mode, and the default flash area (VA: 0xbfc00000/PA: 0x1fc00000) falls in >> this range. >> >> We therefore decided to relocate the bootloader to the last 1MB of RAM. >> This area is excluded from the RAM ranges supplied to the kernel, so it >> should not be accessible to the user. >> > > Thanks for the explanation. It means we should disable the support for > booting from the flash (using -pflash) in KVM mode, as it would simply > not work. >
Hi Aurelien, Is this fixup to the malta patch the sort of thing you had in mind? If so I'll generate a v6 patchset with it. Cheers James diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 8bc5392b4223..91b0ce566111 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -1052,6 +1052,12 @@ void mips_malta_init(MachineState *machine) bootloader_run_addr, kernel_entry); } } else { + /* The flash region isn't executable from a KVM T&E guest */ + if (kvm_enabled()) { + error_report("KVM enabled but no -kernel argument was specified. " + "Booting from flash is not supported with KVM T&E."); + exit(1); + } /* Load firmware from flash. */ if (!dinfo) { /* Load a BIOS image. */