For the build _with_ TCG, this should behave the same as master.
Based on Richard's "target/arm: Introduce aarch64_set_svcr":
https://lore.kernel.org/r/20230112004322.161330-1-richard.henderson@linaro.org
Claudio Fontana (5):
target/arm: rename handle_semihosting to tcg_handle_semihosting
target/arm: wrap psci call with tcg_enabled
target/arm: wrap call to aarch64_sve_change_el in tcg_enabled()
target/arm: move helpers to tcg/
target/arm: Move psci.c into the tcg directory
Fabiano Rosas (15):
target/arm: Move PC alignment check
target/arm: Move cpregs code out of cpu.h
target/arm: Move cpregs code into cpregs.c
target/arm: Move define_debug_regs() to cpregs.c
target/arm: Wrap breakpoint/watchpoint updates with tcg_enabled
target/arm: move translate modules to tcg/
target/arm: Wrap arm_rebuild_hflags calls with tcg_enabled
target/arm: Move hflags code into the tcg directory
target/arm: Move regime_using_lpae_format into internal.h
target/arm: Don't access TCG code when debugging with KVM
cpu-defs.h: Expose CPUTLBEntryFull to non-TCG code
target/arm: Move cortex sysregs into cpregs.c
tests/qtest: Restrict bcm2835-dma-test to CONFIG_RASPI
tests/avocado: Skip tests that require a missing accelerator
tests/avocado: Tag TCG tests with accel:tcg
Testing on Darwin:
14/20 qemu:qtest+qtest-aarch64 / qtest-aarch64/test-hmp
ERROR:../../target/arm/helper.c:2495:arm_v7m_mmu_idx_for_secstate: code
should not be reached
17/20 qemu:qtest+qtest-aarch64 / qtest-aarch64/qom-test
qemu-system-aarch64: unknown type 'arm-gicv3'
18/20 qemu:qtest+qtest-aarch64 / qtest-aarch64/boot-serial-test
qemu-system-aarch64: -accel tcg: invalid accelerator tcg
19/20 qemu:qtest+qtest-aarch64 / qtest-aarch64/vnc-display-test
qemu-system-aarch64: No machine specified, and there is no default
20/20 qemu:qtest+qtest-aarch64 / qtest-aarch64/migration-test
qemu-system-aarch64: -accel tcg: invalid accelerator tcg
Reproducers:
$ ./qemu-system-aarch64 -display none -S -M mps3-an547 -accel qtest
-monitor stdio
QEMU 7.2.50 monitor - type 'help' for more information
(qemu) gva2gpa 0
**
ERROR:../../target/arm/helper.c:2495:arm_v7m_mmu_idx_for_secstate: code
should not be reached
Bail out!
ERROR:../../target/arm/helper.c:2495:arm_v7m_mmu_idx_for_secstate: code
should not be reached
Abort trap: 6
frame #4: 0x0000000101fdd6cc
libglib-2.0.0.dylib`g_assertion_message_expr + 116
frame #5: 0x0000000100360ce0
qemu-system-aarch64`arm_v7m_mmu_idx_for_secstate(env=<unavailable>,
secstate=<unavailable>) at helper.c:2495:5
frame #6: 0x000000010035f7f4
qemu-system-aarch64`arm_mmu_idx_el(env=<unavailable>, el=<unavailable>)
at helper.c:2514:16
frame #7: 0x00000001002d17ec
qemu-system-aarch64`arm_cpu_get_phys_page_attrs_debug(cs=<unavailable>,
addr=0, attrs=0x000000016fdfda50) at ptw.c:2982:23
frame #8: 0x00000001003c660c
qemu-system-aarch64`hmp_gva2gpa(mon=0x000060000390f0c0,
qdict=<unavailable>) at misc.c:714:12
$ ./qemu-system-aarch64 -display none -machine sbsa-ref -accel qtest
qemu-system-aarch64: unknown type 'arm-gicv3'
Abort trap: 6
frame #2: 0x00000001958522c8 libsystem_c.dylib`abort + 180
frame #3: 0x00000001003d32e8
qemu-system-aarch64`qdev_new(name="arm-gicv3") at qdev.c:164:9
frame #4: 0x00000001002f30d4 qemu-system-aarch64`sbsa_ref_init
[inlined] create_gic(sms=0x0000000103ff0d10) at sbsa-ref.c:405:16
frame #5: 0x00000001002f30a0
qemu-system-aarch64`sbsa_ref_init(machine=0x0000000103ff0d10) at
sbsa-ref.c:773:5
frame #6: 0x00000001000905c0
qemu-system-aarch64`machine_run_board_init(machine=0x0000000103ff0d10,
mem_path=<unavailable>, errp=<unavailable>) at machine.c:1404:5