[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 04/11] target/arm: Restrict ARMv5 cpus to TCG accel
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v6 04/11] target/arm: Restrict ARMv5 cpus to TCG accel |
Date: |
Sun, 31 Jan 2021 12:50:15 +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").
Only enable the following ARMv5 CPUs when TCG is available:
- ARM926
- ARM946
- ARM1026
- XScale (PXA250/255/260/261/262/270)
The following machines are no more built when TCG is disabled:
- akita Sharp SL-C1000 (Akita) PDA (PXA270)
- ast2500-evb Aspeed AST2500 EVB (ARM1176)
- ast2600-evb Aspeed AST2600 EVB (Cortex A7)
- borzoi Sharp SL-C3100 (Borzoi) PDA (PXA270)
- canon-a1100 Canon PowerShot A1100 IS (ARM946)
- collie Sharp SL-5500 (Collie) PDA (SA-1110)
- connex Gumstix Connex (PXA255)
- g220a-bmc Bytedance G220A BMC (ARM1176)
- imx25-pdk ARM i.MX25 PDK board (ARM926)
- integratorcp ARM Integrator/CP (ARM926EJ-S)
- mainstone Mainstone II (PXA27x)
- musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
- palmetto-bmc OpenPOWER Palmetto BMC (ARM926EJ-S)
- realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
- romulus-bmc OpenPOWER Romulus BMC (ARM1176)
- sonorapass-bmc OCP SonoraPass BMC (ARM1176)
- spitz Sharp SL-C3000 (Spitz) PDA (PXA270)
- supermicrox11-bmc Supermicro X11 BMC (ARM926EJ-S)
- swift-bmc OpenPOWER Swift BMC (ARM1176)
- tacoma-bmc OpenPOWER Tacoma BMC (Cortex A7)
- terrier Sharp SL-C3200 (Terrier) PDA (PXA270)
- tosa Sharp SL-6000 (Tosa) PDA (PXA255)
- verdex Gumstix Verdex (PXA270)
- versatileab ARM Versatile/AB (ARM926EJ-S)
- versatilepb ARM Versatile/PB (ARM926EJ-S)
- witherspoon-bmc OpenPOWER Witherspoon BMC (ARM1176)
- z2 Zipit Z2 (PXA27x)
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
default-configs/devices/arm-softmmu.mak | 12 ------------
hw/arm/realview.c | 5 ++++-
tests/qtest/cdrom-test.c | 6 +++++-
hw/arm/Kconfig | 19 +++++++++++++++++++
target/arm/Kconfig | 4 ++++
5 files changed, 32 insertions(+), 14 deletions(-)
diff --git a/default-configs/devices/arm-softmmu.mak
b/default-configs/devices/arm-softmmu.mak
index 6ae964c14fd..0aad35da0c4 100644
--- a/default-configs/devices/arm-softmmu.mak
+++ b/default-configs/devices/arm-softmmu.mak
@@ -10,33 +10,21 @@ CONFIG_ARM_VIRT=y
CONFIG_CUBIEBOARD=y
CONFIG_EXYNOS4=y
CONFIG_HIGHBANK=y
-CONFIG_INTEGRATOR=y
CONFIG_FSL_IMX31=y
-CONFIG_MUSICPAL=y
CONFIG_MUSCA=y
CONFIG_NSERIES=y
CONFIG_STELLARIS=y
CONFIG_REALVIEW=y
-CONFIG_VERSATILE=y
CONFIG_VEXPRESS=y
CONFIG_ZYNQ=y
-CONFIG_MAINSTONE=y
-CONFIG_GUMSTIX=y
-CONFIG_SPITZ=y
-CONFIG_TOSA=y
-CONFIG_Z2=y
CONFIG_NPCM7XX=y
-CONFIG_COLLIE=y
-CONFIG_ASPEED_SOC=y
CONFIG_NETDUINO2=y
CONFIG_NETDUINOPLUS2=y
CONFIG_MPS2=y
CONFIG_RASPI=y
-CONFIG_DIGIC=y
CONFIG_SABRELITE=y
CONFIG_EMCRAFT_SF2=y
CONFIG_MICROBIT=y
-CONFIG_FSL_IMX25=y
CONFIG_FSL_IMX7=y
CONFIG_FSL_IMX6UL=y
CONFIG_ALLWINNER_H3=y
diff --git a/hw/arm/realview.c b/hw/arm/realview.c
index 0831159d158..2dcf0a4c23e 100644
--- a/hw/arm/realview.c
+++ b/hw/arm/realview.c
@@ -18,6 +18,7 @@
#include "hw/pci/pci.h"
#include "net/net.h"
#include "sysemu/sysemu.h"
+#include "sysemu/tcg.h"
#include "hw/boards.h"
#include "hw/i2c/i2c.h"
#include "exec/address-spaces.h"
@@ -460,7 +461,9 @@ static const TypeInfo realview_pbx_a9_type = {
static void realview_machine_init(void)
{
- type_register_static(&realview_eb_type);
+ if (tcg_builtin()) {
+ type_register_static(&realview_eb_type);
+ }
type_register_static(&realview_eb_mpcore_type);
type_register_static(&realview_pb_a8_type);
type_register_static(&realview_pbx_a9_type);
diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c
index 5af944a5fb7..1f1bc26fa7a 100644
--- a/tests/qtest/cdrom-test.c
+++ b/tests/qtest/cdrom-test.c
@@ -222,7 +222,11 @@ int main(int argc, char **argv)
add_cdrom_param_tests(mips64machines);
} else if (g_str_equal(arch, "arm") || g_str_equal(arch, "aarch64")) {
const char *armmachines[] = {
- "realview-eb", "realview-eb-mpcore", "realview-pb-a8",
+#ifdef CONFIG_TCG
+ "realview-eb",
+#endif /* CONFIG_TCG */
+ "realview-eb-mpcore",
+ "realview-pb-a8",
"realview-pbx-a9", "versatileab", "versatilepb", "vexpress-a15",
"vexpress-a9", "virt", NULL
};
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index f2957b33bee..560442bfc5c 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -42,6 +42,8 @@ config CUBIEBOARD
config DIGIC
bool
+ default y if TCG && ARM
+ select ARM_V5
select PTIMER
select PFLASH_CFI02
@@ -72,6 +74,8 @@ config HIGHBANK
config INTEGRATOR
bool
+ default y if TCG && ARM
+ select ARM_V5
select ARM_TIMER
select INTEGRATOR_DEBUG
select PL011 # UART
@@ -84,6 +88,7 @@ config INTEGRATOR
config MAINSTONE
bool
+ default y if TCG && ARM
select PXA2XX
select PFLASH_CFI01
select SMC91C111
@@ -98,6 +103,8 @@ config MUSCA
config MUSICPAL
bool
+ default y if TCG && ARM
+ select ARM_V5
select OR_IRQ
select BITBANG_I2C
select MARVELL_88W8618
@@ -138,6 +145,7 @@ config OMAP
config PXA2XX
bool
+ select ARM_V5
select FRAMEBUFFER
select I2C
select SERIAL
@@ -147,12 +155,14 @@ config PXA2XX
config GUMSTIX
bool
+ default y if TCG && ARM
select PFLASH_CFI01
select SMC91C111
select PXA2XX
config TOSA
bool
+ default y if TCG && ARM
select ZAURUS # scoop
select MICRODRIVE
select PXA2XX
@@ -160,6 +170,7 @@ config TOSA
config SPITZ
bool
+ default y if TCG && ARM
select ADS7846 # touch-screen controller
select MAX111X # A/D converter
select WM8750 # audio codec
@@ -172,6 +183,7 @@ config SPITZ
config Z2
bool
+ default y if TCG && ARM
select PFLASH_CFI01
select WM8750
select PL011 # UART
@@ -245,6 +257,7 @@ config STRONGARM
config COLLIE
bool
+ default y if TCG && ARM
select PFLASH_CFI01
select ZAURUS # scoop
select STRONGARM
@@ -257,6 +270,8 @@ config SX1
config VERSATILE
bool
+ default y if TCG && ARM
+ select ARM_V5
select ARM_TIMER # sp804
select PFLASH_CFI01
select LSI_SCSI_PCI
@@ -376,6 +391,8 @@ config NPCM7XX
config FSL_IMX25
bool
+ default y if TCG && ARM
+ select ARM_V5
select IMX
select IMX_FEC
select IMX_I2C
@@ -402,6 +419,8 @@ config FSL_IMX6
config ASPEED_SOC
bool
+ default y if TCG && ARM
+ select ARM_V5
select DS1338
select FTGMAC100
select I2C
diff --git a/target/arm/Kconfig b/target/arm/Kconfig
index 811e1e81652..9b3635617dc 100644
--- a/target/arm/Kconfig
+++ b/target/arm/Kconfig
@@ -10,6 +10,10 @@ config ARM_V4
bool
depends on TCG && ARM
+config ARM_V5
+ bool
+ depends on TCG && ARM
+
config ARM_V7M
bool
select PTIMER
--
2.26.2
- [PATCH v6 00/11] Support disabling TCG on ARM (part 2), Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 01/11] sysemu/tcg: Introduce tcg_builtin() helper, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 02/11] exec: Restrict TCG specific headers, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 03/11] target/arm: Restrict ARMv4 cpus to TCG accel, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 04/11] target/arm: Restrict ARMv5 cpus to TCG accel,
Philippe Mathieu-Daudé <=
- [PATCH v6 09/11] target/arm: Reorder meson.build rules, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 05/11] target/arm: Restrict ARMv6 cpus to TCG accel, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 07/11] target/arm: Restrict ARMv7 M-profile cpus to TCG accel, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 06/11] target/arm: Restrict ARMv7 R-profile cpus to TCG accel, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 08/11] target/arm: Make m_helper.c optional via CONFIG_ARM_V7M, Philippe Mathieu-Daudé, 2021/01/31