From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aurelien Jarno Subject: Re: [PATCH v2 02/10] hw/mips: Add API to convert KVM guest KSEG0 <-> GPA Date: Sat, 21 Dec 2013 16:34:14 +0100 Message-ID: <20131221153414.GA9044@ohm.rr44.fr> References: <1387203165-5553-1-git-send-email-james.hogan@imgtec.com> <1387203165-5553-3-git-send-email-james.hogan@imgtec.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Cc: Paolo Bonzini , Gleb Natapov , qemu-devel@nongnu.org, kvm@vger.kernel.org, Sanjay Lal To: James Hogan Return-path: Content-Disposition: inline In-Reply-To: <1387203165-5553-3-git-send-email-james.hogan@imgtec.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org List-Id: kvm.vger.kernel.org On Mon, Dec 16, 2013 at 02:12:37PM +0000, James Hogan wrote: > From: Sanjay Lal > > Add APIs for converting between KVM guest KSEG0 addresses and guest > physical addresses. These will be used for translating addresses when > loading a kernel ELF in KVM mode. > > In KVM trap and emulate mode both the guest kernel and guest userspace > execute in useg: > Guest User address space: 0x00000000..0x3fffffff > Guest Kernel Unmapped: 0x40000000..0x5fffffff > Guest Kernel Mapped: 0x60000000..0x7fffffff > > Signed-off-by: Sanjay Lal > Signed-off-by: James Hogan > Cc: Aurelien Jarno > --- > Changes in v2: > - Expand commit message > - Remove unnecessary include > --- > hw/mips/addr.c | 10 ++++++++++ > include/hw/mips/cpudevs.h | 4 ++++ > 2 files changed, 14 insertions(+) > > diff --git a/hw/mips/addr.c b/hw/mips/addr.c > index 99488f1..e62d6f4 100644 > --- a/hw/mips/addr.c > +++ b/hw/mips/addr.c > @@ -28,7 +28,17 @@ uint64_t cpu_mips_kseg0_to_phys(void *opaque, uint64_t addr) > return addr & 0x7fffffffll; > } > > +uint64_t cpu_mips_kvm_um_kseg0_to_phys(void *opaque, uint64_t addr) > +{ > + return addr & 0x3fffffffll; > +} > + > uint64_t cpu_mips_phys_to_kseg0(void *opaque, uint64_t addr) > { > return addr | ~0x7fffffffll; > } > + > +uint64_t cpu_mips_kvm_um_phys_to_kseg0(void *opaque, uint64_t addr) > +{ > + return addr | 0x40000000ll; > +} > diff --git a/include/hw/mips/cpudevs.h b/include/hw/mips/cpudevs.h > index 6bea24b..9e5af37 100644 > --- a/include/hw/mips/cpudevs.h > +++ b/include/hw/mips/cpudevs.h > @@ -6,6 +6,10 @@ > uint64_t cpu_mips_kseg0_to_phys(void *opaque, uint64_t addr); > uint64_t cpu_mips_phys_to_kseg0(void *opaque, uint64_t addr); > > +uint64_t cpu_mips_kvm_um_kseg0_to_phys(void *opaque, uint64_t addr); > +uint64_t cpu_mips_kvm_um_phys_to_kseg0(void *opaque, uint64_t addr); > + > + > /* mips_int.c */ > void cpu_mips_irq_init_cpu(CPUMIPSState *env); > Reviewed-by: Aurelien Jarno -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40018) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuOZe-00005S-AV for qemu-devel@nongnu.org; Sat, 21 Dec 2013 10:34:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VuOZY-00035C-7w for qemu-devel@nongnu.org; Sat, 21 Dec 2013 10:34:42 -0500 Received: from hall.aurel32.net ([2001:bc8:30d7:101::1]:46166) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuOZY-00032o-2A for qemu-devel@nongnu.org; Sat, 21 Dec 2013 10:34:36 -0500 Date: Sat, 21 Dec 2013 16:34:14 +0100 From: Aurelien Jarno Message-ID: <20131221153414.GA9044@ohm.rr44.fr> References: <1387203165-5553-1-git-send-email-james.hogan@imgtec.com> <1387203165-5553-3-git-send-email-james.hogan@imgtec.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1387203165-5553-3-git-send-email-james.hogan@imgtec.com> Subject: Re: [Qemu-devel] [PATCH v2 02/10] hw/mips: Add API to convert KVM guest KSEG0 <-> GPA List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: James Hogan Cc: Paolo Bonzini , Gleb Natapov , qemu-devel@nongnu.org, kvm@vger.kernel.org, Sanjay Lal On Mon, Dec 16, 2013 at 02:12:37PM +0000, James Hogan wrote: > From: Sanjay Lal > > Add APIs for converting between KVM guest KSEG0 addresses and guest > physical addresses. These will be used for translating addresses when > loading a kernel ELF in KVM mode. > > In KVM trap and emulate mode both the guest kernel and guest userspace > execute in useg: > Guest User address space: 0x00000000..0x3fffffff > Guest Kernel Unmapped: 0x40000000..0x5fffffff > Guest Kernel Mapped: 0x60000000..0x7fffffff > > Signed-off-by: Sanjay Lal > Signed-off-by: James Hogan > Cc: Aurelien Jarno > --- > Changes in v2: > - Expand commit message > - Remove unnecessary include > --- > hw/mips/addr.c | 10 ++++++++++ > include/hw/mips/cpudevs.h | 4 ++++ > 2 files changed, 14 insertions(+) > > diff --git a/hw/mips/addr.c b/hw/mips/addr.c > index 99488f1..e62d6f4 100644 > --- a/hw/mips/addr.c > +++ b/hw/mips/addr.c > @@ -28,7 +28,17 @@ uint64_t cpu_mips_kseg0_to_phys(void *opaque, uint64_t addr) > return addr & 0x7fffffffll; > } > > +uint64_t cpu_mips_kvm_um_kseg0_to_phys(void *opaque, uint64_t addr) > +{ > + return addr & 0x3fffffffll; > +} > + > uint64_t cpu_mips_phys_to_kseg0(void *opaque, uint64_t addr) > { > return addr | ~0x7fffffffll; > } > + > +uint64_t cpu_mips_kvm_um_phys_to_kseg0(void *opaque, uint64_t addr) > +{ > + return addr | 0x40000000ll; > +} > diff --git a/include/hw/mips/cpudevs.h b/include/hw/mips/cpudevs.h > index 6bea24b..9e5af37 100644 > --- a/include/hw/mips/cpudevs.h > +++ b/include/hw/mips/cpudevs.h > @@ -6,6 +6,10 @@ > uint64_t cpu_mips_kseg0_to_phys(void *opaque, uint64_t addr); > uint64_t cpu_mips_phys_to_kseg0(void *opaque, uint64_t addr); > > +uint64_t cpu_mips_kvm_um_kseg0_to_phys(void *opaque, uint64_t addr); > +uint64_t cpu_mips_kvm_um_phys_to_kseg0(void *opaque, uint64_t addr); > + > + > /* mips_int.c */ > void cpu_mips_irq_init_cpu(CPUMIPSState *env); > Reviewed-by: Aurelien Jarno -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net