Commit 6952625d authored by Peter Maydell's avatar Peter Maydell
Browse files

hw/omap_sx1: Don't prematurely explode QEMUMachineInitArgs



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

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent 72a9f5b7
Loading
Loading
Loading
Loading
+9 −27
Original line number Diff line number Diff line
@@ -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 = {