@@ -1510,9 +1510,16 @@ static const TypeInfo arm_cpu_type_info = {
.class_init = arm_cpu_class_init,
};
+static const TypeInfo idau_interface_type_info = {
+ .name = TYPE_IDAU_INTERFACE,
+ .parent = TYPE_INTERFACE,
+ .class_size = sizeof(IDAUInterfaceClass),
+};
+
static void arm_cpu_register_types(void)
{
type_register_static(&arm_cpu_type_info);
+ type_register_static(&idau_interface_type_info);
#ifdef CONFIG_KVM
type_register_static(&host_arm_cpu_type_info);
@@ -12,7 +12,6 @@
#include "tcg-cpu.h"
#include "internals.h"
-#include "target/arm/idau.h"
#if !defined(CONFIG_USER_ONLY)
#include "hw/boards.h"
#endif
@@ -987,17 +986,10 @@ static const ARMCPUInfo arm_tcg_cpus[] = {
#endif
};
-static const TypeInfo idau_interface_type_info = {
- .name = TYPE_IDAU_INTERFACE,
- .parent = TYPE_INTERFACE,
- .class_size = sizeof(IDAUInterfaceClass),
-};
-
static void arm_tcg_cpu_register_types(void)
{
size_t i;
- type_register_static(&idau_interface_type_info);
for (i = 0; i < ARRAY_SIZE(arm_tcg_cpus); ++i) {
arm32_cpu_register(&arm_tcg_cpus[i]);
}
This reverts commit 6e937ba7f8fb90d66cb3781f7fed32fb4239556a This change breaks quickly at startup, as all interfaces in boards are checked in vl.c in select_machine(): { GSList *machines = object_class_get_list(TYPE_MACHINE, false); } In order to restrict v8M IDAU to TCG, we need to first disable all incompatible boards when building only KVM. Signed-off-by: Claudio Fontana <cfontana@suse.de> Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> --- target/arm/cpu.c | 7 +++++++ target/arm/tcg/tcg-cpu-models.c | 8 -------- 2 files changed, 7 insertions(+), 8 deletions(-)