mirror of https://gitee.com/openkylin/qemu.git
hw/arm/mps2-tz: Set MachineClass default_ram info from RAMInfo data
Instead of hardcoding the MachineClass default_ram_size and default_ram_id fields, set them on class creation by finding the entry in the RAMInfo array which is marked as being the QEMU system RAM. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210215115138.20465-18-peter.maydell@linaro.org
This commit is contained in:
parent
4fec32db9c
commit
18a8c3b390
|
@ -811,8 +811,26 @@ static void mps2tz_class_init(ObjectClass *oc, void *data)
|
||||||
|
|
||||||
mc->init = mps2tz_common_init;
|
mc->init = mps2tz_common_init;
|
||||||
iic->check = mps2_tz_idau_check;
|
iic->check = mps2_tz_idau_check;
|
||||||
mc->default_ram_size = 16 * MiB;
|
}
|
||||||
mc->default_ram_id = "mps.ram";
|
|
||||||
|
static void mps2tz_set_default_ram_info(MPS2TZMachineClass *mmc)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Set mc->default_ram_size and default_ram_id from the
|
||||||
|
* information in mmc->raminfo.
|
||||||
|
*/
|
||||||
|
MachineClass *mc = MACHINE_CLASS(mmc);
|
||||||
|
const RAMInfo *p;
|
||||||
|
|
||||||
|
for (p = mmc->raminfo; p->name; p++) {
|
||||||
|
if (p->mrindex < 0) {
|
||||||
|
/* Found the entry for "system memory" */
|
||||||
|
mc->default_ram_size = p->size;
|
||||||
|
mc->default_ram_id = p->name;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_assert_not_reached();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mps2tz_an505_class_init(ObjectClass *oc, void *data)
|
static void mps2tz_an505_class_init(ObjectClass *oc, void *data)
|
||||||
|
@ -835,6 +853,7 @@ static void mps2tz_an505_class_init(ObjectClass *oc, void *data)
|
||||||
mmc->numirq = 92;
|
mmc->numirq = 92;
|
||||||
mmc->raminfo = an505_raminfo;
|
mmc->raminfo = an505_raminfo;
|
||||||
mmc->armsse_type = TYPE_IOTKIT;
|
mmc->armsse_type = TYPE_IOTKIT;
|
||||||
|
mps2tz_set_default_ram_info(mmc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mps2tz_an521_class_init(ObjectClass *oc, void *data)
|
static void mps2tz_an521_class_init(ObjectClass *oc, void *data)
|
||||||
|
@ -857,6 +876,7 @@ static void mps2tz_an521_class_init(ObjectClass *oc, void *data)
|
||||||
mmc->numirq = 92;
|
mmc->numirq = 92;
|
||||||
mmc->raminfo = an505_raminfo; /* AN521 is the same as AN505 here */
|
mmc->raminfo = an505_raminfo; /* AN521 is the same as AN505 here */
|
||||||
mmc->armsse_type = TYPE_SSE200;
|
mmc->armsse_type = TYPE_SSE200;
|
||||||
|
mps2tz_set_default_ram_info(mmc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo mps2tz_info = {
|
static const TypeInfo mps2tz_info = {
|
||||||
|
|
Loading…
Reference in New Issue