Cover from Samuel Ortiz from (part 1) [1]: This patchset allows for building and running ARM targets with TCG disabled. [...]
The rationale behind this work comes from the NEMU project where we're trying to only support x86 and ARM 64-bit architectures, without including the TCG code base. We can only do so if we can build and run ARM binaries with TCG disabled. v3 almost 18 months later: - Rebased - Addressed Thomas review comments - Added Travis-CI job to keep building --disable-tcg on ARM v2 [2]: - Addressed review comments from Richard and Thomas from v1 [3] Regards, Phil. [1]: https://lists.gnu.org/archive/html/qemu-devel/2018-11/msg02451.html [2]: https://www.mail-archive.com/qemu-devel@nongnu.org/msg641796.html [3]: https://lists.gnu.org/archive/html/qemu-devel/2019-08/msg05003.html Based-on: <20200316120049.11225-1-phi...@redhat.com> "accel: Allow targets to use Kconfig, disable semihosting by default" https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg04653.html Philippe Mathieu-Daudé (15): target/arm: Rename KVM set_feature() as kvm_set_feature() target/arm: Restrict DC-CVAP instruction to TCG accel target/arm: Restric the Address Translate operations to TCG accel target/arm: Restrict Virtualization Host Extensions instructions to TCG target/arm: Move Makefile variable restricted to CONFIG_TCG target/arm: Add semihosting stub to allow building without TCG target/arm: Move ARM_V7M Kconfig from hw/ to target/ target/arm: Restrict ARMv4 cpus to TCG accel target/arm: Restrict ARMv5 cpus to TCG accel target/arm: Restrict ARMv6 cpus to TCG accel target/arm: Restrict ARMv7 R-profile cpus to TCG accel target/arm: Restrict ARMv7 M-profile cpus to TCG accel hw/arm: Automatically select the 'virt' machine on KVM hw/arm: Do not build to 'virt' machine on Xen .travis.yml: Add a KVM-only Aarch64 job Samuel Ortiz (1): target/arm: Do not build TCG objects when TCG is off Thomas Huth (3): target/arm: Make set_feature() available for other files target/arm: Make cpu_register() available for other files target/arm: Make m_helper.c optional via CONFIG_ARM_V7M default-configs/aarch64-softmmu.mak | 1 - default-configs/arm-softmmu.mak | 30 -- target/arm/cpu-qom.h | 9 +- target/arm/cpu.h | 7 + target/arm/internals.h | 10 + target/arm/arm-semi-stub.c | 13 + target/arm/cpu.c | 651 +--------------------------- target/arm/cpu64.c | 19 +- target/arm/cpu_v4.c | 65 +++ target/arm/cpu_v5.c | 266 ++++++++++++ target/arm/cpu_v6.c | 171 ++++++++ target/arm/cpu_v7m.c | 207 +++++++++ target/arm/cpu_v7r.c | 83 ++++ target/arm/helper.c | 54 +-- target/arm/kvm32.c | 10 +- target/arm/kvm64.c | 16 +- target/arm/m_helper-stub.c | 59 +++ .travis.yml | 32 ++ hw/arm/Kconfig | 17 +- target/Kconfig | 2 +- target/arm/Kconfig | 19 + target/arm/Makefile.objs | 17 +- 22 files changed, 1016 insertions(+), 742 deletions(-) create mode 100644 target/arm/arm-semi-stub.c create mode 100644 target/arm/cpu_v4.c create mode 100644 target/arm/cpu_v5.c create mode 100644 target/arm/cpu_v6.c create mode 100644 target/arm/cpu_v7m.c create mode 100644 target/arm/cpu_v7r.c create mode 100644 target/arm/m_helper-stub.c create mode 100644 target/arm/Kconfig -- 2.21.1