|
@@ -813,12 +813,6 @@ static void mps2tz_common_init(MachineState *machine)
|
|
|
int num_ppcs;
|
|
|
int i;
|
|
|
|
|
|
- if (strcmp(machine->cpu_type, mc->default_cpu_type) != 0) {
|
|
|
- error_report("This board can only be used with CPU %s",
|
|
|
- mc->default_cpu_type);
|
|
|
- exit(1);
|
|
|
- }
|
|
|
-
|
|
|
if (machine->ram_size != mc->default_ram_size) {
|
|
|
char *sz = size_to_str(mc->default_ram_size);
|
|
|
error_report("Invalid RAM size, should be %s", sz);
|
|
@@ -1318,6 +1312,10 @@ static void mps2tz_an505_class_init(ObjectClass *oc, void *data)
|
|
|
{
|
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_CLASS(oc);
|
|
|
+ static const char * const valid_cpu_types[] = {
|
|
|
+ ARM_CPU_TYPE_NAME("cortex-m33"),
|
|
|
+ NULL
|
|
|
+ };
|
|
|
|
|
|
mc->desc = "ARM MPS2 with AN505 FPGA image for Cortex-M33";
|
|
|
mc->default_cpus = 1;
|
|
@@ -1325,6 +1323,7 @@ static void mps2tz_an505_class_init(ObjectClass *oc, void *data)
|
|
|
mc->max_cpus = mc->default_cpus;
|
|
|
mmc->fpga_type = FPGA_AN505;
|
|
|
mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m33");
|
|
|
+ mc->valid_cpu_types = valid_cpu_types;
|
|
|
mmc->scc_id = 0x41045050;
|
|
|
mmc->sysclk_frq = 20 * 1000 * 1000; /* 20MHz */
|
|
|
mmc->apb_periph_frq = mmc->sysclk_frq;
|
|
@@ -1347,6 +1346,10 @@ static void mps2tz_an521_class_init(ObjectClass *oc, void *data)
|
|
|
{
|
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_CLASS(oc);
|
|
|
+ static const char * const valid_cpu_types[] = {
|
|
|
+ ARM_CPU_TYPE_NAME("cortex-m33"),
|
|
|
+ NULL
|
|
|
+ };
|
|
|
|
|
|
mc->desc = "ARM MPS2 with AN521 FPGA image for dual Cortex-M33";
|
|
|
mc->default_cpus = 2;
|
|
@@ -1354,6 +1357,7 @@ static void mps2tz_an521_class_init(ObjectClass *oc, void *data)
|
|
|
mc->max_cpus = mc->default_cpus;
|
|
|
mmc->fpga_type = FPGA_AN521;
|
|
|
mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m33");
|
|
|
+ mc->valid_cpu_types = valid_cpu_types;
|
|
|
mmc->scc_id = 0x41045210;
|
|
|
mmc->sysclk_frq = 20 * 1000 * 1000; /* 20MHz */
|
|
|
mmc->apb_periph_frq = mmc->sysclk_frq;
|
|
@@ -1376,6 +1380,10 @@ static void mps3tz_an524_class_init(ObjectClass *oc, void *data)
|
|
|
{
|
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_CLASS(oc);
|
|
|
+ static const char * const valid_cpu_types[] = {
|
|
|
+ ARM_CPU_TYPE_NAME("cortex-m33"),
|
|
|
+ NULL
|
|
|
+ };
|
|
|
|
|
|
mc->desc = "ARM MPS3 with AN524 FPGA image for dual Cortex-M33";
|
|
|
mc->default_cpus = 2;
|
|
@@ -1383,6 +1391,7 @@ static void mps3tz_an524_class_init(ObjectClass *oc, void *data)
|
|
|
mc->max_cpus = mc->default_cpus;
|
|
|
mmc->fpga_type = FPGA_AN524;
|
|
|
mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m33");
|
|
|
+ mc->valid_cpu_types = valid_cpu_types;
|
|
|
mmc->scc_id = 0x41045240;
|
|
|
mmc->sysclk_frq = 32 * 1000 * 1000; /* 32MHz */
|
|
|
mmc->apb_periph_frq = mmc->sysclk_frq;
|
|
@@ -1410,6 +1419,10 @@ static void mps3tz_an547_class_init(ObjectClass *oc, void *data)
|
|
|
{
|
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_CLASS(oc);
|
|
|
+ static const char * const valid_cpu_types[] = {
|
|
|
+ ARM_CPU_TYPE_NAME("cortex-m55"),
|
|
|
+ NULL
|
|
|
+ };
|
|
|
|
|
|
mc->desc = "ARM MPS3 with AN547 FPGA image for Cortex-M55";
|
|
|
mc->default_cpus = 1;
|
|
@@ -1417,6 +1430,7 @@ static void mps3tz_an547_class_init(ObjectClass *oc, void *data)
|
|
|
mc->max_cpus = mc->default_cpus;
|
|
|
mmc->fpga_type = FPGA_AN547;
|
|
|
mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m55");
|
|
|
+ mc->valid_cpu_types = valid_cpu_types;
|
|
|
mmc->scc_id = 0x41055470;
|
|
|
mmc->sysclk_frq = 32 * 1000 * 1000; /* 32MHz */
|
|
|
mmc->apb_periph_frq = 25 * 1000 * 1000; /* 25MHz */
|