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: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2012-10-30 07:45:08 +00:00
parent 72a9f5b7c3
commit 6952625da8
1 changed files with 9 additions and 27 deletions

View File

@ -97,11 +97,7 @@ static struct arm_boot_info sx1_binfo = {
.board_id = 0x265, .board_id = 0x265,
}; };
static void sx1_init(ram_addr_t ram_size, static void sx1_init(QEMUMachineInitArgs *args, const int version)
const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model,
const int version)
{ {
struct omap_mpu_state_s *mpu; struct omap_mpu_state_s *mpu;
MemoryRegion *address_space = get_system_memory(); MemoryRegion *address_space = get_system_memory();
@ -121,7 +117,7 @@ static void sx1_init(ram_addr_t ram_size,
flash_size = flash2_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) */ /* External Flash (EMIFS) */
memory_region_init_ram(flash, "omap_sx1.flash0-0", flash_size); 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]); 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"); fprintf(stderr, "Kernel or Flash image must be specified\n");
exit(1); exit(1);
} }
/* Load the kernel. */ /* Load the kernel. */
if (kernel_filename) { if (args->kernel_filename) {
sx1_binfo.kernel_filename = kernel_filename; sx1_binfo.kernel_filename = args->kernel_filename;
sx1_binfo.kernel_cmdline = kernel_cmdline; sx1_binfo.kernel_cmdline = args->kernel_cmdline;
sx1_binfo.initrd_filename = initrd_filename; sx1_binfo.initrd_filename = args->initrd_filename;
arm_load_kernel(mpu->cpu, &sx1_binfo); 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) static void sx1_init_v1(QEMUMachineInitArgs *args)
{ {
ram_addr_t ram_size = args->ram_size; sx1_init(args, 1);
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);
} }
static void sx1_init_v2(QEMUMachineInitArgs *args) static void sx1_init_v2(QEMUMachineInitArgs *args)
{ {
ram_addr_t ram_size = args->ram_size; sx1_init(args, 2);
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);
} }
static QEMUMachine sx1_machine_v2 = { static QEMUMachine sx1_machine_v2 = {