[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 02/10] hw/mips: Add API to convert KVM guest
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH v2 02/10] hw/mips: Add API to convert KVM guest KSEG0 <-> GPA |
Date: |
Sat, 21 Dec 2013 16:34:14 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, Dec 16, 2013 at 02:12:37PM +0000, James Hogan wrote:
> From: Sanjay Lal <address@hidden>
>
> 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 <address@hidden>
> Signed-off-by: James Hogan <address@hidden>
> Cc: Aurelien Jarno <address@hidden>
> ---
> 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 <address@hidden>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
- [Qemu-devel] [PATCH v2 05/10] kvm: Set sigmask length to 16 for MIPS targets, (continued)
- [Qemu-devel] [PATCH v2 05/10] kvm: Set sigmask length to 16 for MIPS targets, James Hogan, 2013/12/16
- [Qemu-devel] [PATCH v2 08/10] hw/mips: In KVM mode, inject IRQ2 (I/O) interupts via ioctls, James Hogan, 2013/12/16
- [Qemu-devel] [PATCH v2 10/10] target-mips: Enable KVM support in build system, James Hogan, 2013/12/16
- [Qemu-devel] [PATCH v2 02/10] hw/mips: Add API to convert KVM guest KSEG0 <-> GPA, James Hogan, 2013/12/16
- Re: [Qemu-devel] [PATCH v2 02/10] hw/mips: Add API to convert KVM guest KSEG0 <-> GPA,
Aurelien Jarno <=
- [Qemu-devel] [PATCH v2 06/10] target-mips: Set target page size to 16K in KVM mode, James Hogan, 2013/12/16
- [Qemu-devel] [PATCH v2 09/10] hw/mips: malta: Add KVM support, James Hogan, 2013/12/16
- [Qemu-devel] [PATCH v2 03/10] target-mips: get_physical_address: Add defines for segment bases, James Hogan, 2013/12/16
- [Qemu-devel] [PATCH v2 07/10] target-mips: kvm: Add main KVM support for MIPS, James Hogan, 2013/12/16
- [Qemu-devel] [PATCH v2 01/10] hw/mips/cputimer: Don't start periodic timer in KVM mode, James Hogan, 2013/12/16