mirror of https://github.com/xemu-project/xemu.git
hw/arm/msf2: Simplify setting MachineClass::valid_cpu_types[]
The M2Sxxx SoC family can only be used with Cortex-M3.
Propagating the CPU type from the board level is pointless.
Hard-code the CPU type at the SoC level.
Remove the now ignored MachineClass::default_cpu_type field.
Use the common code introduced in commit c9cf636d48
("machine: Add
a valid_cpu_types property") to check for valid CPU type at the
board level.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20240129151828.59544-6-philmd@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
104395bc66
commit
04f4915424
|
@ -134,7 +134,7 @@ static void m2sxxx_soc_realize(DeviceState *dev_soc, Error **errp)
|
||||||
|
|
||||||
armv7m = DEVICE(&s->armv7m);
|
armv7m = DEVICE(&s->armv7m);
|
||||||
qdev_prop_set_uint32(armv7m, "num-irq", 81);
|
qdev_prop_set_uint32(armv7m, "num-irq", 81);
|
||||||
qdev_prop_set_string(armv7m, "cpu-type", s->cpu_type);
|
qdev_prop_set_string(armv7m, "cpu-type", ARM_CPU_TYPE_NAME("cortex-m3"));
|
||||||
qdev_prop_set_bit(armv7m, "enable-bitband", true);
|
qdev_prop_set_bit(armv7m, "enable-bitband", true);
|
||||||
qdev_connect_clock_in(armv7m, "cpuclk", s->m3clk);
|
qdev_connect_clock_in(armv7m, "cpuclk", s->m3clk);
|
||||||
qdev_connect_clock_in(armv7m, "refclk", s->refclk);
|
qdev_connect_clock_in(armv7m, "refclk", s->refclk);
|
||||||
|
@ -231,7 +231,6 @@ static Property m2sxxx_soc_properties[] = {
|
||||||
* part name specifies the type of SmartFusion2 device variant(this
|
* part name specifies the type of SmartFusion2 device variant(this
|
||||||
* property is for information purpose only.
|
* property is for information purpose only.
|
||||||
*/
|
*/
|
||||||
DEFINE_PROP_STRING("cpu-type", MSF2State, cpu_type),
|
|
||||||
DEFINE_PROP_STRING("part-name", MSF2State, part_name),
|
DEFINE_PROP_STRING("part-name", MSF2State, part_name),
|
||||||
DEFINE_PROP_UINT64("eNVM-size", MSF2State, envm_size, MSF2_ENVM_MAX_SIZE),
|
DEFINE_PROP_UINT64("eNVM-size", MSF2State, envm_size, MSF2_ENVM_MAX_SIZE),
|
||||||
DEFINE_PROP_UINT64("eSRAM-size", MSF2State, esram_size,
|
DEFINE_PROP_UINT64("eSRAM-size", MSF2State, esram_size,
|
||||||
|
|
|
@ -47,7 +47,6 @@ static void emcraft_sf2_s2s010_init(MachineState *machine)
|
||||||
DeviceState *dev;
|
DeviceState *dev;
|
||||||
DeviceState *spi_flash;
|
DeviceState *spi_flash;
|
||||||
MSF2State *soc;
|
MSF2State *soc;
|
||||||
MachineClass *mc = MACHINE_GET_CLASS(machine);
|
|
||||||
DriveInfo *dinfo = drive_get(IF_MTD, 0, 0);
|
DriveInfo *dinfo = drive_get(IF_MTD, 0, 0);
|
||||||
qemu_irq cs_line;
|
qemu_irq cs_line;
|
||||||
BusState *spi_bus;
|
BusState *spi_bus;
|
||||||
|
@ -62,8 +61,6 @@ static void emcraft_sf2_s2s010_init(MachineState *machine)
|
||||||
dev = qdev_new(TYPE_MSF2_SOC);
|
dev = qdev_new(TYPE_MSF2_SOC);
|
||||||
object_property_add_child(OBJECT(machine), "soc", OBJECT(dev));
|
object_property_add_child(OBJECT(machine), "soc", OBJECT(dev));
|
||||||
qdev_prop_set_string(dev, "part-name", "M2S010");
|
qdev_prop_set_string(dev, "part-name", "M2S010");
|
||||||
qdev_prop_set_string(dev, "cpu-type", mc->default_cpu_type);
|
|
||||||
|
|
||||||
qdev_prop_set_uint64(dev, "eNVM-size", M2S010_ENVM_SIZE);
|
qdev_prop_set_uint64(dev, "eNVM-size", M2S010_ENVM_SIZE);
|
||||||
qdev_prop_set_uint64(dev, "eSRAM-size", M2S010_ESRAM_SIZE);
|
qdev_prop_set_uint64(dev, "eSRAM-size", M2S010_ESRAM_SIZE);
|
||||||
|
|
||||||
|
@ -108,7 +105,6 @@ static void emcraft_sf2_machine_init(MachineClass *mc)
|
||||||
|
|
||||||
mc->desc = "SmartFusion2 SOM kit from Emcraft (M2S010)";
|
mc->desc = "SmartFusion2 SOM kit from Emcraft (M2S010)";
|
||||||
mc->init = emcraft_sf2_s2s010_init;
|
mc->init = emcraft_sf2_s2s010_init;
|
||||||
mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m3");
|
|
||||||
mc->valid_cpu_types = valid_cpu_types;
|
mc->valid_cpu_types = valid_cpu_types;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,13 +47,10 @@ OBJECT_DECLARE_SIMPLE_TYPE(MSF2State, MSF2_SOC)
|
||||||
#define MSF2_NUM_TIMERS 2
|
#define MSF2_NUM_TIMERS 2
|
||||||
|
|
||||||
struct MSF2State {
|
struct MSF2State {
|
||||||
/*< private >*/
|
|
||||||
SysBusDevice parent_obj;
|
SysBusDevice parent_obj;
|
||||||
/*< public >*/
|
|
||||||
|
|
||||||
ARMv7MState armv7m;
|
ARMv7MState armv7m;
|
||||||
|
|
||||||
char *cpu_type;
|
|
||||||
char *part_name;
|
char *part_name;
|
||||||
uint64_t envm_size;
|
uint64_t envm_size;
|
||||||
uint64_t esram_size;
|
uint64_t esram_size;
|
||||||
|
|
Loading…
Reference in New Issue