All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups
@ 2012-05-18 16:01 Andreas Färber
  2012-05-18 16:01 ` [Qemu-devel] [PATCH qom-next v2 1/3] xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU Andreas Färber
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Andreas Färber @ 2012-05-18 16:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Igor Mitsyanko, Andreas Färber

Hello Peter,

This series completes the post-reset cleanups. Please ack.

Regards,
Andreas

Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Igor Mitsyanko <i.mitsyanko@samsung.com>

v1 -> v2:
* Drop typo patch - PMM does not want it in 1.1 and queued it in arm-devs.next.
* Many patches were cherry-picked to qom-next already.
* Don't touch first_cpu in hw/xilinx_zynq.c since there are pending patches
  to add SMP support there, in which case cpu would be the last CPU.

Andreas Färber (3):
  xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU
  arm_boot: Pass ARMCPU to arm_load_kernel()
  arm_pic: Pass ARMCPU to arm_pic_init_cpu()

 hw/arm-misc.h       |    4 ++--
 hw/arm_boot.c       |    4 ++--
 hw/arm_pic.c        |    8 +++++---
 hw/armv7m.c         |    2 +-
 hw/collie.c         |    2 +-
 hw/exynos4210.c     |    3 ++-
 hw/exynos4_boards.c |    4 ++--
 hw/highbank.c       |    7 +++----
 hw/integratorcp.c   |    4 ++--
 hw/mainstone.c      |    2 +-
 hw/musicpal.c       |    4 ++--
 hw/nseries.c        |    2 +-
 hw/omap1.c          |    2 +-
 hw/omap2.c          |    2 +-
 hw/omap_sx1.c       |    2 +-
 hw/palm.c           |    2 +-
 hw/realview.c       |    4 ++--
 hw/spitz.c          |    2 +-
 hw/strongarm.c      |    2 +-
 hw/tosa.c           |    2 +-
 hw/versatilepb.c    |    4 ++--
 hw/vexpress.c       |    6 +++---
 hw/xilinx_zynq.c    |   10 +++++-----
 hw/z2.c             |    2 +-
 24 files changed, 44 insertions(+), 42 deletions(-)

-- 
1.7.7

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

* [Qemu-devel] [PATCH qom-next v2 1/3] xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU
  2012-05-18 16:01 [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups Andreas Färber
@ 2012-05-18 16:01 ` Andreas Färber
  2012-05-21  1:02   ` Peter Crosthwaite
  2012-05-18 16:01 ` [Qemu-devel] [PATCH qom-next v2 2/3] arm_boot: Pass ARMCPU to arm_load_kernel() Andreas Färber
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Andreas Färber @ 2012-05-18 16:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Crosthwaite, peter.maydell, Andreas Färber

