All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs
@ 2012-10-23 17:04 Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 1/7] hw/vexpress.c: Don't " Peter Maydell
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Peter Maydell @ 2012-10-23 17:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost, patches

A lot of the ARM board models follow the pattern of having a
single common init function which is called with various
parameters from the QEMUMachine init function for several board
model variants. The change to QEMUMachineInitArgs in commit 5f072e
took the fairly mechanical approach of splitting the QEMUMachineInitArgs
fields out in each variant's init function to pass to an unchanged
common init function. This is a bit repetitive, so clean them up
to just pass the QEMUMachineInitArgs directly to the common
function instead.

Peter Maydell (7):
  hw/vexpress.c: Don't prematurely explode QEMUMachineInitArgs
  hw/realview.c: Don't prematurely explode QEMUMachineInitArgs
  hw/versatilepb: Don't prematurely explode QEMUMachineInitArgs
  hw/spitz: Don't prematurely explode QEMUMachineInitArgs
  hw/omap_sx1: Don't prematurely explode QEMUMachineInitArgs
  hw/nseries: Don't prematurely explode QEMUMachineInitArgs
  hw/mainstone: Don't prematurely explode QEMUMachineInitArgs

 hw/mainstone.c   |   21 ++++++-----------
 hw/nseries.c     |   39 +++++++++----------------------
 hw/omap_sx1.c    |   36 ++++++++---------------------
 hw/realview.c    |   68 +++++++++++++++---------------------------------------
 hw/spitz.c       |   45 ++++++++----------------------------
 hw/versatilepb.c |   44 +++++++++--------------------------
 hw/vexpress.c    |   38 ++++++++----------------------
 7 files changed, 76 insertions(+), 215 deletions(-)

-- 
1.7.9.5

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

* [Qemu-devel] [PATCH 1/7] hw/vexpress.c: Don't prematurely explode QEMUMachineInitArgs
  2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
@ 2012-10-23 17:04 ` Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 2/7] hw/realview.c: " Peter Maydell
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2012-10-23 17:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost, patches

Don't explode QEMUMachineInitArgs before passing it to the vexpress
common init function.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/vexpress.c |   38 +++++++++-----------------------------
 1 file changed, 9 insertions(+), 29 deletions(-)

diff --git a/hw/vexpress.c b/hw/vexpress.c
index 36503d6..cd5aafc 100644
--- a/hw/vexpress.c
+++ b/hw/vexpress.c
@@ -348,12 +348,7 @@ static const VEDBoardInfo a15_daughterboard = {
 };
 
 static void vexpress_common_init(const VEDBoardInfo *daughterboard,
-                                 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)
+                                 QEMUMachineInitArgs *args)
 {
     DeviceState *dev, *sysctl, *pl041;
     qemu_irq pic[64];
@@ -366,7 +361,8 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard,
     MemoryRegion *sram = g_new(MemoryRegion, 1);
     const target_phys_addr_t *map = daughterboard->motherboard_map;
 
-    daughterboard->init(daughterboard, ram_size, cpu_model, pic, &proc_id);
+    daughterboard->init(daughterboard, args->ram_size, args->cpu_model,
+                        pic, &proc_id);
 
     /* Motherboard peripherals: the wiring is the same but the
      * addresses vary between the legacy and A-Series memory maps.
@@ -454,10 +450,10 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard,
 
     /* VE_DAPROM: not modelled */
 
-    vexpress_binfo.ram_size = ram_size;
-    vexpress_binfo.kernel_filename = kernel_filename;
-    vexpress_binfo.kernel_cmdline = kernel_cmdline;
-    vexpress_binfo.initrd_filename = initrd_filename;
+    vexpress_binfo.ram_size = args->ram_size;
+    vexpress_binfo.kernel_filename = args->kernel_filename;
+    vexpress_binfo.kernel_cmdline = args->kernel_cmdline;
+    vexpress_binfo.initrd_filename = args->initrd_filename;
     vexpress_binfo.nb_cpus = smp_cpus;
     vexpress_binfo.board_id = VEXPRESS_BOARD_ID;
     vexpress_binfo.loader_start = daughterboard->loader_start;
@@ -469,28 +465,12 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard,
 
 static void vexpress_a9_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    vexpress_common_init(&a9_daughterboard,
-                         ram_size, boot_device, kernel_filename,
-                         kernel_cmdline, initrd_filename, cpu_model);
+    vexpress_common_init(&a9_daughterboard, args);
 }
 
 static void vexpress_a15_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    vexpress_common_init(&a15_daughterboard,
-                         ram_size, boot_device, kernel_filename,
-                         kernel_cmdline, initrd_filename, cpu_model);
+    vexpress_common_init(&a15_daughterboard, args);
 }
 
 static QEMUMachine vexpress_a9_machine = {
-- 
1.7.9.5

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

* [Qemu-devel] [PATCH 2/7] hw/realview.c: Don't prematurely explode QEMUMachineInitArgs
  2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 1/7] hw/vexpress.c: Don't " Peter Maydell
@ 2012-10-23 17:04 ` Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 3/7] hw/versatilepb: " Peter Maydell
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2012-10-23 17:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost, patches

