kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] kvm tools: arm: support Cortex-A7 CPUs
@ 2013-09-27 17:38 Jonathan Austin
  2013-09-27 17:38 ` [PATCH 1/2] kvm tools: arm: extract common timer support code for ARM cpus Jonathan Austin
  2013-09-27 17:38 ` [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7 Jonathan Austin
  0 siblings, 2 replies; 11+ messages in thread
From: Jonathan Austin @ 2013-09-27 17:38 UTC (permalink / raw)
  To: kvm, kvmarm
  Cc: penberg, marc.zyngier, christoffer.dall, STFD002, ulrich.hecht,
	will.deacon, Jonathan Austin

These two patches allow KVM-tool to exploit the Cortex-A7 support for KVM
recently posted to the kvmarm mailing list.

The first patch is a standalone cleanup to extract previously duplicated timer
setup code, and allows us to add A7 support in a small subsequent patch.

Note: the removal of the timer code makes git refuse to see the following:
tools/kvm/arm/aarch32/{cortex_a15.c --> arm-cpu.c}
tools/kvm/arm/aarch64/{cortex_a57.c --> arm-cpu.c}
(even when passed -M40 git's decisions about what's new/renamed are confusing)

The second patch should not be merged before the Cortex-A7 support patches
posted recently to the kvmarm list hit the kernel, as kvm-tool for ARM will not
build if KVM_ARM_TARGET_CORTEX_A7 (added with that series) is not defined.

Jonathan Austin (2):
  kvm tools: arm: extract common timer support code for ARM cpus
  kvm tools: arm: add support for ARM Cortex-A7

 tools/kvm/Makefile                       |    6 +--
 tools/kvm/arm/aarch32/arm-cpu.c          |   42 ++++++++++++++++
 tools/kvm/arm/aarch32/cortex-a15.c       |   61 -----------------------
 tools/kvm/arm/aarch64/arm-cpu.c          |   50 +++++++++++++++++++
 tools/kvm/arm/aarch64/cortex-a57.c       |   80 ------------------------------
 tools/kvm/arm/include/arm-common/timer.h |    6 +++
 tools/kvm/arm/timer.c                    |   38 ++++++++++++++
 7 files changed, 139 insertions(+), 144 deletions(-)
 create mode 100644 tools/kvm/arm/aarch32/arm-cpu.c
 delete mode 100644 tools/kvm/arm/aarch32/cortex-a15.c
 create mode 100644 tools/kvm/arm/aarch64/arm-cpu.c
 delete mode 100644 tools/kvm/arm/aarch64/cortex-a57.c
 create mode 100644 tools/kvm/arm/include/arm-common/timer.h
 create mode 100644 tools/kvm/arm/timer.c

-- 
1.7.9.5



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/2] kvm tools: arm: extract common timer support code for ARM cpus
  2013-09-27 17:38 [PATCH 0/2] kvm tools: arm: support Cortex-A7 CPUs Jonathan Austin