Needed for arm_load_kernel().

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/xilinx_zynq.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c
index 7290c64..68349e2 100644
--- a/hw/xilinx_zynq.c
+++ b/hw/xilinx_zynq.c
@@ -50,7 +50,7 @@ static void zynq_init(ram_addr_t ram_size, const char *boot_device,
                         const char *kernel_filename, const char *kernel_cmdline,
                         const char *initrd_filename, const char *cpu_model)
 {
-    CPUARMState *env = NULL;
+    ARMCPU *cpu;
     MemoryRegion *address_space_mem = get_system_memory();
     MemoryRegion *ext_ram = g_new(MemoryRegion, 1);
     MemoryRegion *ocm_ram = g_new(MemoryRegion, 1);
@@ -66,12 +66,12 @@ static void zynq_init(ram_addr_t ram_size, const char *boot_device,
         cpu_model = "cortex-a9";
     }
 
-    env = cpu_init(cpu_model);
-    if (!env) {
+    cpu = cpu_arm_init(cpu_model);
+    if (!cpu) {
         fprintf(stderr, "Unable to find CPU definition\n");
         exit(1);
     }
-    irqp = arm_pic_init_cpu(env);
+    irqp = arm_pic_init_cpu(&cpu->env);
     cpu_irq = irqp[ARM_PIC_CPU_IRQ];
 
     /* max 2GB ram */
-- 
1.7.7

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

* [Qemu-devel] [PATCH qom-next v2 2/3] arm_boot: Pass ARMCPU to arm_load_kernel()
  2012-05-18 16:01 [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups Andreas Färber
  2012-05-18 16:01 ` [Qemu-devel] [PATCH qom-next v2 1/3] xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU Andreas Färber
@ 2012-05-18 16:01 ` Andreas Färber
  2012-05-18 16:02 ` [Qemu-devel] [PATCH qom-next v2 3/3] arm_pic: Pass ARMCPU to arm_pic_init_cpu() Andreas Färber
  2012-05-23 15:05 ` [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups Andreas Färber
  3 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2012-05-18 16:01 UTC (permalink / raw)
  To: qemu-devel
  Cc: peter.maydell, Igor Mitsyanko, Mark Langsdorf, Evgeny Voevodin,
	Peter Crosthwaite, Jan Kiszka, Dmitry Solodkiy, Maksim Kozlov,
	Andreas Färber, Paul Brook

In particular this simplifies the &s->mpu->cpu->env expression again.

first_cpu and ->next_cpu are expected to be QOM'ified later.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Igor Mitsyanko <i.mitsyanko@samsung.com> (for exynos)
---
 hw/arm-misc.h       |    2 +-
 hw/arm_boot.c       |    4 ++--
 hw/collie.c         |    2 +-
 hw/exynos4_boards.c |    4 ++--
 hw/highbank.c       |    2 +-
 hw/integratorcp.c   |    2 +-
 hw/mainstone.c      |    2 +-
 hw/musicpal.c       |    2 +-
 hw/nseries.c        |    2 +-
 hw/omap_sx1.c       |    2 +-
 hw/palm.c           |    2 +-
 hw/realview.c       |    2 +-
 hw/spitz.c          |    2 +-
 hw/tosa.c           |    2 +-
 hw/versatilepb.c    |    2 +-
 hw/vexpress.c       |    2 +-
 hw/xilinx_zynq.c    |    2 +-
 hw/z2.c             |    2 +-
 18 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/hw/arm-misc.h b/hw/arm-misc.h
index bbd6fd3..b7f4c32 100644
--- a/hw/arm-misc.h
+++ b/hw/arm-misc.h
@@ -59,7 +59,7 @@ struct arm_boot_info {
     target_phys_addr_t initrd_size;
     target_phys_addr_t entry;
 };
-void arm_load_kernel(CPUARMState *env, struct arm_boot_info *info);
+void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info);
 
 /* Multiplication factor to convert from system clock ticks to qemu timer
    ticks.  */
diff --git a/hw/arm_boot.c b/hw/arm_boot.c
index 8eabfb2..d0e643b 100644
--- a/hw/arm_boot.c
+++ b/hw/arm_boot.c
@@ -303,9 +303,9 @@ static void do_cpu_reset(void *opaque)
     }
 }
 
-void arm_load_kernel(CPUARMState *env, struct arm_boot_info *info)
+void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info)
 {
-    ARMCPU *cpu = arm_env_get_cpu(env);
+    CPUARMState *env = &cpu->env;
     int kernel_size;
     int initrd_size;
     int n;
diff --git a/hw/collie.c b/hw/collie.c
index e6f8dbf..56f89a9 100644
--- a/hw/collie.c
+++ b/hw/collie.c
@@ -54,7 +54,7 @@ static void collie_init(ram_addr_t ram_size,
     collie_binfo.kernel_cmdline = kernel_cmdline;
     collie_binfo.initrd_filename = initrd_filename;
     collie_binfo.board_id = 0x208;
-    arm_load_kernel(&s->cpu->env, &collie_binfo);
+    arm_load_kernel(s->cpu, &collie_binfo);
 }
 
 static QEMUMachine collie_machine = {
diff --git a/hw/exynos4_boards.c b/hw/exynos4_boards.c
index ea32c51..e5c2a5f 100644
--- a/hw/exynos4_boards.c
+++ b/hw/exynos4_boards.c
@@ -138,7 +138,7 @@ static void nuri_init(ram_addr_t ram_size,
     exynos4_boards_init_common(kernel_filename, kernel_cmdline,
                 initrd_filename, EXYNOS4_BOARD_NURI);
 
-    arm_load_kernel(first_cpu, &exynos4_board_binfo);
+    arm_load_kernel(arm_env_get_cpu(first_cpu), &exynos4_board_binfo);
 }
 
 static void smdkc210_init(ram_addr_t ram_size,
@@ -151,7 +151,7 @@ static void smdkc210_init(ram_addr_t ram_size,
 
     lan9215_init(SMDK_LAN9118_BASE_ADDR,
             qemu_irq_invert(s->irq_table[exynos4210_get_irq(37, 1)]));
-    arm_load_kernel(first_cpu, &exynos4_board_binfo);
+    arm_load_kernel(arm_env_get_cpu(first_cpu), &exynos4_board_binfo);
 }
 
 static QEMUMachine exynos4_machines[EXYNOS4_NUM_OF_BOARDS] = {
diff --git a/hw/highbank.c b/hw/highbank.c
index 66ff042..a3901b0 100644
--- a/hw/highbank.c
+++ b/hw/highbank.c
@@ -318,7 +318,7 @@ static void highbank_init(ram_addr_t ram_size,
     highbank_binfo.loader_start = 0;
     highbank_binfo.write_secondary_boot = hb_write_secondary;
     highbank_binfo.secondary_cpu_reset_hook = hb_reset_secondary;
-    arm_load_kernel(first_cpu, &highbank_binfo);
+    arm_load_kernel(arm_env_get_cpu(first_cpu), &highbank_binfo);
 }
 
 static QEMUMachine highbank_machine = {
diff --git a/hw/integratorcp.c b/hw/integratorcp.c
index 46fd09d..e927012 100644
--- a/hw/integratorcp.c
+++ b/hw/integratorcp.c
@@ -502,7 +502,7 @@ static void integratorcp_init(ram_addr_t ram_size,
     integrator_binfo.kernel_filename = kernel_filename;
     integrator_binfo.kernel_cmdline = kernel_cmdline;
     integrator_binfo.initrd_filename = initrd_filename;
-    arm_load_kernel(&cpu->env, &integrator_binfo);
+    arm_load_kernel(cpu, &integrator_binfo);
 }
 
 static QEMUMachine integratorcp_machine = {
diff --git a/hw/mainstone.c b/hw/mainstone.c
index 17c68f6..97687b6 100644
--- a/hw/mainstone.c
+++ b/hw/mainstone.c
@@ -168,7 +168,7 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,
     mainstone_binfo.kernel_cmdline = kernel_cmdline;
     mainstone_binfo.initrd_filename = initrd_filename;
     mainstone_binfo.board_id = arm_id;
-    arm_load_kernel(&mpu->cpu->env, &mainstone_binfo);
+    arm_load_kernel(mpu->cpu, &mainstone_binfo);
 }
 
 static void mainstone_init(ram_addr_t ram_size,
diff --git a/hw/musicpal.c b/hw/musicpal.c
index b7fed39..cef847e 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -1651,7 +1651,7 @@ static void musicpal_init(ram_addr_t ram_size,
     musicpal_binfo.kernel_filename = kernel_filename;
     musicpal_binfo.kernel_cmdline = kernel_cmdline;
     musicpal_binfo.initrd_filename = initrd_filename;
-    arm_load_kernel(&cpu->env, &musicpal_binfo);
+    arm_load_kernel(cpu, &musicpal_binfo);
 }
 
 static QEMUMachine musicpal_machine = {
diff --git a/hw/nseries.c b/hw/nseries.c
index b199cb9..fcc8546 100644
--- a/hw/nseries.c
+++ b/hw/nseries.c
@@ -1329,7 +1329,7 @@ static void n8x0_init(ram_addr_t ram_size, const char *boot_device,
         binfo->kernel_filename = kernel_filename;
         binfo->kernel_cmdline = kernel_cmdline;
         binfo->initrd_filename = initrd_filename;
-        arm_load_kernel(&s->mpu->cpu->env, binfo);
+        arm_load_kernel(s->mpu->cpu, binfo);
 
         qemu_register_reset(n8x0_boot_init, s);
     }
diff --git a/hw/omap_sx1.c b/hw/omap_sx1.c
index b64e1eb..abca341 100644
--- a/hw/omap_sx1.c
+++ b/hw/omap_sx1.c
@@ -202,7 +202,7 @@ static void sx1_init(ram_addr_t ram_size,
         sx1_binfo.kernel_filename = kernel_filename;
         sx1_binfo.kernel_cmdline = kernel_cmdline;
         sx1_binfo.initrd_filename = initrd_filename;
-        arm_load_kernel(&mpu->cpu->env, &sx1_binfo);
+        arm_load_kernel(mpu->cpu, &sx1_binfo);
     }
 
     /* TODO: fix next line */
diff --git a/hw/palm.c b/hw/palm.c
index 1375b19..bacdc90 100644
--- a/hw/palm.c
+++ b/hw/palm.c
@@ -265,7 +265,7 @@ static void palmte_init(ram_addr_t ram_size,
         palmte_binfo.kernel_filename = kernel_filename;
         palmte_binfo.kernel_cmdline = kernel_cmdline;
         palmte_binfo.initrd_filename = initrd_filename;
-        arm_load_kernel(&mpu->cpu->env, &palmte_binfo);
+        arm_load_kernel(mpu->cpu, &palmte_binfo);
     }
 
     /* FIXME: We shouldn't really be doing this here.  The LCD controller
diff --git a/hw/realview.c b/hw/realview.c
index 583993c..38085f1 100644
--- a/hw/realview.c
+++ b/hw/realview.c
@@ -327,7 +327,7 @@ static void realview_init(ram_addr_t ram_size,
     realview_binfo.nb_cpus = smp_cpus;
     realview_binfo.board_id = realview_board_id[board_type];
     realview_binfo.loader_start = (board_type == BOARD_PB_A8 ? 0x70000000 : 0);
-    arm_load_kernel(first_cpu, &realview_binfo);
+    arm_load_kernel(arm_env_get_cpu(first_cpu), &realview_binfo);
 }
 
 static void realview_eb_init(ram_addr_t ram_size,
diff --git a/hw/spitz.c b/hw/spitz.c
index d320633..20e7835 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -932,7 +932,7 @@ static void spitz_common_init(ram_addr_t ram_size,
     spitz_binfo.kernel_cmdline = kernel_cmdline;
     spitz_binfo.initrd_filename = initrd_filename;
     spitz_binfo.board_id = arm_id;
-    arm_load_kernel(&mpu->cpu->env, &spitz_binfo);
+    arm_load_kernel(mpu->cpu, &spitz_binfo);
     sl_bootparam_write(SL_PXA_PARAM_BASE);
 }
 
diff --git a/hw/tosa.c b/hw/tosa.c
index 8bae80d..297a8c2 100644
--- a/hw/tosa.c
+++ b/hw/tosa.c
@@ -242,7 +242,7 @@ static void tosa_init(ram_addr_t ram_size,
     tosa_binfo.kernel_cmdline = kernel_cmdline;
     tosa_binfo.initrd_filename = initrd_filename;
     tosa_binfo.board_id = 0x208;
-    arm_load_kernel(&mpu->cpu->env, &tosa_binfo);
+    arm_load_kernel(mpu->cpu, &tosa_binfo);
     sl_bootparam_write(SL_PXA_PARAM_BASE);
 }
 
diff --git a/hw/versatilepb.c b/hw/versatilepb.c
index d567af9..ed54fdd 100644
--- a/hw/versatilepb.c
+++ b/hw/versatilepb.c
@@ -339,7 +339,7 @@ static void versatile_init(ram_addr_t ram_size,
     versatile_binfo.kernel_cmdline = kernel_cmdline;
     versatile_binfo.initrd_filename = initrd_filename;
     versatile_binfo.board_id = board_id;
-    arm_load_kernel(&cpu->env, &versatile_binfo);
+    arm_load_kernel(cpu, &versatile_binfo);
 }
 
 static void vpb_init(ram_addr_t ram_size,
diff --git a/hw/vexpress.c b/hw/vexpress.c
index e957f43..4797c6a 100644
--- a/hw/vexpress.c
+++ b/hw/vexpress.c
@@ -438,7 +438,7 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard,
     vexpress_binfo.smp_loader_start = map[VE_SRAM];
     vexpress_binfo.smp_bootreg_addr = map[VE_SYSREGS] + 0x30;
     vexpress_binfo.gic_cpu_if_addr = daughterboard->gic_cpu_if_addr;
-    arm_load_kernel(first_cpu, &vexpress_binfo);
+    arm_load_kernel(arm_env_get_cpu(first_cpu), &vexpress_binfo);
 }
 
 static void vexpress_a9_init(ram_addr_t ram_size,
diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c
index 68349e2..11026cb 100644
--- a/hw/xilinx_zynq.c
+++ b/hw/xilinx_zynq.c
@@ -137,7 +137,7 @@ static void zynq_init(ram_addr_t ram_size, const char *boot_device,
     zynq_binfo.nb_cpus = 1;
     zynq_binfo.board_id = 0xd32;
     zynq_binfo.loader_start = 0;
-    arm_load_kernel(first_cpu, &zynq_binfo);
+    arm_load_kernel(arm_env_get_cpu(first_cpu), &zynq_binfo);
 }
 
 static QEMUMachine zynq_machine = {
diff --git a/hw/z2.c b/hw/z2.c
index db25cdc..289cee9 100644
--- a/hw/z2.c
+++ b/hw/z2.c
@@ -363,7 +363,7 @@ static void z2_init(ram_addr_t ram_size,
         z2_binfo.kernel_cmdline = kernel_cmdline;
         z2_binfo.initrd_filename = initrd_filename;
         z2_binfo.board_id = 0x6dd;
-        arm_load_kernel(&mpu->cpu->env, &z2_binfo);
+        arm_load_kernel(mpu->cpu, &z2_binfo);
     }
 }
 
-- 
1.7.7

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

* [Qemu-devel] [PATCH qom-next v2 3/3] arm_pic: Pass ARMCPU to arm_pic_init_cpu()
  2012-05-18 16:01 [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups Andreas Färber
  2012-05-18 16:01 ` [Qemu-devel] [PATCH qom-next v2 1/3] xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU Andreas Färber
  2012-05-18 16:01 ` [Qemu-devel] [PATCH qom-next v2 2/3] arm_boot: Pass ARMCPU to arm_load_kernel() Andreas Färber
@ 2012-05-18 16:02 ` Andreas Färber
  2012-05-23 15:05 ` [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups Andreas Färber
  3 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2012-05-18 16:02 UTC (permalink / raw)
  To: qemu-devel
  Cc: peter.maydell, Igor Mitsyanko, Mark Langsdorf, Evgeny Voevodin,
	Peter Crosthwaite, Jan Kiszka, Dmitry Solodkiy, Maksim Kozlov,
	Andreas Färber, Paul Brook

Pass it through to arm_pic_cpu_handler().

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Igor Mitsyanko <i.mitsyanko@samsung.com> (for exynos)
---
 hw/arm-misc.h     |    2 +-
 hw/arm_pic.c      |    8 +++++---
 hw/armv7m.c       |    2 +-
 hw/exynos4210.c   |    3 ++-
 hw/highbank.c     |    5 ++---
 hw/integratorcp.c |    2 +-
 hw/musicpal.c     |    2 +-
 hw/omap1.c        |    2 +-
 hw/omap2.c        |    2 +-
 hw/realview.c     |    2 +-
 hw/strongarm.c    |    2 +-
 hw/versatilepb.c  |    2 +-
 hw/vexpress.c     |    4 ++--
 hw/xilinx_zynq.c  |    2 +-
 14 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/hw/arm-misc.h b/hw/arm-misc.h
index b7f4c32..1d51570 100644
--- a/hw/arm-misc.h
+++ b/hw/arm-misc.h
@@ -16,7 +16,7 @@
 /* The CPU is also modeled as an interrupt controller.  */
 #define ARM_PIC_CPU_IRQ 0
 #define ARM_PIC_CPU_FIQ 1
-qemu_irq *arm_pic_init_cpu(CPUARMState *env);
+qemu_irq *arm_pic_init_cpu(ARMCPU *cpu);
 
 /* armv7m.c */
 qemu_irq *armv7m_init(MemoryRegion *address_space_mem,
diff --git a/hw/arm_pic.c b/hw/arm_pic.c
index 1094965..ffb4d41 100644
--- a/hw/arm_pic.c
+++ b/hw/arm_pic.c
@@ -13,7 +13,9 @@
 /* Input 0 is IRQ and input 1 is FIQ.  */
 static void arm_pic_cpu_handler(void *opaque, int irq, int level)
 {
-    CPUARMState *env = (CPUARMState *)opaque;
+    ARMCPU *cpu = opaque;
+    CPUARMState *env = &cpu->env;
+
     switch (irq) {
     case ARM_PIC_CPU_IRQ:
         if (level)
@@ -32,7 +34,7 @@ static void arm_pic_cpu_handler(void *opaque, int irq, int level)
     }
 }
 
-qemu_irq *arm_pic_init_cpu(CPUARMState *env)
+qemu_irq *arm_pic_init_cpu(ARMCPU *cpu)
 {
-    return qemu_allocate_irqs(arm_pic_cpu_handler, env, 2);
+    return qemu_allocate_irqs(arm_pic_cpu_handler, cpu, 2);
 }
diff --git a/hw/armv7m.c b/hw/armv7m.c
index 418139a..8cec78d 100644
--- a/hw/armv7m.c
+++ b/hw/armv7m.c
@@ -215,7 +215,7 @@ qemu_irq *armv7m_init(MemoryRegion *address_space_mem,
     nvic = qdev_create(NULL, "armv7m_nvic");
     env->nvic = nvic;
     qdev_init_nofail(nvic);
-    cpu_pic = arm_pic_init_cpu(env);
+    cpu_pic = arm_pic_init_cpu(cpu);
     sysbus_connect_irq(sysbus_from_qdev(nvic), 0, cpu_pic[ARM_PIC_CPU_IRQ]);
     for (i = 0; i < 64; i++) {
         pic[i] = qdev_get_gpio_in(nvic, i);
diff --git a/hw/exynos4210.c b/hw/exynos4210.c
index 7dc3787..dd14d01 100644
--- a/hw/exynos4210.c
+++ b/hw/exynos4210.c
@@ -112,8 +112,9 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
             fprintf(stderr, "Unable to find CPU %d definition\n", n);
             exit(1);
         }
+
         /* Create PIC controller for each processor instance */
-        irqp = arm_pic_init_cpu(&s->cpu[n]->env);
+        irqp = arm_pic_init_cpu(s->cpu[n]);
 
         /*
          * Get GICs gpio_in cpu_irq to connect a combiner to them later.
diff --git a/hw/highbank.c b/hw/highbank.c
index a3901b0..4bdea5d 100644
--- a/hw/highbank.c
+++ b/hw/highbank.c
@@ -192,7 +192,6 @@ static void highbank_init(ram_addr_t ram_size,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename, const char *cpu_model)
 {
-    CPUARMState *env = NULL;
     DeviceState *dev;
     SysBusDevice *busdev;
     qemu_irq *irqp;
@@ -215,10 +214,10 @@ static void highbank_init(ram_addr_t ram_size,
             fprintf(stderr, "Unable to find CPU definition\n");
             exit(1);
         }
-        env = &cpu->env;
+
         /* This will become a QOM property eventually */
         cpu->reset_cbar = GIC_BASE_ADDR;
-        irqp = arm_pic_init_cpu(env);
+        irqp = arm_pic_init_cpu(cpu);
         cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
     }
 
diff --git a/hw/integratorcp.c b/hw/integratorcp.c
index e927012..deacbf4 100644
--- a/hw/integratorcp.c
+++ b/hw/integratorcp.c
@@ -476,7 +476,7 @@ static void integratorcp_init(ram_addr_t ram_size,
     qdev_init_nofail(dev);
     sysbus_mmio_map((SysBusDevice *)dev, 0, 0x10000000);
 
-    cpu_pic = arm_pic_init_cpu(&cpu->env);
+    cpu_pic = arm_pic_init_cpu(cpu);
     dev = sysbus_create_varargs("integrator_pic", 0x14000000,
                                 cpu_pic[ARM_PIC_CPU_IRQ],
                                 cpu_pic[ARM_PIC_CPU_FIQ], NULL);
diff --git a/hw/musicpal.c b/hw/musicpal.c
index cef847e..f14f20d 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -1538,7 +1538,7 @@ static void musicpal_init(ram_addr_t ram_size,
         fprintf(stderr, "Unable to find CPU definition\n");
         exit(1);
     }
-    cpu_pic = arm_pic_init_cpu(&cpu->env);
+    cpu_pic = arm_pic_init_cpu(cpu);
 
     /* For now we use a fixed - the original - RAM size */
     memory_region_init_ram(ram, "musicpal.ram", MP_RAM_DEFAULT_SIZE);
diff --git a/hw/omap1.c b/hw/omap1.c
index a997d30..ad60cc4 100644
--- a/hw/omap1.c
+++ b/hw/omap1.c
@@ -3854,7 +3854,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
 
     omap_clkm_init(system_memory, 0xfffece00, 0xe1008000, s);
 
-    cpu_irq = arm_pic_init_cpu(&s->cpu->env);
+    cpu_irq = arm_pic_init_cpu(s->cpu);
     s->ih[0] = qdev_create(NULL, "omap-intc");
     qdev_prop_set_uint32(s->ih[0], "size", 0x100);
     qdev_prop_set_ptr(s->ih[0], "clk", omap_findclk(s, "arminth_ck"));
diff --git a/hw/omap2.c b/hw/omap2.c
index 196c4b6..4278dd1 100644
--- a/hw/omap2.c
+++ b/hw/omap2.c
@@ -2277,7 +2277,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegion *sysmem,
     s->l4 = omap_l4_init(sysmem, OMAP2_L4_BASE, 54);
 
     /* Actually mapped at any 2K boundary in the ARM11 private-peripheral if */
-    cpu_irq = arm_pic_init_cpu(&s->cpu->env);
+    cpu_irq = arm_pic_init_cpu(s->cpu);
     s->ih[0] = qdev_create(NULL, "omap2-intc");
     qdev_prop_set_uint8(s->ih[0], "revision", 0x21);
     qdev_prop_set_ptr(s->ih[0], "fclk", omap_findclk(s, "mpu_intc_fclk"));
diff --git a/hw/realview.c b/hw/realview.c
index 38085f1..19db4d0 100644
--- a/hw/realview.c
+++ b/hw/realview.c
@@ -94,7 +94,7 @@ static void realview_init(ram_addr_t ram_size,
             fprintf(stderr, "Unable to find CPU definition\n");
             exit(1);
         }
-        irqp = arm_pic_init_cpu(&cpu->env);
+        irqp = arm_pic_init_cpu(cpu);
         cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
     }
     env = &cpu->env;
diff --git a/hw/strongarm.c b/hw/strongarm.c
index 38b1d0c..7150eeb 100644
--- a/hw/strongarm.c
+++ b/hw/strongarm.c
@@ -1574,7 +1574,7 @@ StrongARMState *sa1110_init(MemoryRegion *sysmem,
     vmstate_register_ram_global(&s->sdram);
     memory_region_add_subregion(sysmem, SA_SDCS0, &s->sdram);
 
-    pic = arm_pic_init_cpu(&s->cpu->env);
+    pic = arm_pic_init_cpu(s->cpu);
     s->pic = sysbus_create_varargs("strongarm_pic", 0x90050000,
                     pic[ARM_PIC_CPU_IRQ], pic[ARM_PIC_CPU_FIQ], NULL);
 
diff --git a/hw/versatilepb.c b/hw/versatilepb.c
index ed54fdd..4fd5d9b 100644
--- a/hw/versatilepb.c
+++ b/hw/versatilepb.c
@@ -209,7 +209,7 @@ static void versatile_init(ram_addr_t ram_size,
     qdev_init_nofail(sysctl);
     sysbus_mmio_map(sysbus_from_qdev(sysctl), 0, 0x10000000);
 
-    cpu_pic = arm_pic_init_cpu(&cpu->env);
+    cpu_pic = arm_pic_init_cpu(cpu);
     dev = sysbus_create_varargs("pl190", 0x10140000,
                                 cpu_pic[0], cpu_pic[1], NULL);
     for (n = 0; n < 32; n++) {
diff --git a/hw/vexpress.c b/hw/vexpress.c
index 4797c6a..8072c5a 100644
--- a/hw/vexpress.c
+++ b/hw/vexpress.c
@@ -181,7 +181,7 @@ static void a9_daughterboard_init(const VEDBoardInfo *daughterboard,
             fprintf(stderr, "Unable to find CPU definition\n");
             exit(1);
         }
-        irqp = arm_pic_init_cpu(&cpu->env);
+        irqp = arm_pic_init_cpu(cpu);
         cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
     }
 
@@ -280,7 +280,7 @@ static void a15_daughterboard_init(const VEDBoardInfo *daughterboard,
             fprintf(stderr, "Unable to find CPU definition\n");
             exit(1);
         }
-        irqp = arm_pic_init_cpu(&cpu->env);
+        irqp = arm_pic_init_cpu(cpu);
         cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
     }
 
diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c
index 11026cb..7e6c273 100644
--- a/hw/xilinx_zynq.c
+++ b/hw/xilinx_zynq.c
@@ -71,7 +71,7 @@ static void zynq_init(ram_addr_t ram_size, const char *boot_device,
         fprintf(stderr, "Unable to find CPU definition\n");
         exit(1);
     }
-    irqp = arm_pic_init_cpu(&cpu->env);
+    irqp = arm_pic_init_cpu(cpu);
     cpu_irq = irqp[ARM_PIC_CPU_IRQ];
 
     /* max 2GB ram */
-- 
1.7.7

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

* Re: [Qemu-devel] [PATCH qom-next v2 1/3] xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU
  2012-05-18 16:01 ` [Qemu-devel] [PATCH qom-next v2 1/3] xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU Andreas Färber
@ 2012-05-21  1:02   ` Peter Crosthwaite
  2012-05-21  8:43     ` Andreas Färber
  0 siblings, 1 reply; 7+ messages in thread
From: Peter Crosthwaite @ 2012-05-21  1:02 UTC (permalink / raw)
  To: Andreas Färber; +Cc: peter.maydell, qemu-devel

Cant see it affecting the change pattern to the zynq boot though, so
theres no blocker.

Acked-by: Peter A.G. Crosthwaite <peter.crosthwaite@petalogix.com>

On Sat, May 19, 2012 at 2:01 AM, Andreas Färber <afaerber@suse.de> wrote:
> Needed for arm_load_kernel().
>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  hw/xilinx_zynq.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c
> index 7290c64..68349e2 100644
> --- a/hw/xilinx_zynq.c
> +++ b/hw/xilinx_zynq.c
> @@ -50,7 +50,7 @@ static void zynq_init(ram_addr_t ram_size, const char *boot_device,
>                         const char *kernel_filename, const char *kernel_cmdline,
>                         const char *initrd_filename, const char *cpu_model)
>  {
> -    CPUARMState *env = NULL;
> +    ARMCPU *cpu;
>     MemoryRegion *address_space_mem = get_system_memory();
>     MemoryRegion *ext_ram = g_new(MemoryRegion, 1);
>     MemoryRegion *ocm_ram = g_new(MemoryRegion, 1);
> @@ -66,12 +66,12 @@ static void zynq_init(ram_addr_t ram_size, const char *boot_device,
>         cpu_model = "cortex-a9";
>     }
>
> -    env = cpu_init(cpu_model);
> -    if (!env) {
> +    cpu = cpu_arm_init(cpu_model);
> +    if (!cpu) {
>         fprintf(stderr, "Unable to find CPU definition\n");
>         exit(1);
>     }
> -    irqp = arm_pic_init_cpu(env);
> +    irqp = arm_pic_init_cpu(&cpu->env);
>     cpu_irq = irqp[ARM_PIC_CPU_IRQ];
>
>     /* max 2GB ram */
> --
> 1.7.7
>

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

* Re: [Qemu-devel] [PATCH qom-next v2 1/3] xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU
  2012-05-21  1:02   ` Peter Crosthwaite
@ 2012-05-21  8:43     ` Andreas Färber
  0 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2012-05-21  8:43 UTC (permalink / raw)
  To: Peter Crosthwaite; +Cc: peter.maydell, qemu-devel

Am 21.05.2012 03:02, schrieb Peter Crosthwaite:
> Cant see it affecting the change pattern to the zynq boot though, so
> theres no blocker.
> 
> Acked-by: Peter A.G. Crosthwaite <peter.crosthwaite@petalogix.com>
> 
> On Sat, May 19, 2012 at 2:01 AM, Andreas Färber <afaerber@suse.de> wrote:
>> Needed for arm_load_kernel().
>>
>> Signed-off-by: Andreas Färber <afaerber@suse.de>
>> ---
>>  hw/xilinx_zynq.c |    8 ++++----
>>  1 files changed, 4 insertions(+), 4 deletions(-)

Thanks, applied to qom-next:
http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-next

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

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

* Re: [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups
  2012-05-18 16:01 [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups Andreas Färber
                   ` (2 preceding siblings ...)
  2012-05-18 16:02 ` [Qemu-devel] [PATCH qom-next v2 3/3] arm_pic: Pass ARMCPU to arm_pic_init_cpu() Andreas Färber
@ 2012-05-23 15:05 ` Andreas Färber
  3 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2012-05-23 15:05 UTC (permalink / raw)
  To: peter.maydell; +Cc: Igor Mitsyanko, qemu-devel

Am 18.05.2012 18:01, schrieb Andreas Färber:
> Hello Peter,
> 
> This series completes the post-reset cleanups. Please ack.
> 
> Regards,
> Andreas
> 
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Igor Mitsyanko <i.mitsyanko@samsung.com>
> 
> v1 -> v2:
> * Drop typo patch - PMM does not want it in 1.1 and queued it in arm-devs.next.
> * Many patches were cherry-picked to qom-next already.
> * Don't touch first_cpu in hw/xilinx_zynq.c since there are pending patches
>   to add SMP support there, in which case cpu would be the last CPU.
> 
> Andreas Färber (3):
>   xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU
>   arm_boot: Pass ARMCPU to arm_load_kernel()
>   arm_pic: Pass ARMCPU to arm_pic_init_cpu()

Peter ack'ed the updated 2/3 on IRC. Thanks, applied to qom-next:
http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-next

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

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

end of thread, other threads:[~2012-05-23 15:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-18 16:01 [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups Andreas Färber
2012-05-18 16:01 ` [Qemu-devel] [PATCH qom-next v2 1/3] xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU Andreas Färber
2012-05-21  1:02   ` Peter Crosthwaite
2012-05-21  8:43     ` Andreas Färber
2012-05-18 16:01 ` [Qemu-devel] [PATCH qom-next v2 2/3] arm_boot: Pass ARMCPU to arm_load_kernel() Andreas Färber
2012-05-18 16:02 ` [Qemu-devel] [PATCH qom-next v2 3/3] arm_pic: Pass ARMCPU to arm_pic_init_cpu() Andreas Färber
2012-05-23 15:05 ` [Qemu-devel] [PATCH qom-next v2 0/3] ARM: QOM cpu_reset() followups Andreas Färber

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.