On 6/4/21 8:53 AM, Alex Bennée wrote: > config ARM_V7M > bool > + # currently v7M must be included in a TCG build due to translate.c > + default y if TCG && (ARM || AARCH64) > select PTIMER > + select ARM_COMPATIBLE_SEMIHOSTING I don't really understand "default", because if one were to set ARM_V7M=n in the config, things wouldn't work. But I guess the comment sort-of covers that. I'll give you an Acked-by: Richard Henderson <richard.henderson@linaro.org> anyway, because it does seem an improvement for the --disable-tcg case. r~
diff --git a/default-configs/devices/arm-softmmu.mak b/default-configs/devices/arm-softmmu.mak index 0500156a0c..4114aa9e35 100644 --- a/default-configs/devices/arm-softmmu.mak +++ b/default-configs/devices/arm-softmmu.mak @@ -1,8 +1,5 @@ # 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 diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 67723d9ea6..afaf807c92 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -296,7 +296,10 @@ config ZYNQ config ARM_V7M bool + # currently v7M must be included in a TCG build due to translate.c + default y if TCG && (ARM || AARCH64) select PTIMER + select ARM_COMPATIBLE_SEMIHOSTING config ALLWINNER_A10 bool diff --git a/target/arm/tcg/sysemu/meson.build b/target/arm/tcg/sysemu/meson.build index 56e4b5ccea..520f305deb 100644 --- a/target/arm/tcg/sysemu/meson.build +++ b/target/arm/tcg/sysemu/meson.build @@ -1,7 +1,10 @@ arm_softmmu_ss.add(when: 'CONFIG_TCG', if_true: files( 'debug_helper.c', - 'm_helper.c', 'mte_helper.c', 'tcg-cpu.c', 'tlb_helper.c', )) + +arm_softmmu_ss.add(when: 'CONFIG_ARM_V7M', if_true: files( + 'm_helper.c', +))
We currently select CONFIG_V7M for a bunch of our m-profile devices. The last sticking point is translate.c which cannot be compiled without expecting v7m support. Express this dependency in Kconfig rather than in default devices as a stepping stone to a fully configurable translate.c. While we are at it we also need to select ARM_COMPATIBLE_SEMIHOSTING as that is implied for M profile machines. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- default-configs/devices/arm-softmmu.mak | 3 --- hw/arm/Kconfig | 3 +++ target/arm/tcg/sysemu/meson.build | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-)