hw/realview.c: Don't prematurely explode QEMUMachineInitArgs
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>
This commit is contained in:
parent
f3cdbc329f
commit
db4ff6f111
@ -44,11 +44,8 @@ static const int realview_board_id[] = {
|
|||||||
0x76d
|
0x76d
|
||||||
};
|
};
|
||||||
|
|
||||||
static void realview_init(ram_addr_t ram_size,
|
static void realview_init(QEMUMachineInitArgs *args,
|
||||||
const char *boot_device,
|
enum realview_board_type board_type)
|
||||||
const char *kernel_filename, const char *kernel_cmdline,
|
|
||||||
const char *initrd_filename, const char *cpu_model,
|
|
||||||
enum realview_board_type board_type)
|
|
||||||
{
|
{
|
||||||
ARMCPU *cpu = NULL;
|
ARMCPU *cpu = NULL;
|
||||||
CPUARMState *env;
|
CPUARMState *env;
|
||||||
@ -73,6 +70,7 @@ static void realview_init(ram_addr_t ram_size,
|
|||||||
uint32_t proc_id = 0;
|
uint32_t proc_id = 0;
|
||||||
uint32_t sys_id;
|
uint32_t sys_id;
|
||||||
ram_addr_t low_ram_size;
|
ram_addr_t low_ram_size;
|
||||||
|
ram_addr_t ram_size = args->ram_size;
|
||||||
|
|
||||||
switch (board_type) {
|
switch (board_type) {
|
||||||
case BOARD_EB:
|
case BOARD_EB:
|
||||||
@ -89,7 +87,7 @@ static void realview_init(ram_addr_t ram_size,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
for (n = 0; n < smp_cpus; n++) {
|
for (n = 0; n < smp_cpus; n++) {
|
||||||
cpu = cpu_arm_init(cpu_model);
|
cpu = cpu_arm_init(args->cpu_model);
|
||||||
if (!cpu) {
|
if (!cpu) {
|
||||||
fprintf(stderr, "Unable to find CPU definition\n");
|
fprintf(stderr, "Unable to find CPU definition\n");
|
||||||
exit(1);
|
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);
|
memory_region_add_subregion(sysmem, SMP_BOOT_ADDR, ram_hack);
|
||||||
|
|
||||||
realview_binfo.ram_size = ram_size;
|
realview_binfo.ram_size = ram_size;
|
||||||
realview_binfo.kernel_filename = kernel_filename;
|
realview_binfo.kernel_filename = args->kernel_filename;
|
||||||
realview_binfo.kernel_cmdline = kernel_cmdline;
|
realview_binfo.kernel_cmdline = args->kernel_cmdline;
|
||||||
realview_binfo.initrd_filename = initrd_filename;
|
realview_binfo.initrd_filename = args->initrd_filename;
|
||||||
realview_binfo.nb_cpus = smp_cpus;
|
realview_binfo.nb_cpus = smp_cpus;
|
||||||
realview_binfo.board_id = realview_board_id[board_type];
|
realview_binfo.board_id = realview_board_id[board_type];
|
||||||
realview_binfo.loader_start = (board_type == BOARD_PB_A8 ? 0x70000000 : 0);
|
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)
|
static void realview_eb_init(QEMUMachineInitArgs *args)
|
||||||
{
|
{
|
||||||
ram_addr_t ram_size = args->ram_size;
|
if (!args->cpu_model) {
|
||||||
const char *cpu_model = args->cpu_model;
|
args->cpu_model = "arm926";
|
||||||
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";
|
|
||||||
}
|
}
|
||||||
realview_init(ram_size, boot_device, kernel_filename, kernel_cmdline,
|
realview_init(args, BOARD_EB);
|
||||||
initrd_filename, cpu_model, BOARD_EB);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void realview_eb_mpcore_init(QEMUMachineInitArgs *args)
|
static void realview_eb_mpcore_init(QEMUMachineInitArgs *args)
|
||||||
{
|
{
|
||||||
ram_addr_t ram_size = args->ram_size;
|
if (!args->cpu_model) {
|
||||||
const char *cpu_model = args->cpu_model;
|
args->cpu_model = "arm11mpcore";
|
||||||
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";
|
|
||||||
}
|
}
|
||||||
realview_init(ram_size, boot_device, kernel_filename, kernel_cmdline,
|
realview_init(args, BOARD_EB_MPCORE);
|
||||||
initrd_filename, cpu_model, BOARD_EB_MPCORE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void realview_pb_a8_init(QEMUMachineInitArgs *args)
|
static void realview_pb_a8_init(QEMUMachineInitArgs *args)
|
||||||
{
|
{
|
||||||
ram_addr_t ram_size = args->ram_size;
|
if (!args->cpu_model) {
|
||||||
const char *cpu_model = args->cpu_model;
|
args->cpu_model = "cortex-a8";
|
||||||
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";
|
|
||||||
}
|
}
|
||||||
realview_init(ram_size, boot_device, kernel_filename, kernel_cmdline,
|
realview_init(args, BOARD_PB_A8);
|
||||||
initrd_filename, cpu_model, BOARD_PB_A8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void realview_pbx_a9_init(QEMUMachineInitArgs *args)
|
static void realview_pbx_a9_init(QEMUMachineInitArgs *args)
|
||||||
{
|
{
|
||||||
ram_addr_t ram_size = args->ram_size;
|
if (!args->cpu_model) {
|
||||||
const char *cpu_model = args->cpu_model;
|
args->cpu_model = "cortex-a9";
|
||||||
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";
|
|
||||||
}
|
}
|
||||||
realview_init(ram_size, boot_device, kernel_filename, kernel_cmdline,
|
realview_init(args, BOARD_PBX_A9);
|
||||||
initrd_filename, cpu_model, BOARD_PBX_A9);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static QEMUMachine realview_eb_machine = {
|
static QEMUMachine realview_eb_machine = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user