qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 10/12] hw/mips: malta: Add KVM support


From: James Hogan
Subject: Re: [Qemu-devel] [PATCH v5 10/12] hw/mips: malta: Add KVM support
Date: Fri, 20 Jun 2014 10:25:24 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

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 <address@hidden> 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. */



reply via email to

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