Don't explode QEMUMachineInitArgs in every realview init
function; just pass it to the common realview_init() code
instead.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/realview.c |   68 ++++++++++++++++-----------------------------------------
 1 file changed, 19 insertions(+), 49 deletions(-)

diff --git a/hw/realview.c b/hw/realview.c
index 8dc4be6..d9ece2f 100644
--- a/hw/realview.c
+++ b/hw/realview.c
@@ -44,11 +44,8 @@ static const int realview_board_id[] = {
     0x76d
 };
 
-static void realview_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,
-                     enum realview_board_type board_type)
+static void realview_init(QEMUMachineInitArgs *args,
+                          enum realview_board_type board_type)
 {
     ARMCPU *cpu = NULL;
     CPUARMState *env;
@@ -73,6 +70,7 @@ static void realview_init(ram_addr_t ram_size,
     uint32_t proc_id = 0;
     uint32_t sys_id;
     ram_addr_t low_ram_size;
+    ram_addr_t ram_size = args->ram_size;
 
     switch (board_type) {
     case BOARD_EB:
@@ -89,7 +87,7 @@ static void realview_init(ram_addr_t ram_size,
         break;
     }
     for (n = 0; n < smp_cpus; n++) {
-        cpu = cpu_arm_init(cpu_model);
+        cpu = cpu_arm_init(args->cpu_model);
         if (!cpu) {
             fprintf(stderr, "Unable to find CPU definition\n");
             exit(1);
@@ -321,9 +319,9 @@ static void realview_init(ram_addr_t ram_size,
     memory_region_add_subregion(sysmem, SMP_BOOT_ADDR, ram_hack);
 
     realview_binfo.ram_size = ram_size;
-    realview_binfo.kernel_filename = kernel_filename;
-    realview_binfo.kernel_cmdline = kernel_cmdline;
-    realview_binfo.initrd_filename = initrd_filename;
+    realview_binfo.kernel_filename = args->kernel_filename;
+    realview_binfo.kernel_cmdline = args->kernel_cmdline;
+    realview_binfo.initrd_filename = args->initrd_filename;
     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);
@@ -332,62 +330,34 @@ static void realview_init(ram_addr_t ram_size,
 
 static void realview_eb_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    if (!cpu_model) {
-        cpu_model = "arm926";
+    if (!args->cpu_model) {
+        args->cpu_model = "arm926";
     }
-    realview_init(ram_size, boot_device, kernel_filename, kernel_cmdline,
-                  initrd_filename, cpu_model, BOARD_EB);
+    realview_init(args, BOARD_EB);
 }
 
 static void realview_eb_mpcore_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    if (!cpu_model) {
-        cpu_model = "arm11mpcore";
+    if (!args->cpu_model) {
+        args->cpu_model = "arm11mpcore";
     }
-    realview_init(ram_size, boot_device, kernel_filename, kernel_cmdline,
-                  initrd_filename, cpu_model, BOARD_EB_MPCORE);
+    realview_init(args, BOARD_EB_MPCORE);
 }
 
 static void realview_pb_a8_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    if (!cpu_model) {
-        cpu_model = "cortex-a8";
+    if (!args->cpu_model) {
+        args->cpu_model = "cortex-a8";
     }
-    realview_init(ram_size, boot_device, kernel_filename, kernel_cmdline,
-                  initrd_filename, cpu_model, BOARD_PB_A8);
+    realview_init(args, BOARD_PB_A8);
 }
 
 static void realview_pbx_a9_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    if (!cpu_model) {
-        cpu_model = "cortex-a9";
+    if (!args->cpu_model) {
+        args->cpu_model = "cortex-a9";
     }
-    realview_init(ram_size, boot_device, kernel_filename, kernel_cmdline,
-                  initrd_filename, cpu_model, BOARD_PBX_A9);
+    realview_init(args, BOARD_PBX_A9);
 }
 
 static QEMUMachine realview_eb_machine = {
-- 
1.7.9.5

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

* [Qemu-devel] [PATCH 3/7] hw/versatilepb: Don't prematurely explode QEMUMachineInitArgs
  2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 1/7] hw/vexpress.c: Don't " Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 2/7] hw/realview.c: " Peter Maydell
@ 2012-10-23 17:04 ` Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 4/7] hw/spitz: " Peter Maydell
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2012-10-23 17:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost, patches

Don't explode QEMUMachineInitArgs before passing it to the common
versatile init function.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/versatilepb.c |   44 +++++++++++---------------------------------
 1 file changed, 11 insertions(+), 33 deletions(-)

diff --git a/hw/versatilepb.c b/hw/versatilepb.c
index 756ec29..7001780 100644
--- a/hw/versatilepb.c
+++ b/hw/versatilepb.c
@@ -167,11 +167,7 @@ static int vpb_sic_init(SysBusDevice *dev)
 
 static struct arm_boot_info versatile_binfo;
 
-static void versatile_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,
-                     int board_id)
+static void versatile_init(QEMUMachineInitArgs *args, int board_id)
 {
     ARMCPU *cpu;
     MemoryRegion *sysmem = get_system_memory();
@@ -189,15 +185,15 @@ static void versatile_init(ram_addr_t ram_size,
     int done_smc = 0;
     DriveInfo *dinfo;
 
-    if (!cpu_model) {
-        cpu_model = "arm926";
+    if (!args->cpu_model) {
+        args->cpu_model = "arm926";
     }
-    cpu = cpu_arm_init(cpu_model);
+    cpu = cpu_arm_init(args->cpu_model);
     if (!cpu) {
         fprintf(stderr, "Unable to find CPU definition\n");
         exit(1);
     }
-    memory_region_init_ram(ram, "versatile.ram", ram_size);
+    memory_region_init_ram(ram, "versatile.ram", args->ram_size);
     vmstate_register_ram_global(ram);
     /* ??? RAM should repeat to fill physical memory space.  */
     /* SDRAM at address zero.  */
@@ -340,40 +336,22 @@ static void versatile_init(ram_addr_t ram_size,
         fprintf(stderr, "qemu: Error registering flash memory.\n");
     }
 
-    versatile_binfo.ram_size = ram_size;
-    versatile_binfo.kernel_filename = kernel_filename;
-    versatile_binfo.kernel_cmdline = kernel_cmdline;
-    versatile_binfo.initrd_filename = initrd_filename;
+    versatile_binfo.ram_size = args->ram_size;
+    versatile_binfo.kernel_filename = args->kernel_filename;
+    versatile_binfo.kernel_cmdline = args->kernel_cmdline;
+    versatile_binfo.initrd_filename = args->initrd_filename;
     versatile_binfo.board_id = board_id;
     arm_load_kernel(cpu, &versatile_binfo);
 }
 
 static void vpb_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    versatile_init(ram_size,
-                   boot_device,
-                   kernel_filename, kernel_cmdline,
-                   initrd_filename, cpu_model, 0x183);
+    versatile_init(args, 0x183);
 }
 
 static void vab_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    versatile_init(ram_size,
-                   boot_device,
-                   kernel_filename, kernel_cmdline,
-                   initrd_filename, cpu_model, 0x25e);
+    versatile_init(args, 0x25e);
 }
 
 static QEMUMachine versatilepb_machine = {
-- 
1.7.9.5

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

* [Qemu-devel] [PATCH 4/7] hw/spitz: Don't prematurely explode QEMUMachineInitArgs
  2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
                   ` (2 preceding siblings ...)
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 3/7] hw/versatilepb: " Peter Maydell
@ 2012-10-23 17:04 ` Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 5/7] hw/omap_sx1: " Peter Maydell
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2012-10-23 17:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost, patches

Don't explode QEMUMachineInitArgs before calling common init function.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/spitz.c |   45 ++++++++++-----------------------------------
 1 file changed, 10 insertions(+), 35 deletions(-)

diff --git a/hw/spitz.c b/hw/spitz.c
index 2942626..04f5e85 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -879,15 +879,14 @@ static struct arm_boot_info spitz_binfo = {
     .ram_size = 0x04000000,
 };
 
-static void spitz_common_init(ram_addr_t ram_size,
-                const char *kernel_filename,
-                const char *kernel_cmdline, const char *initrd_filename,
-                const char *cpu_model, enum spitz_model_e model, int arm_id)
+static void spitz_common_init(QEMUMachineInitArgs *args,
+                              enum spitz_model_e model, int arm_id)
 {
     PXA2xxState *mpu;
     DeviceState *scp0, *scp1 = NULL;
     MemoryRegion *address_space_mem = get_system_memory();
     MemoryRegion *rom = g_new(MemoryRegion, 1);
+    const char *cpu_model = args->cpu_model;
 
     if (!cpu_model)
         cpu_model = (model == terrier) ? "pxa270-c5" : "pxa270-c0";
@@ -928,9 +927,9 @@ static void spitz_common_init(ram_addr_t ram_size,
         /* A 4.0 GB microdrive is permanently sitting in CF slot 0.  */
         spitz_microdrive_attach(mpu, 0);
 
-    spitz_binfo.kernel_filename = kernel_filename;
-    spitz_binfo.kernel_cmdline = kernel_cmdline;
-    spitz_binfo.initrd_filename = initrd_filename;
+    spitz_binfo.kernel_filename = args->kernel_filename;
+    spitz_binfo.kernel_cmdline = args->kernel_cmdline;
+    spitz_binfo.initrd_filename = args->initrd_filename;
     spitz_binfo.board_id = arm_id;
     arm_load_kernel(mpu->cpu, &spitz_binfo);
     sl_bootparam_write(SL_PXA_PARAM_BASE);
@@ -938,46 +937,22 @@ static void spitz_common_init(ram_addr_t ram_size,
 
 static void spitz_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    spitz_common_init(ram_size, kernel_filename,
-                kernel_cmdline, initrd_filename, cpu_model, spitz, 0x2c9);
+    spitz_common_init(args, spitz, 0x2c9);
 }
 
 static void borzoi_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    spitz_common_init(ram_size, kernel_filename,
-                kernel_cmdline, initrd_filename, cpu_model, borzoi, 0x33f);
+    spitz_common_init(args, borzoi, 0x33f);
 }
 
 static void akita_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    spitz_common_init(ram_size, kernel_filename,
-                kernel_cmdline, initrd_filename, cpu_model, akita, 0x2e8);
+    spitz_common_init(args, akita, 0x2e8);
 }
 
 static void terrier_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    spitz_common_init(ram_size, kernel_filename,
-                kernel_cmdline, initrd_filename, cpu_model, terrier, 0x33f);
+    spitz_common_init(args, terrier, 0x33f);
 }
 
 static QEMUMachine akitapda_machine = {
-- 
1.7.9.5

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

* [Qemu-devel] [PATCH 5/7] hw/omap_sx1: Don't prematurely explode QEMUMachineInitArgs
  2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
                   ` (3 preceding siblings ...)
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 4/7] hw/spitz: " Peter Maydell
@ 2012-10-23 17:04 ` Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 6/7] hw/nseries: " Peter Maydell
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2012-10-23 17:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost, patches

Don't explode QEMUMachineInitArgs before passing it to the
omap_sx1 common init function.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/omap_sx1.c |   36 +++++++++---------------------------
 1 file changed, 9 insertions(+), 27 deletions(-)

diff --git a/hw/omap_sx1.c b/hw/omap_sx1.c
index ad17487..7474f2d 100644
--- a/hw/omap_sx1.c
+++ b/hw/omap_sx1.c
@@ -97,11 +97,7 @@ static struct arm_boot_info sx1_binfo = {
     .board_id = 0x265,
 };
 
-static void sx1_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,
-                const int version)
+static void sx1_init(QEMUMachineInitArgs *args, const int version)
 {
     struct omap_mpu_state_s *mpu;
     MemoryRegion *address_space = get_system_memory();
@@ -121,7 +117,7 @@ static void sx1_init(ram_addr_t ram_size,
         flash_size = flash2_size;
     }
 
-    mpu = omap310_mpu_init(address_space, sx1_binfo.ram_size, cpu_model);
+    mpu = omap310_mpu_init(address_space, sx1_binfo.ram_size, args->cpu_model);
 
     /* External Flash (EMIFS) */
     memory_region_init_ram(flash, "omap_sx1.flash0-0", flash_size);
@@ -192,16 +188,16 @@ static void sx1_init(ram_addr_t ram_size,
                                 OMAP_CS1_BASE, &cs[1]);
     }
 
-    if (!kernel_filename && !fl_idx) {
+    if (!args->kernel_filename && !fl_idx) {
         fprintf(stderr, "Kernel or Flash image must be specified\n");
         exit(1);
     }
 
     /* Load the kernel.  */
-    if (kernel_filename) {
-        sx1_binfo.kernel_filename = kernel_filename;
-        sx1_binfo.kernel_cmdline = kernel_cmdline;
-        sx1_binfo.initrd_filename = initrd_filename;
+    if (args->kernel_filename) {
+        sx1_binfo.kernel_filename = args->kernel_filename;
+        sx1_binfo.kernel_cmdline = args->kernel_cmdline;
+        sx1_binfo.initrd_filename = args->initrd_filename;
         arm_load_kernel(mpu->cpu, &sx1_binfo);
     }
 
@@ -211,26 +207,12 @@ static void sx1_init(ram_addr_t ram_size,
 
 static void sx1_init_v1(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    sx1_init(ram_size, boot_device, kernel_filename,
-                kernel_cmdline, initrd_filename, cpu_model, 1);
+    sx1_init(args, 1);
 }
 
 static void sx1_init_v2(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    sx1_init(ram_size, boot_device, kernel_filename,
-                kernel_cmdline, initrd_filename, cpu_model, 2);
+    sx1_init(args, 2);
 }
 
 static QEMUMachine sx1_machine_v2 = {
-- 
1.7.9.5

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

* [Qemu-devel] [PATCH 6/7] hw/nseries: Don't prematurely explode QEMUMachineInitArgs
  2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
                   ` (4 preceding siblings ...)
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 5/7] hw/omap_sx1: " Peter Maydell
@ 2012-10-23 17:04 ` Peter Maydell
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 7/7] hw/mainstone: " Peter Maydell
  2012-10-24  8:42 ` [Qemu-devel] [PATCH 0/7] ARM boards: don't " Markus Armbruster
  7 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2012-10-23 17:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost, patches

Don't explode QEMUMachineInitArgs before passing it to n8x0_init().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/nseries.c |   39 +++++++++++----------------------------
 1 file changed, 11 insertions(+), 28 deletions(-)

diff --git a/hw/nseries.c b/hw/nseries.c
index 7ada90d..6560d3c 100644
--- a/hw/nseries.c
+++ b/hw/nseries.c
@@ -1284,17 +1284,15 @@ static int n810_atag_setup(const struct arm_boot_info *info, void *p)
     return n8x0_atag_setup(p, 810);
 }
 
-static void n8x0_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, struct arm_boot_info *binfo, int model)
+static void n8x0_init(QEMUMachineInitArgs *args,
+                      struct arm_boot_info *binfo, int model)
 {
     MemoryRegion *sysmem = get_system_memory();
     struct n800_s *s = (struct n800_s *) g_malloc0(sizeof(*s));
     int sdram_size = binfo->ram_size;
     DisplayState *ds;
 
-    s->mpu = omap2420_mpu_init(sysmem, sdram_size, cpu_model);
+    s->mpu = omap2420_mpu_init(sysmem, sdram_size, args->cpu_model);
 
     /* Setup peripherals
      *
@@ -1337,17 +1335,18 @@ static void n8x0_init(ram_addr_t ram_size, const char *boot_device,
     if (usb_enabled)
         n8x0_usb_setup(s);
 
-    if (kernel_filename) {
+    if (args->kernel_filename) {
         /* Or at the linux loader.  */
-        binfo->kernel_filename = kernel_filename;
-        binfo->kernel_cmdline = kernel_cmdline;
-        binfo->initrd_filename = initrd_filename;
+        binfo->kernel_filename = args->kernel_filename;
+        binfo->kernel_cmdline = args->kernel_cmdline;
+        binfo->initrd_filename = args->initrd_filename;
         arm_load_kernel(s->mpu->cpu, binfo);
 
         qemu_register_reset(n8x0_boot_init, s);
     }
 
-    if (option_rom[0].name && (boot_device[0] == 'n' || !kernel_filename)) {
+    if (option_rom[0].name &&
+        (args->boot_device[0] == 'n' || !args->kernel_filename)) {
         int rom_size;
         uint8_t nolo_tags[0x10000];
         /* No, wait, better start at the ROM.  */
@@ -1399,28 +1398,12 @@ static struct arm_boot_info n810_binfo = {
 
 static void n800_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    return n8x0_init(ram_size, boot_device,
-                    kernel_filename, kernel_cmdline, initrd_filename,
-                    cpu_model, &n800_binfo, 800);
+    return n8x0_init(args, &n800_binfo, 800);
 }
 
 static void n810_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    const char *boot_device = args->boot_device;
-    return n8x0_init(ram_size, boot_device,
-                    kernel_filename, kernel_cmdline, initrd_filename,
-                    cpu_model, &n810_binfo, 810);
+    return n8x0_init(args, &n810_binfo, 810);
 }
 
 static QEMUMachine n800_machine = {
-- 
1.7.9.5

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

* [Qemu-devel] [PATCH 7/7] hw/mainstone: Don't prematurely explode QEMUMachineInitArgs
  2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
                   ` (5 preceding siblings ...)
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 6/7] hw/nseries: " Peter Maydell
@ 2012-10-23 17:04 ` Peter Maydell
  2012-10-24  8:42 ` [Qemu-devel] [PATCH 0/7] ARM boards: don't " Markus Armbruster
  7 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2012-10-23 17:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost, patches

Don't explode QEMUMachineInitArgs before passing it to mainstone_init().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/mainstone.c |   21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/hw/mainstone.c b/hw/mainstone.c
index c0d6034..95a6d61 100644
--- a/hw/mainstone.c
+++ b/hw/mainstone.c
@@ -95,10 +95,8 @@ static struct arm_boot_info mainstone_binfo = {
 };
 
 static void mainstone_common_init(MemoryRegion *address_space_mem,
-                ram_addr_t ram_size,
-                const char *kernel_filename,
-                const char *kernel_cmdline, const char *initrd_filename,
-                const char *cpu_model, enum mainstone_model_e model, int arm_id)
+                                  QEMUMachineInitArgs *args,
+                                  enum mainstone_model_e model, int arm_id)
 {
     uint32_t sector_len = 256 * 1024;
     target_phys_addr_t mainstone_flash_base[] = { MST_FLASH_0, MST_FLASH_1 };
@@ -108,6 +106,7 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,
     int i;
     int be;
     MemoryRegion *rom = g_new(MemoryRegion, 1);
+    const char *cpu_model = args->cpu_model;
 
     if (!cpu_model)
         cpu_model = "pxa270-c5";
@@ -164,22 +163,16 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,
     smc91c111_init(&nd_table[0], MST_ETH_PHYS,
                     qdev_get_gpio_in(mst_irq, ETHERNET_IRQ));
 
-    mainstone_binfo.kernel_filename = kernel_filename;
-    mainstone_binfo.kernel_cmdline = kernel_cmdline;
-    mainstone_binfo.initrd_filename = initrd_filename;
+    mainstone_binfo.kernel_filename = args->kernel_filename;
+    mainstone_binfo.kernel_cmdline = args->kernel_cmdline;
+    mainstone_binfo.initrd_filename = args->initrd_filename;
     mainstone_binfo.board_id = arm_id;
     arm_load_kernel(mpu->cpu, &mainstone_binfo);
 }
 
 static void mainstone_init(QEMUMachineInitArgs *args)
 {
-    ram_addr_t ram_size = args->ram_size;
-    const char *cpu_model = args->cpu_model;
-    const char *kernel_filename = args->kernel_filename;
-    const char *kernel_cmdline = args->kernel_cmdline;
-    const char *initrd_filename = args->initrd_filename;
-    mainstone_common_init(get_system_memory(), ram_size, kernel_filename,
-                kernel_cmdline, initrd_filename, cpu_model, mainstone, 0x196);
+    mainstone_common_init(get_system_memory(), args, mainstone, 0x196);
 }
 
 static QEMUMachine mainstone2_machine = {
-- 
1.7.9.5

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

* Re: [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs
  2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
                   ` (6 preceding siblings ...)
  2012-10-23 17:04 ` [Qemu-devel] [PATCH 7/7] hw/mainstone: " Peter Maydell
@ 2012-10-24  8:42 ` Markus Armbruster
  2012-10-24  9:21   ` Peter Maydell
  2012-10-24 12:10   ` Eduardo Habkost
  7 siblings, 2 replies; 12+ messages in thread
From: Markus Armbruster @ 2012-10-24  8:42 UTC (permalink / raw)
  To: Peter Maydell; +Cc: patches, qemu-devel, Eduardo Habkost

Peter Maydell <peter.maydell@linaro.org> writes:

> A lot of the ARM board models follow the pattern of having a
> single common init function which is called with various
> parameters from the QEMUMachine init function for several board
> model variants. The change to QEMUMachineInitArgs in commit 5f072e
> took the fairly mechanical approach of splitting the QEMUMachineInitArgs
> fields out in each variant's init function to pass to an unchanged
> common init function. This is a bit repetitive, so clean them up
> to just pass the QEMUMachineInitArgs directly to the common
> function instead.

A quick grep finds similar cleanup opportunities in

hw/exynos4_boards.c     exynos4_boards_init_common()
hw/pc_piix.c            pc_init1()
hw/sun4m.c              sun4m_hw_init()
hw/sun4u.c              sun4uv_init()
hw/xtensa_lx60.c        lx_init()
hw/xtensa_sim.c         sim_init()

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

* Re: [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs
  2012-10-24  8:42 ` [Qemu-devel] [PATCH 0/7] ARM boards: don't " Markus Armbruster
@ 2012-10-24  9:21   ` Peter Maydell
  2012-10-24 12:06     ` Markus Armbruster
  2012-10-24 12:10   ` Eduardo Habkost
  1 sibling, 1 reply; 12+ messages in thread
From: Peter Maydell @ 2012-10-24  9:21 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: patches, qemu-devel, Eduardo Habkost

On 24 October 2012 09:42, Markus Armbruster <armbru@redhat.com> wrote:
> Peter Maydell <peter.maydell@linaro.org> writes:
>
>> A lot of the ARM board models follow the pattern of having a
>> single common init function which is called with various
>> parameters from the QEMUMachine init function for several board
>> model variants. The change to QEMUMachineInitArgs in commit 5f072e
>> took the fairly mechanical approach of splitting the QEMUMachineInitArgs
>> fields out in each variant's init function to pass to an unchanged
>> common init function. This is a bit repetitive, so clean them up
>> to just pass the QEMUMachineInitArgs directly to the common
>> function instead.
>
> A quick grep finds similar cleanup opportunities in
>
> hw/exynos4_boards.c     exynos4_boards_init_common()
> hw/pc_piix.c            pc_init1()
> hw/sun4m.c              sun4m_hw_init()
> hw/sun4u.c              sun4uv_init()
> hw/xtensa_lx60.c        lx_init()
> hw/xtensa_sim.c         sim_init()

I deliberately stuck to the ARM boards on the basis that the
others were a little out of my jurisdiction. I missed the
exynos4 though.

-- PMM

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

* Re: [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs
  2012-10-24  9:21   ` Peter Maydell
@ 2012-10-24 12:06     ` Markus Armbruster
  0 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2012-10-24 12:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Anthony Liguori, Eduardo Habkost, patches, qemu-devel,
	Blue Swirl, Max Filippov

Peter Maydell <peter.maydell@linaro.org> writes:

> On 24 October 2012 09:42, Markus Armbruster <armbru@redhat.com> wrote:
>> Peter Maydell <peter.maydell@linaro.org> writes:
>>
>>> A lot of the ARM board models follow the pattern of having a
>>> single common init function which is called with various
>>> parameters from the QEMUMachine init function for several board
>>> model variants. The change to QEMUMachineInitArgs in commit 5f072e
>>> took the fairly mechanical approach of splitting the QEMUMachineInitArgs
>>> fields out in each variant's init function to pass to an unchanged
>>> common init function. This is a bit repetitive, so clean them up
>>> to just pass the QEMUMachineInitArgs directly to the common
>>> function instead.
>>
>> A quick grep finds similar cleanup opportunities in
>>
>> hw/exynos4_boards.c     exynos4_boards_init_common()
>> hw/pc_piix.c            pc_init1()
>> hw/sun4m.c              sun4m_hw_init()
>> hw/sun4u.c              sun4uv_init()
>> hw/xtensa_lx60.c        lx_init()
>> hw/xtensa_sim.c         sim_init()
>
> I deliberately stuck to the ARM boards on the basis that the
> others were a little out of my jurisdiction. I missed the
> exynos4 though.

Fair enough.  Cc'ing some relevant maintainers.

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

* Re: [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs
  2012-10-24  8:42 ` [Qemu-devel] [PATCH 0/7] ARM boards: don't " Markus Armbruster
  2012-10-24  9:21   ` Peter Maydell
@ 2012-10-24 12:10   ` Eduardo Habkost
  1 sibling, 0 replies; 12+ messages in thread
From: Eduardo Habkost @ 2012-10-24 12:10 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: Peter Maydell, qemu-devel, patches

On Wed, Oct 24, 2012 at 10:42:55AM +0200, Markus Armbruster wrote:
> Peter Maydell <peter.maydell@linaro.org> writes:
> 
> > A lot of the ARM board models follow the pattern of having a
> > single common init function which is called with various
> > parameters from the QEMUMachine init function for several board
> > model variants. The change to QEMUMachineInitArgs in commit 5f072e
> > took the fairly mechanical approach of splitting the QEMUMachineInitArgs
> > fields out in each variant's init function to pass to an unchanged
> > common init function. This is a bit repetitive, so clean them up
> > to just pass the QEMUMachineInitArgs directly to the common
> > function instead.
> 
> A quick grep finds similar cleanup opportunities in
> 
> hw/exynos4_boards.c     exynos4_boards_init_common()
> hw/pc_piix.c            pc_init1()

I was working on pc_init1(), and I will submit a series including a
patch that changes pc_int1() to accept an init args struct, soon.


> hw/sun4m.c              sun4m_hw_init()
> hw/sun4u.c              sun4uv_init()
> hw/xtensa_lx60.c        lx_init()
> hw/xtensa_sim.c         sim_init()

-- 
Eduardo

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

end of thread, other threads:[~2012-10-24 12:09 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-23 17:04 [Qemu-devel] [PATCH 0/7] ARM boards: don't prematurely explode QEMUMachineInitArgs Peter Maydell
2012-10-23 17:04 ` [Qemu-devel] [PATCH 1/7] hw/vexpress.c: Don't " Peter Maydell
2012-10-23 17:04 ` [Qemu-devel] [PATCH 2/7] hw/realview.c: " Peter Maydell
2012-10-23 17:04 ` [Qemu-devel] [PATCH 3/7] hw/versatilepb: " Peter Maydell
2012-10-23 17:04 ` [Qemu-devel] [PATCH 4/7] hw/spitz: " Peter Maydell
2012-10-23 17:04 ` [Qemu-devel] [PATCH 5/7] hw/omap_sx1: " Peter Maydell
2012-10-23 17:04 ` [Qemu-devel] [PATCH 6/7] hw/nseries: " Peter Maydell
2012-10-23 17:04 ` [Qemu-devel] [PATCH 7/7] hw/mainstone: " Peter Maydell
2012-10-24  8:42 ` [Qemu-devel] [PATCH 0/7] ARM boards: don't " Markus Armbruster
2012-10-24  9:21   ` Peter Maydell
2012-10-24 12:06     ` Markus Armbruster
2012-10-24 12:10   ` Eduardo Habkost

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.