From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Hogan Subject: Re: [Qemu-devel] [PATCH v5 10/12] hw/mips: malta: Add KVM support Date: Fri, 20 Jun 2014 09:46:20 +0100 Message-ID: <53A3F4DC.2090708@imgtec.com> References: <1403043037-1271-1-git-send-email-james.hogan@imgtec.com> <1403043037-1271-11-git-send-email-james.hogan@imgtec.com> <20140619162748.GO7398@ohm.rr44.fr> <577D5B21-4F8B-4A9A-BD25-A76C76987544@kymasys.com> <20140619214733.GJ24904@hall.aurel32.net> <786372578.29668656.1403244425225.JavaMail.zimbra@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: Sanjay Lal , , Peter Maydell , , Gleb Natapov To: Paolo Bonzini , Aurelien Jarno Return-path: Received: from mailapp01.imgtec.com ([195.59.15.196]:22373 "EHLO mailapp01.imgtec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934598AbaFTIqY (ORCPT ); Fri, 20 Jun 2014 04:46:24 -0400 In-Reply-To: <786372578.29668656.1403244425225.JavaMail.zimbra@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Hi, On 20/06/14 07:07, Paolo Bonzini wrote: > ----- Messaggio originale ----- >> Da: "Aurelien Jarno" >> A: "Sanjay Lal" >> Cc: "James Hogan" , qemu-devel@nongnu.org, "= Peter Maydell" , >> kvm@vger.kernel.org, "Gleb Natapov" , "Paolo Bonzin= i" >> Inviato: Gioved=C3=AC, 19 giugno 2014 23:47:34 >> Oggetto: Re: [Qemu-devel] [PATCH v5 10/12] hw/mips: malta: Add KVM s= upport >> >> On Thu, Jun 19, 2014 at 12:34:24PM -0700, Sanjay Lal wrote: >>> >>> On Jun 19, 2014, at 9:27 AM, Aurelien Jarno = 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 i= s >>>> really needed, it means that loading a bootloader into the flash a= rea >>>> (for example YAMON) won't work and that this should be forbidden t= o the >>>> user. >>>> >>> >>> In trap and emulate mode, both the kernel and userland run in user = mode on >>> the processor. Virtual addresses >=3D 0x80000000 are only accessibl= e in >>> kernel mode, and the default flash area (VA: 0xbfc00000/PA: 0x1fc00= 000) >>> 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, s= o it >>> should not be accessible to the user. I did recently try relocating the bootloader to the reset address in th= e T&E KSeg0 (i.e. PA=3D0x1fc00000, VA=3D0x5fc00000), but the current MIPS= KVM implementation in the kernel has some limitations when it comes to memory regions. It allocates a linear guest_pmap array (for GPA->RPA page mapping) based only on the first memory region committed, so if yo= u set e.g. mem=3D64MB then physical memory according to guest_pmap won't reach the reset address and it fails to map it. The kernel needs fixing to use a more flexible physical page table structure first really. >> Thanks for the explanation. It means we should disable the support f= or >> booting from the flash (using -pflash) in KVM mode, as it would simp= ly >> not work. >=20 > My idea was to add a machines-specific option umkernel=3Don, and requ= ire it > in order to run KVM. Later we can add umkernel=3Don support for TCG = as well, =46YI I tried this and it was a fairly small change (fixing CP0_EBase initialisation and switching a couple of kvm_enabled() checks to something like mips_um_ksegs_enabled()). Needs more testing though. > while umkernel=3Doff with KVM requires virtualization extensions. >=20 > The same option can disable pflash boot. >=20 > What do you think? I think with an executable flash region / reset address the pflash option could be made to work, but of course you'd probably need a relocated flash image too, which may make the option less useful (and i= t presumably isn't like a kernel ELF where you can detect what address it's linked). =46or now disabling Malta non kernel loads in KVM mode makes sense I th= ink. Thanks James