[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 2/2] hw/arm/raspi: Restrict BCM2835 / BCM2836 SoC to TCG
From: |
Philippe Mathieu-Daudé |
Subject: |
[RFC PATCH 2/2] hw/arm/raspi: Restrict BCM2835 / BCM2836 SoC to TCG |
Date: |
Sun, 31 Jan 2021 16:14:10 +0100 |
KVM requires the target cpu to be at least ARMv8 architecture
(support on ARMv7 has been dropped in commit 82bf7ae84ce:
"target/arm: Remove KVM support for 32-bit Arm hosts").
>From the various SoC used by the Raspberry Pi machines, only
the BCM2837 is an ARMv8 (Cortex-A53).
Restrict the BCM2835 (ARM1176) and BCM2836 (Cortex-A7) to TCG.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/arm/bcm2836.c | 6 ++++++
hw/arm/raspi.c | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/hw/arm/bcm2836.c b/hw/arm/bcm2836.c
index fd16ed87c40..3051764f2dc 100644
--- a/hw/arm/bcm2836.c
+++ b/hw/arm/bcm2836.c
@@ -89,6 +89,7 @@ static bool bcm283x_common_realize(DeviceState *dev, Error
**errp)
return true;
}
+#ifdef CONFIG_TCG
static void bcm2835_realize(DeviceState *dev, Error **errp)
{
BCM283XState *s = BCM283X(dev);
@@ -107,6 +108,7 @@ static void bcm2835_realize(DeviceState *dev, Error **errp)
sysbus_connect_irq(SYS_BUS_DEVICE(&s->peripherals), 1,
qdev_get_gpio_in(DEVICE(&s->cpu[0].core), ARM_CPU_FIQ));
}
+#endif /* CONFIG_TCG */
static void bcm2836_realize(DeviceState *dev, Error **errp)
{
@@ -178,6 +180,7 @@ static void bcm283x_class_init(ObjectClass *oc, void *data)
dc->user_creatable = false;
}
+#ifdef CONFIG_TCG
static void bcm2835_class_init(ObjectClass *oc, void *data)
{
DeviceClass *dc = DEVICE_CLASS(oc);
@@ -201,6 +204,7 @@ static void bcm2836_class_init(ObjectClass *oc, void *data)
bc->clusterid = 0xf;
dc->realize = bcm2836_realize;
};
+#endif /* CONFIG_TCG */
#ifdef TARGET_AARCH64
static void bcm2837_class_init(ObjectClass *oc, void *data)
@@ -227,6 +231,7 @@ static const TypeInfo bcm283x_types[] = {
.class_init = bcm283x_class_init,
.abstract = true,
},
+#ifdef CONFIG_TCG
{
.name = TYPE_BCM2835,
.parent = TYPE_BCM283X,
@@ -236,6 +241,7 @@ static const TypeInfo bcm283x_types[] = {
.parent = TYPE_BCM283X,
.class_init = bcm2836_class_init,
},
+#endif /* CONFIG_TCG */
#ifdef TARGET_AARCH64
{
.name = TYPE_BCM2837,
diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c
index dce966a4dd8..cfa15504d9c 100644
--- a/hw/arm/raspi.c
+++ b/hw/arm/raspi.c
@@ -319,6 +319,7 @@ static void raspi_machine_class_common_init(MachineClass
*mc,
mc->default_ram_id = "ram";
};
+#ifdef CONFIG_TCG
static void raspi0_machine_class_init(ObjectClass *oc, void *data)
{
MachineClass *mc = MACHINE_CLASS(oc);
@@ -346,6 +347,7 @@ static void raspi2b_machine_class_init(ObjectClass *oc,
void *data)
rmc->board_rev = 0xa21041;
raspi_machine_class_common_init(mc, rmc->board_rev);
};
+#endif /* CONFIG_TCG */
#ifdef TARGET_AARCH64
static void raspi3ap_machine_class_init(ObjectClass *oc, void *data)
@@ -376,6 +378,7 @@ static const TypeInfo raspi_machine_types[] = {
.class_size = sizeof(RaspiMachineClass),
.abstract = true,
},
+#ifdef CONFIG_TCG
{
.name = MACHINE_TYPE_NAME("raspi0"),
.parent = TYPE_RASPI_MACHINE,
@@ -389,6 +392,7 @@ static const TypeInfo raspi_machine_types[] = {
.parent = TYPE_RASPI_MACHINE,
.class_init = raspi2b_machine_class_init,
},
+#endif /* CONFIG_TCG */
#ifdef TARGET_AARCH64
{
.name = MACHINE_TYPE_NAME("raspi3ap"),
--
2.26.2