@ 2013-09-27 17:38 ` Jonathan Austin
  2013-09-27 17:38 ` [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7 Jonathan Austin
  1 sibling, 0 replies; 11+ messages in thread
From: Jonathan Austin @ 2013-09-27 17:38 UTC (permalink / raw)
  To: kvm, kvmarm
  Cc: penberg, marc.zyngier, christoffer.dall, STFD002, ulrich.hecht,
	will.deacon, Jonathan Austin

The ARM V7 and V8 CPUs use the nearly identical support code for generating
timer DT nodes as they both use ARM's architected timers. This code is currently
duplicated for AArch32 and AArch64.

This cleanup patch generalises timer DT node generation to follow the same
pattern as for the GIC. The ability of a DT node to contain multiple compatible
strings is exploited to allow an identical DT node to be used on V7 and V8
platforms.

Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
---
 tools/kvm/Makefile                       |    6 +--
 tools/kvm/arm/aarch32/arm-cpu.c          |   35 +++++++++++++
 tools/kvm/arm/aarch32/cortex-a15.c       |   61 -----------------------
 tools/kvm/arm/aarch64/arm-cpu.c          |   50 +++++++++++++++++++
 tools/kvm/arm/aarch64/cortex-a57.c       |   80 ------------------------------
 tools/kvm/arm/include/arm-common/timer.h |    6 +++
 tools/kvm/arm/timer.c                    |   38 ++++++++++++++
 7 files changed, 132 insertions(+), 144 deletions(-)
 create mode 100644 tools/kvm/arm/aarch32/arm-cpu.c
 delete mode 100644 tools/kvm/arm/aarch32/cortex-a15.c
 create mode 100644 tools/kvm/arm/aarch64/arm-cpu.c
 delete mode 100644 tools/kvm/arm/aarch64/cortex-a57.c
 create mode 100644 tools/kvm/arm/include/arm-common/timer.h
 create mode 100644 tools/kvm/arm/timer.c

diff --git a/tools/kvm/Makefile b/tools/kvm/Makefile
index b614aab..27fb2fb 100644
--- a/tools/kvm/Makefile
+++ b/tools/kvm/Makefile
@@ -157,12 +157,12 @@ endif
 
 # ARM
 OBJS_ARM_COMMON		:= arm/fdt.o arm/gic.o arm/ioport.o arm/irq.o \
-			   arm/kvm.o arm/kvm-cpu.o
+			   arm/kvm.o arm/kvm-cpu.o arm/timer.o
 HDRS_ARM_COMMON		:= arm/include
 ifeq ($(ARCH), arm)
 	DEFINES		+= -DCONFIG_ARM
 	OBJS		+= $(OBJS_ARM_COMMON)
-	OBJS		+= arm/aarch32/cortex-a15.o
+	OBJS		+= arm/aarch32/arm-cpu.o
 	OBJS		+= arm/aarch32/kvm-cpu.o
 	ARCH_INCLUDE	:= $(HDRS_ARM_COMMON)
 	ARCH_INCLUDE	+= -Iarm/aarch32/include
@@ -175,7 +175,7 @@ endif
 ifeq ($(ARCH), arm64)
 	DEFINES		+= -DCONFIG_ARM64
 	OBJS		+= $(OBJS_ARM_COMMON)
-	OBJS		+= arm/aarch64/cortex-a57.o
+	OBJS		+= arm/aarch64/arm-cpu.o
 	OBJS		+= arm/aarch64/kvm-cpu.o
 	ARCH_INCLUDE	:= $(HDRS_ARM_COMMON)
 	ARCH_INCLUDE	+= -Iarm/aarch64/include
diff --git a/tools/kvm/arm/aarch32/arm-cpu.c b/tools/kvm/arm/aarch32/arm-cpu.c
new file mode 100644
index 0000000..8817d2a
--- /dev/null
+++ b/tools/kvm/arm/aarch32/arm-cpu.c
@@ -0,0 +1,35 @@
+#include "kvm/kvm.h"
+#include "kvm/kvm-cpu.h"
+#include "kvm/util.h"
+
+#include "arm-common/gic.h"
+#include "arm-common/timer.h"
+
+#include <linux/byteorder.h>
+#include <linux/types.h>
+
+static void generate_fdt_nodes(void *fdt, struct kvm *kvm, u32 gic_phandle)
+{
+	int timer_interrupts[4] = {13, 14, 11, 10};
+
+	gic__generate_fdt_nodes(fdt, gic_phandle);
+	timer__generate_fdt_nodes(fdt, kvm, timer_interrupts);
+}
+
+static int arm_cpu__vcpu_init(struct kvm_cpu *vcpu)
+{
+	vcpu->generate_fdt_nodes = generate_fdt_nodes;
+	return 0;
+}
+
+static struct kvm_arm_target target_cortex_a15 = {
+	.id		= KVM_ARM_TARGET_CORTEX_A15,
+	.compatible	= "arm,cortex-a15",
+	.init		= arm_cpu__vcpu_init,
+};
+
+static int arm_cpu__core_init(struct kvm *kvm)
+{
+	return kvm_cpu__register_kvm_arm_target(&target_cortex_a15);
+}
+core_init(arm_cpu__core_init);
diff --git a/tools/kvm/arm/aarch32/cortex-a15.c b/tools/kvm/arm/aarch32/cortex-a15.c
deleted file mode 100644
index ca65af7..0000000
--- a/tools/kvm/arm/aarch32/cortex-a15.c
+++ /dev/null
@@ -1,61 +0,0 @@
-#include "kvm/fdt.h"
-#include "kvm/kvm.h"
-#include "kvm/kvm-cpu.h"
-#include "kvm/util.h"
-
-#include "arm-common/gic.h"
-
-#include <linux/byteorder.h>
-#include <linux/types.h>
-
-static void generate_timer_nodes(void *fdt, struct kvm *kvm)
-{
-	u32 cpu_mask = (((1 << kvm->nrcpus) - 1) << GIC_FDT_IRQ_PPI_CPU_SHIFT) \
-		       & GIC_FDT_IRQ_PPI_CPU_MASK;
-	u32 irq_prop[] = {
-		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
-		cpu_to_fdt32(13),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
-
-		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
-		cpu_to_fdt32(14),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
-
-		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
-		cpu_to_fdt32(11),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
-
-		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
-		cpu_to_fdt32(10),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
-	};
-
-	_FDT(fdt_begin_node(fdt, "timer"));
-	_FDT(fdt_property_string(fdt, "compatible", "arm,armv7-timer"));
-	_FDT(fdt_property(fdt, "interrupts", irq_prop, sizeof(irq_prop)));
-	_FDT(fdt_end_node(fdt));
-}
-
-static void generate_fdt_nodes(void *fdt, struct kvm *kvm, u32 gic_phandle)
-{
-	gic__generate_fdt_nodes(fdt, gic_phandle);
-	generate_timer_nodes(fdt, kvm);
-}
-
-static int cortex_a15__vcpu_init(struct kvm_cpu *vcpu)
-{
-	vcpu->generate_fdt_nodes = generate_fdt_nodes;
-	return 0;
-}
-
-static struct kvm_arm_target target_cortex_a15 = {
-	.id		= KVM_ARM_TARGET_CORTEX_A15,
-	.compatible	= "arm,cortex-a15",
-	.init		= cortex_a15__vcpu_init,
-};
-
-static int cortex_a15__core_init(struct kvm *kvm)
-{
-	return kvm_cpu__register_kvm_arm_target(&target_cortex_a15);
-}
-core_init(cortex_a15__core_init);
diff --git a/tools/kvm/arm/aarch64/arm-cpu.c b/tools/kvm/arm/aarch64/arm-cpu.c
new file mode 100644
index 0000000..ce5ea2f
--- /dev/null
+++ b/tools/kvm/arm/aarch64/arm-cpu.c
@@ -0,0 +1,50 @@
+#include "kvm/fdt.h"
+#include "kvm/kvm.h"
+#include "kvm/kvm-cpu.h"
+#include "kvm/util.h"
+
+#include "arm-common/gic.h"
+#include "arm-common/timer.h"
+
+#include <linux/byteorder.h>
+#include <linux/types.h>
+
+static void generate_fdt_nodes(void *fdt, struct kvm *kvm, u32 gic_phandle)
+{
+	int timer_interrupts[4] = {13, 14, 11, 10};
+	gic__generate_fdt_nodes(fdt, gic_phandle);
+	timer__generate_fdt_nodes(fdt, kvm, timer_interrupts);
+}
+
+
+static int arm_cpu__vcpu_init(struct kvm_cpu *vcpu)
+{
+	vcpu->generate_fdt_nodes = generate_fdt_nodes;
+	return 0;
+}
+
+static struct kvm_arm_target target_aem_v8 = {
+	.id		= KVM_ARM_TARGET_AEM_V8,
+	.compatible	= "arm,arm-v8",
+	.init		= arm_cpu__vcpu_init,
+};
+
+static struct kvm_arm_target target_foundation_v8 = {
+	.id		= KVM_ARM_TARGET_FOUNDATION_V8,
+	.compatible	= "arm,arm-v8",
+	.init		= arm_cpu__vcpu_init,
+};
+
+static struct kvm_arm_target target_cortex_a57 = {
+	.id		= KVM_ARM_TARGET_CORTEX_A57,
+	.compatible	= "arm,cortex-a57",
+	.init		= arm_cpu__vcpu_init,
+};
+
+static int arm_cpu__core_init(struct kvm *kvm)
+{
+	return (kvm_cpu__register_kvm_arm_target(&target_aem_v8) ||
+		kvm_cpu__register_kvm_arm_target(&target_foundation_v8) ||
+		kvm_cpu__register_kvm_arm_target(&target_cortex_a57));
+}
+core_init(arm_cpu__core_init);
diff --git a/tools/kvm/arm/aarch64/cortex-a57.c b/tools/kvm/arm/aarch64/cortex-a57.c
deleted file mode 100644
index 0c340fb..0000000
--- a/tools/kvm/arm/aarch64/cortex-a57.c
+++ /dev/null
@@ -1,80 +0,0 @@
-#include "kvm/fdt.h"
-#include "kvm/kvm.h"
-#include "kvm/kvm-cpu.h"
-#include "kvm/util.h"
-
-#include "arm-common/gic.h"
-
-#include <linux/byteorder.h>
-#include <linux/types.h>
-
-static void generate_timer_nodes(void *fdt, struct kvm *kvm)
-{
-	u32 cpu_mask = (((1 << kvm->nrcpus) - 1) << GIC_FDT_IRQ_PPI_CPU_SHIFT) \
-		       & GIC_FDT_IRQ_PPI_CPU_MASK;
-	u32 irq_prop[] = {
-		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
-		cpu_to_fdt32(13),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
-
-		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
-		cpu_to_fdt32(14),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
-
-		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
-		cpu_to_fdt32(11),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
-
-		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
-		cpu_to_fdt32(10),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
-	};
-
-	_FDT(fdt_begin_node(fdt, "timer"));
-	_FDT(fdt_property_string(fdt, "compatible", "arm,armv8-timer"));
-	_FDT(fdt_property(fdt, "interrupts", irq_prop, sizeof(irq_prop)));
-	_FDT(fdt_end_node(fdt));
-}
-
-static void generate_fdt_nodes(void *fdt, struct kvm *kvm, u32 gic_phandle)
-{
-	gic__generate_fdt_nodes(fdt, gic_phandle);
-	generate_timer_nodes(fdt, kvm);
-}
-
-
-static int cortex_a57__vcpu_init(struct kvm_cpu *vcpu)
-{
-	vcpu->generate_fdt_nodes = generate_fdt_nodes;
-	return 0;
-}
-
-/*
- * As far as userspace is concerned, both of these implementations are
- * extremely similar.
- */
-static struct kvm_arm_target target_aem_v8 = {
-	.id		= KVM_ARM_TARGET_AEM_V8,
-	.compatible	= "arm,arm-v8",
-	.init		= cortex_a57__vcpu_init,
-};
-
-static struct kvm_arm_target target_foundation_v8 = {
-	.id		= KVM_ARM_TARGET_FOUNDATION_V8,
-	.compatible	= "arm,arm-v8",
-	.init		= cortex_a57__vcpu_init,
-};
-
-static struct kvm_arm_target target_cortex_a57 = {
-	.id		= KVM_ARM_TARGET_CORTEX_A57,
-	.compatible	= "arm,cortex-a57",
-	.init		= cortex_a57__vcpu_init,
-};
-
-static int cortex_a57__core_init(struct kvm *kvm)
-{
-	return (kvm_cpu__register_kvm_arm_target(&target_aem_v8) ||
-		kvm_cpu__register_kvm_arm_target(&target_foundation_v8) ||
-		kvm_cpu__register_kvm_arm_target(&target_cortex_a57));
-}
-core_init(cortex_a57__core_init);
diff --git a/tools/kvm/arm/include/arm-common/timer.h b/tools/kvm/arm/include/arm-common/timer.h
new file mode 100644
index 0000000..928e9ea
--- /dev/null
+++ b/tools/kvm/arm/include/arm-common/timer.h
@@ -0,0 +1,6 @@
+#ifndef ARM_COMMON__TIMER_H
+#define ARM_COMMON__TIMER_H
+
+void timer__generate_fdt_nodes(void *fdt, struct kvm *kvm, int *irqs);
+
+#endif /* ARM_COMMON__TIMER_H */
diff --git a/tools/kvm/arm/timer.c b/tools/kvm/arm/timer.c
new file mode 100644
index 0000000..bd6a0bb
--- /dev/null
+++ b/tools/kvm/arm/timer.c
@@ -0,0 +1,38 @@
+#include "kvm/fdt.h"
+#include "kvm/kvm.h"
+#include "kvm/kvm-cpu.h"
+#include "kvm/util.h"
+
+#include "arm-common/gic.h"
+#include "arm-common/timer.h"
+
+void timer__generate_fdt_nodes(void *fdt, struct kvm *kvm, int *irqs)
+{
+	const char compatible[] = "arm,armv8-timer\0arm,armv7-timer";
+
+	u32 cpu_mask = (((1 << kvm->nrcpus) - 1) << GIC_FDT_IRQ_PPI_CPU_SHIFT) \
+		       & GIC_FDT_IRQ_PPI_CPU_MASK;
+	u32 irq_prop[] = {
+		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
+		cpu_to_fdt32(irqs[0]),
+		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+
+		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
+		cpu_to_fdt32(irqs[1]),
+		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+
+		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
+		cpu_to_fdt32(irqs[2]),
+		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+
+		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
+		cpu_to_fdt32(irqs[3]),
+		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+	};
+
+	_FDT(fdt_begin_node(fdt, "timer"));
+	_FDT(fdt_property(fdt, "compatible", compatible, sizeof(compatible)));
+	_FDT(fdt_property(fdt, "interrupts", irq_prop, sizeof(irq_prop)));
+	_FDT(fdt_end_node(fdt));
+}
+
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-09-27 17:38 [PATCH 0/2] kvm tools: arm: support Cortex-A7 CPUs Jonathan Austin
  2013-09-27 17:38 ` [PATCH 1/2] kvm tools: arm: extract common timer support code for ARM cpus Jonathan Austin
@ 2013-09-27 17:38 ` Jonathan Austin
  2013-09-30  9:38   ` Will Deacon
  1 sibling, 1 reply; 11+ messages in thread
From: Jonathan Austin @ 2013-09-27 17:38 UTC (permalink / raw)
  To: kvm, kvmarm
  Cc: penberg, marc.zyngier, christoffer.dall, STFD002, ulrich.hecht,
	will.deacon, Jonathan Austin

The Cortex-A7 is very similar to the Cortex-A15 and as such there is very
little extra infrastructure required for KVM tool to be able to create
A7-guests.

This patch adds the basic support and allows booting of A7 guests on A7
hosts. It depends on Cortex-A7 support patches posted recently to the kvmarm
list.

Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
---
 tools/kvm/arm/aarch32/arm-cpu.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tools/kvm/arm/aarch32/arm-cpu.c b/tools/kvm/arm/aarch32/arm-cpu.c
index 8817d2a..71b98fe 100644
--- a/tools/kvm/arm/aarch32/arm-cpu.c
+++ b/tools/kvm/arm/aarch32/arm-cpu.c
@@ -28,8 +28,15 @@ static struct kvm_arm_target target_cortex_a15 = {
 	.init		= arm_cpu__vcpu_init,
 };
 
+static struct kvm_arm_target target_cortex_a7 = {
+	.id		= KVM_ARM_TARGET_CORTEX_A7,
+	.compatible	= "arm,cortex-a7",
+	.init		= arm_cpu__vcpu_init,
+};
+
 static int arm_cpu__core_init(struct kvm *kvm)
 {
-	return kvm_cpu__register_kvm_arm_target(&target_cortex_a15);
+	return (kvm_cpu__register_kvm_arm_target(&target_cortex_a15) ||
+		kvm_cpu__register_kvm_arm_target(&target_cortex_a7));
 }
 core_init(arm_cpu__core_init);
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-09-27 17:38 ` [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7 Jonathan Austin
@ 2013-09-30  9:38   ` Will Deacon
  2013-09-30 11:23     ` Pekka Enberg
  2013-09-30 13:26     ` Christoffer Dall
  0 siblings, 2 replies; 11+ messages in thread
From: Will Deacon @ 2013-09-30  9:38 UTC (permalink / raw)
  To: Jonathan Austin
  Cc: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
	penberg@kernel.org, Marc Zyngier, christoffer.dall@linaro.org,
	STFD002@freescale.com, ulrich.hecht@gmail.com

On Fri, Sep 27, 2013 at 06:38:52PM +0100, Jonathan Austin wrote:
> The Cortex-A7 is very similar to the Cortex-A15 and as such there is very
> little extra infrastructure required for KVM tool to be able to create
> A7-guests.
> 
> This patch adds the basic support and allows booting of A7 guests on A7
> hosts. It depends on Cortex-A7 support patches posted recently to the kvmarm
> list.
> 
> Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
> ---
>  tools/kvm/arm/aarch32/arm-cpu.c |    9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/kvm/arm/aarch32/arm-cpu.c b/tools/kvm/arm/aarch32/arm-cpu.c
> index 8817d2a..71b98fe 100644
> --- a/tools/kvm/arm/aarch32/arm-cpu.c
> +++ b/tools/kvm/arm/aarch32/arm-cpu.c
> @@ -28,8 +28,15 @@ static struct kvm_arm_target target_cortex_a15 = {
>  	.init		= arm_cpu__vcpu_init,
>  };
>  
> +static struct kvm_arm_target target_cortex_a7 = {
> +	.id		= KVM_ARM_TARGET_CORTEX_A7,
> +	.compatible	= "arm,cortex-a7",
> +	.init		= arm_cpu__vcpu_init,
> +};
> +
>  static int arm_cpu__core_init(struct kvm *kvm)
>  {
> -	return kvm_cpu__register_kvm_arm_target(&target_cortex_a15);
> +	return (kvm_cpu__register_kvm_arm_target(&target_cortex_a15) ||
> +		kvm_cpu__register_kvm_arm_target(&target_cortex_a7));

  Acked-by: Will Deacon <will.deacon@arm.com>

However, we should hold off applying this to kvmtool until
KVM_ARM_TARGET_CORTEX_A7 is defined in the kernel sources which it is
shipped with. Do you have an ETA on this change going into the mainline
kernel?

(in the meantime, I'm happy to stage stuff in my kvmtool/arm tree).

Will

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-09-30  9:38   ` Will Deacon
@ 2013-09-30 11:23     ` Pekka Enberg
  2013-09-30 13:26     ` Christoffer Dall
  1 sibling, 0 replies; 11+ messages in thread
From: Pekka Enberg @ 2013-09-30 11:23 UTC (permalink / raw)
  To: Will Deacon
  Cc: Jonathan Austin, kvm@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, Marc Zyngier,
	christoffer.dall@linaro.org, STFD002@freescale.com,
	ulrich.hecht@gmail.com

On Mon, Sep 30, 2013 at 12:38 PM, Will Deacon <will.deacon@arm.com> wrote:
> However, we should hold off applying this to kvmtool until
> KVM_ARM_TARGET_CORTEX_A7 is defined in the kernel sources which it is
> shipped with. Do you have an ETA on this change going into the mainline
> kernel?
>
> (in the meantime, I'm happy to stage stuff in my kvmtool/arm tree).

OK, I'll just wait for you or someone else to resend at a later time.

                           Pekka

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-09-30  9:38   ` Will Deacon
  2013-09-30 11:23     ` Pekka Enberg
@ 2013-09-30 13:26     ` Christoffer Dall
  2013-09-30 13:36       ` Peter Maydell
  2013-10-07 18:06       ` Will Deacon
  1 sibling, 2 replies; 11+ messages in thread
From: Christoffer Dall @ 2013-09-30 13:26 UTC (permalink / raw)
  To: Will Deacon
  Cc: Jonathan Austin, kvm@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, penberg@kernel.org, Marc Zyngier,
	STFD002@freescale.com, ulrich.hecht@gmail.com

On 30 September 2013 05:38, Will Deacon <will.deacon@arm.com> wrote:
> On Fri, Sep 27, 2013 at 06:38:52PM +0100, Jonathan Austin wrote:
>> The Cortex-A7 is very similar to the Cortex-A15 and as such there is very
>> little extra infrastructure required for KVM tool to be able to create
>> A7-guests.
>>
>> This patch adds the basic support and allows booting of A7 guests on A7
>> hosts. It depends on Cortex-A7 support patches posted recently to the kvmarm
>> list.
>>
>> Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
>> ---
>>  tools/kvm/arm/aarch32/arm-cpu.c |    9 ++++++++-
>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/tools/kvm/arm/aarch32/arm-cpu.c b/tools/kvm/arm/aarch32/arm-cpu.c
>> index 8817d2a..71b98fe 100644
>> --- a/tools/kvm/arm/aarch32/arm-cpu.c
>> +++ b/tools/kvm/arm/aarch32/arm-cpu.c
>> @@ -28,8 +28,15 @@ static struct kvm_arm_target target_cortex_a15 = {
>>       .init           = arm_cpu__vcpu_init,
>>  };
>>
>> +static struct kvm_arm_target target_cortex_a7 = {
>> +     .id             = KVM_ARM_TARGET_CORTEX_A7,
>> +     .compatible     = "arm,cortex-a7",
>> +     .init           = arm_cpu__vcpu_init,
>> +};
>> +
>>  static int arm_cpu__core_init(struct kvm *kvm)
>>  {
>> -     return kvm_cpu__register_kvm_arm_target(&target_cortex_a15);
>> +     return (kvm_cpu__register_kvm_arm_target(&target_cortex_a15) ||
>> +             kvm_cpu__register_kvm_arm_target(&target_cortex_a7));
>
>   Acked-by: Will Deacon <will.deacon@arm.com>
>
> However, we should hold off applying this to kvmtool until
> KVM_ARM_TARGET_CORTEX_A7 is defined in the kernel sources which it is
> shipped with. Do you have an ETA on this change going into the mainline
> kernel?
>
I plan to merge during next merge window.

-Christoffer

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-09-30 13:26     ` Christoffer Dall
@ 2013-09-30 13:36       ` Peter Maydell
  2013-09-30 13:54         ` Christoffer Dall
  2013-10-07 18:06       ` Will Deacon
  1 sibling, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2013-09-30 13:36 UTC (permalink / raw)
  To: Christoffer Dall
  Cc: Will Deacon, Jonathan Austin, kvm@vger.kernel.org, Marc Zyngier,
	penberg@kernel.org, ulrich.hecht@gmail.com, STFD002@freescale.com,
	kvmarm@lists.cs.columbia.edu

On 30 September 2013 22:26, Christoffer Dall
<christoffer.dall@linaro.org> wrote:
> On 30 September 2013 05:38, Will Deacon <will.deacon@arm.com> wrote:
>> However, we should hold off applying this to kvmtool until
>> KVM_ARM_TARGET_CORTEX_A7 is defined in the kernel sources which it is
>> shipped with. Do you have an ETA on this change going into the mainline
>> kernel?
>>
> I plan to merge during next merge window.

Reminder, after cpu-host, please :-)

-- PMM

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-09-30 13:36       ` Peter Maydell
@ 2013-09-30 13:54         ` Christoffer Dall
  2013-09-30 14:00           ` Marc Zyngier
  0 siblings, 1 reply; 11+ messages in thread
From: Christoffer Dall @ 2013-09-30 13:54 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Will Deacon, Jonathan Austin, kvm@vger.kernel.org, Marc Zyngier,
	penberg@kernel.org, ulrich.hecht@gmail.com, STFD002@freescale.com,
	kvmarm@lists.cs.columbia.edu

On Mon, Sep 30, 2013 at 10:36:20PM +0900, Peter Maydell wrote:
> On 30 September 2013 22:26, Christoffer Dall
> <christoffer.dall@linaro.org> wrote:
> > On 30 September 2013 05:38, Will Deacon <will.deacon@arm.com> wrote:
> >> However, we should hold off applying this to kvmtool until
> >> KVM_ARM_TARGET_CORTEX_A7 is defined in the kernel sources which it is
> >> shipped with. Do you have an ETA on this change going into the mainline
> >> kernel?
> >>
> > I plan to merge during next merge window.
> 
> Reminder, after cpu-host, please :-)
> 
Yes, plan to merge that one too, I have to re-read Anup's final patch
series later today, but I don't anticipate any more problems there.

Marc?

-Christoffer

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-09-30 13:54         ` Christoffer Dall
@ 2013-09-30 14:00           ` Marc Zyngier
  0 siblings, 0 replies; 11+ messages in thread
From: Marc Zyngier @ 2013-09-30 14:00 UTC (permalink / raw)
  To: Christoffer Dall
  Cc: Peter Maydell, Will Deacon, Jonathan Austin, kvm@vger.kernel.org,
	penberg@kernel.org, ulrich.hecht@gmail.com, STFD002@freescale.com,
	kvmarm@lists.cs.columbia.edu

On 30/09/13 14:54, Christoffer Dall wrote:
> On Mon, Sep 30, 2013 at 10:36:20PM +0900, Peter Maydell wrote:
>> On 30 September 2013 22:26, Christoffer Dall
>> <christoffer.dall@linaro.org> wrote:
>>> On 30 September 2013 05:38, Will Deacon <will.deacon@arm.com> wrote:
>>>> However, we should hold off applying this to kvmtool until
>>>> KVM_ARM_TARGET_CORTEX_A7 is defined in the kernel sources which it is
>>>> shipped with. Do you have an ETA on this change going into the mainline
>>>> kernel?
>>>>
>>> I plan to merge during next merge window.
>>
>> Reminder, after cpu-host, please :-)
>>
> Yes, plan to merge that one too, I have to re-read Anup's final patch
> series later today, but I don't anticipate any more problems there.
> 
> Marc?

Still need to go through the patches, but it hopefully should be OK this
time.

	M.
-- 
Jazz is not dead. It just smells funny...


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-09-30 13:26     ` Christoffer Dall
  2013-09-30 13:36       ` Peter Maydell
@ 2013-10-07 18:06       ` Will Deacon
  2013-10-11 18:18         ` Christoffer Dall
  1 sibling, 1 reply; 11+ messages in thread
From: Will Deacon @ 2013-10-07 18:06 UTC (permalink / raw)
  To: Christoffer Dall
  Cc: Jonathan Austin, kvm@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, penberg@kernel.org, Marc Zyngier,
	STFD002@freescale.com, ulrich.hecht@gmail.com

On Mon, Sep 30, 2013 at 02:26:16PM +0100, Christoffer Dall wrote:
> On 30 September 2013 05:38, Will Deacon <will.deacon@arm.com> wrote:
> > On Fri, Sep 27, 2013 at 06:38:52PM +0100, Jonathan Austin wrote:
> >> The Cortex-A7 is very similar to the Cortex-A15 and as such there is very
> >> little extra infrastructure required for KVM tool to be able to create
> >> A7-guests.
> >>
> >> This patch adds the basic support and allows booting of A7 guests on A7
> >> hosts. It depends on Cortex-A7 support patches posted recently to the kvmarm
> >> list.
> >>
> >> Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>

[...]

> > However, we should hold off applying this to kvmtool until
> > KVM_ARM_TARGET_CORTEX_A7 is defined in the kernel sources which it is
> > shipped with. Do you have an ETA on this change going into the mainline
> > kernel?
> >
> I plan to merge during next merge window.

Great! Any chance you could publish them in your kvm-arm-next branch please?

Will

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7
  2013-10-07 18:06       ` Will Deacon
@ 2013-10-11 18:18         ` Christoffer Dall
  0 siblings, 0 replies; 11+ messages in thread
From: Christoffer Dall @ 2013-10-11 18:18 UTC (permalink / raw)
  To: Will Deacon
  Cc: Jonathan Austin, kvm@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, penberg@kernel.org, Marc Zyngier,
	STFD002@freescale.com, ulrich.hecht@gmail.com

On Mon, Oct 07, 2013 at 07:06:06PM +0100, Will Deacon wrote:
> On Mon, Sep 30, 2013 at 02:26:16PM +0100, Christoffer Dall wrote:
> > On 30 September 2013 05:38, Will Deacon <will.deacon@arm.com> wrote:
> > > On Fri, Sep 27, 2013 at 06:38:52PM +0100, Jonathan Austin wrote:
> > >> The Cortex-A7 is very similar to the Cortex-A15 and as such there is very
> > >> little extra infrastructure required for KVM tool to be able to create
> > >> A7-guests.
> > >>
> > >> This patch adds the basic support and allows booting of A7 guests on A7
> > >> hosts. It depends on Cortex-A7 support patches posted recently to the kvmarm
> > >> list.
> > >>
> > >> Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
> 
> [...]
> 
> > > However, we should hold off applying this to kvmtool until
> > > KVM_ARM_TARGET_CORTEX_A7 is defined in the kernel sources which it is
> > > shipped with. Do you have an ETA on this change going into the mainline
> > > kernel?
> > >
> > I plan to merge during next merge window.
> 
> Great! Any chance you could publish them in your kvm-arm-next branch please?
> 
Working on it, need to test them first, hopefully this weekend!
Otherwise Monday.

-Christoffer

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-10-11 18:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-27 17:38 [PATCH 0/2] kvm tools: arm: support Cortex-A7 CPUs Jonathan Austin
2013-09-27 17:38 ` [PATCH 1/2] kvm tools: arm: extract common timer support code for ARM cpus Jonathan Austin
2013-09-27 17:38 ` [PATCH 2/2] kvm tools: arm: add support for ARM Cortex-A7 Jonathan Austin
2013-09-30  9:38   ` Will Deacon
2013-09-30 11:23     ` Pekka Enberg
2013-09-30 13:26     ` Christoffer Dall
2013-09-30 13:36       ` Peter Maydell
2013-09-30 13:54         ` Christoffer Dall
2013-09-30 14:00           ` Marc Zyngier
2013-10-07 18:06       ` Will Deacon
2013-10-11 18:18         ` Christoffer Dall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).