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 <aurelien@xxxxxxxxxxx> 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. */ -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html