Message ID | 20200227220149.6845-3-nieklinnenbank@gmail.com |
---|---|
State | New |
Headers | show |
Series | hw/arm/cubieboard: correct CPU type and add machine argument checks | expand |
On Thu, 27 Feb 2020 at 22:01, Niek Linnenbank <nieklinnenbank@gmail.com> wrote: > > The Cubieboard has an ARM Cortex-A8. Prevent changing the CPU > to a different type which could break user programs. > > Signed-off-by: Niek Linnenbank <nieklinnenbank@gmail.com> > --- > hw/arm/cubieboard.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c > index 0195925c73..010375f0a8 100644 > --- a/hw/arm/cubieboard.c > +++ b/hw/arm/cubieboard.c > @@ -30,9 +30,17 @@ static struct arm_boot_info cubieboard_binfo = { > > static void cubieboard_init(MachineState *machine) > { > - AwA10State *a10 = AW_A10(object_new(TYPE_AW_A10)); > + AwA10State *a10; > Error *err = NULL; > > + /* Only allow Cortex-A8 for this board */ > + if (strcmp(machine->cpu_type, ARM_CPU_TYPE_NAME("cortex-a8")) != 0) { > + error_report("This board can only be used with cortex-a8 CPU"); > + exit(1); > + } > + > + a10 = AW_A10(object_new(TYPE_AW_A10)); > + > object_property_set_int(OBJECT(&a10->emac), 1, "phy-addr", &err); > if (err != NULL) { > error_reportf_err(err, "Couldn't set phy address: "); Reviewed-by: Peter Maydell <peter.maydell@linaro.org> except that we're not preventing the user changing the CPU type, we're just giving a helpful error message instead of ignoring the bogus -cpu option. thanks -- PMM
diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c index 0195925c73..010375f0a8 100644 --- a/hw/arm/cubieboard.c +++ b/hw/arm/cubieboard.c @@ -30,9 +30,17 @@ static struct arm_boot_info cubieboard_binfo = { static void cubieboard_init(MachineState *machine) { - AwA10State *a10 = AW_A10(object_new(TYPE_AW_A10)); + AwA10State *a10; Error *err = NULL; + /* Only allow Cortex-A8 for this board */ + if (strcmp(machine->cpu_type, ARM_CPU_TYPE_NAME("cortex-a8")) != 0) { + error_report("This board can only be used with cortex-a8 CPU"); + exit(1); + } + + a10 = AW_A10(object_new(TYPE_AW_A10)); + object_property_set_int(OBJECT(&a10->emac), 1, "phy-addr", &err); if (err != NULL) { error_reportf_err(err, "Couldn't set phy address: ");
The Cubieboard has an ARM Cortex-A8. Prevent changing the CPU to a different type which could break user programs. Signed-off-by: Niek Linnenbank <nieklinnenbank@gmail.com> --- hw/arm/cubieboard.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)