[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 07/11] target/arm: Restrict ARMv7 M-profile cpus to TCG accel
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v6 07/11] target/arm: Restrict ARMv7 M-profile cpus to TCG accel |
Date: |
Sun, 31 Jan 2021 12:50:18 +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").
Beside, KVM only supports A-profile, thus won't be able to run
M-profile cpus.
Only enable the following ARMv7 M-Profile CPUs when TCG is available:
- Cortex-M0
- Cortex-M3
- Cortex-M4
- Cortex-M33
The following machines are no more built when TCG is disabled:
- emcraft-sf2 SmartFusion2 SOM kit from Emcraft (M2S010)
- highbank Calxeda Highbank (ECX-1000)
- lm3s6965evb Stellaris LM3S6965EVB (Cortex-M3)
- lm3s811evb Stellaris LM3S811EVB (Cortex-M3)
- midway Calxeda Midway (ECX-2000)
- mps2-an385 ARM MPS2 with AN385 FPGA image for Cortex-M3
- mps2-an386 ARM MPS2 with AN386 FPGA image for Cortex-M4
- mps2-an500 ARM MPS2 with AN500 FPGA image for Cortex-M7
- mps2-an505 ARM MPS2 with AN505 FPGA image for Cortex-M33
- mps2-an511 ARM MPS2 with AN511 DesignStart FPGA image for
Cortex-M3
- mps2-an521 ARM MPS2 with AN521 FPGA image for dual Cortex-M33
- musca-a ARM Musca-A board (dual Cortex-M33)
- musca-b1 ARM Musca-B1 board (dual Cortex-M33)
- netduino2 Netduino 2 Machine (Cortex-M3)
- netduinoplus2 Netduino Plus 2 Machine(Cortex-M4)
We don't need to enforce CONFIG_ARM_V7M in default-configs anymore.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
default-configs/devices/arm-softmmu.mak | 11 -----------
hw/arm/Kconfig | 7 +++++++
target/arm/Kconfig | 1 +
3 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/default-configs/devices/arm-softmmu.mak
b/default-configs/devices/arm-softmmu.mak
index 175530595ce..0fc80d7d6df 100644
--- a/default-configs/devices/arm-softmmu.mak
+++ b/default-configs/devices/arm-softmmu.mak
@@ -1,28 +1,17 @@
# Default configuration for arm-softmmu
-# TODO: ARM_V7M is currently always required - make this more flexible!
-CONFIG_ARM_V7M=y
-
# CONFIG_PCI_DEVICES=n
# CONFIG_TEST_DEVICES=n
CONFIG_ARM_VIRT=y
CONFIG_CUBIEBOARD=y
CONFIG_EXYNOS4=y
-CONFIG_HIGHBANK=y
-CONFIG_MUSCA=y
-CONFIG_STELLARIS=y
CONFIG_REALVIEW=y
CONFIG_VEXPRESS=y
CONFIG_ZYNQ=y
CONFIG_NPCM7XX=y
-CONFIG_NETDUINO2=y
-CONFIG_NETDUINOPLUS2=y
-CONFIG_MPS2=y
CONFIG_RASPI=y
CONFIG_SABRELITE=y
-CONFIG_EMCRAFT_SF2=y
-CONFIG_MICROBIT=y
CONFIG_FSL_IMX7=y
CONFIG_FSL_IMX6UL=y
CONFIG_ALLWINNER_H3=y
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index 4baf1f97694..62f8b0d24e7 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -60,6 +60,7 @@ config EXYNOS4
config HIGHBANK
bool
+ default y if TCG && ARM
select A9MPCORE
select A15MPCORE
select AHCI
@@ -95,6 +96,7 @@ config MAINSTONE
config MUSCA
bool
+ default y if TCG && ARM
select ARMSSE
select PL011
select PL031
@@ -115,10 +117,12 @@ config MUSICPAL
config NETDUINO2
bool
+ default y if TCG && ARM
select STM32F205_SOC
config NETDUINOPLUS2
bool
+ default y if TCG && ARM
select STM32F405_SOC
config NSERIES
@@ -240,6 +244,7 @@ config SABRELITE
config STELLARIS
bool
+ default y if TCG && ARM
select ARM_V7M
select CMSDK_APB_WATCHDOG
select I2C
@@ -443,6 +448,7 @@ config ASPEED_SOC
config MPS2
bool
+ default y if TCG && ARM
select ARMSSE
select LAN9118
select MPS2_FPGAIO
@@ -496,6 +502,7 @@ config NRF51_SOC
config EMCRAFT_SF2
bool
+ default y if TCG && ARM
select MSF2
select SSI_M25P80
diff --git a/target/arm/Kconfig b/target/arm/Kconfig
index 4dc96c46520..07a2fad7a2b 100644
--- a/target/arm/Kconfig
+++ b/target/arm/Kconfig
@@ -24,4 +24,5 @@ config ARM_V7R
config ARM_V7M
bool
+ depends on TCG && ARM
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é, 2021/01/31
- [PATCH v6 07/11] target/arm: Restrict ARMv7 M-profile cpus to TCG accel,
Philippe Mathieu-Daudé <=
- [PATCH v6 08/11] target/arm: Make m_helper.c optional via CONFIG_ARM_V7M, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 09/11] target/arm: Reorder meson.build rules, 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 05/11] target/arm: Restrict ARMv6 cpus to TCG accel, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 10/11] target/arm: Do not build TCG objects when TCG is off, Philippe Mathieu-Daudé, 2021/01/31
- [PATCH v6 11/11] .travis.yml: Add a KVM-only Aarch64 job, Philippe Mathieu-Daudé, 2021/01/31