2 * OpenPOWER Palmetto BMC
4 * Andrew Jeffery <andrew@aj.id.au>
6 * Copyright 2016 IBM Corp.
8 * This code is licensed under the GPL version 2 or later. See
9 * the COPYING file in the top-level directory.
12 #include "qemu/osdep.h"
13 #include "qapi/error.h"
14 #include "qemu-common.h"
16 #include "exec/address-spaces.h"
17 #include "hw/arm/arm.h"
18 #include "hw/arm/ast2400.h"
19 #include "hw/boards.h"
22 static struct arm_boot_info palmetto_bmc_binfo
= {
23 .loader_start
= AST2400_SDRAM_BASE
,
28 typedef struct PalmettoBMCState
{
33 static void palmetto_bmc_init(MachineState
*machine
)
35 PalmettoBMCState
*bmc
;
37 bmc
= g_new0(PalmettoBMCState
, 1);
38 object_initialize(&bmc
->soc
, (sizeof(bmc
->soc
)), TYPE_AST2400
);
39 object_property_add_child(OBJECT(machine
), "soc", OBJECT(&bmc
->soc
),
42 memory_region_allocate_system_memory(&bmc
->ram
, NULL
, "ram", ram_size
);
43 memory_region_add_subregion(get_system_memory(), AST2400_SDRAM_BASE
,
45 object_property_add_const_link(OBJECT(&bmc
->soc
), "ram", OBJECT(&bmc
->ram
),
47 object_property_set_bool(OBJECT(&bmc
->soc
), true, "realized",
50 palmetto_bmc_binfo
.kernel_filename
= machine
->kernel_filename
;
51 palmetto_bmc_binfo
.initrd_filename
= machine
->initrd_filename
;
52 palmetto_bmc_binfo
.kernel_cmdline
= machine
->kernel_cmdline
;
53 palmetto_bmc_binfo
.ram_size
= ram_size
;
54 arm_load_kernel(ARM_CPU(first_cpu
), &palmetto_bmc_binfo
);
57 static void palmetto_bmc_machine_init(MachineClass
*mc
)
59 mc
->desc
= "OpenPOWER Palmetto BMC";
60 mc
->init
= palmetto_bmc_init
;
69 DEFINE_MACHINE("palmetto-bmc", palmetto_bmc_machine_init
);