unicorn/qemu/target/arm
Peter Maydell 175b632c91
target/arm: Report GICv3 sysregs present in ID registers if needed
The CPU ID registers ID_AA64PFR0_EL1, ID_PFR1_EL1 and ID_PFR1
have a field for reporting presence of GICv3 system registers.
We need to report this field correctly in order for Xen to
work as a guest inside QEMU emulation. We mustn't incorrectly
claim the sysregs exist when they don't, though, or Linux will
crash.

Unfortunately the way we've designed the GICv3 emulation in QEMU
puts the system registers as part of the GICv3 device, which
may be created after the CPU proper has been realized. This
means that we don't know at the point when we define the ID
registers what the correct value is. Handle this by switching
them to calling a function at runtime to read the value, where
we can fill in the GIC field appropriately.

Backports commit 96a8b92ed8f02d5e86ad380d3299d9f41f99b072 from qemu
2018-03-05 13:48:28 -05:00
..
arm_ldst.h Fix Thumb-1 BE32 execution and disassembly. 2018-03-02 00:20:11 -05:00
arm-powerctl.c ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
arm-powerctl.h ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
cpu64.c target-arm: Enable EL2 feature bit on A53 and A57 2018-03-01 23:36:44 -05:00
cpu-qom.h
cpu.c qom: Introduce CPUClass.tcg_initialize 2018-03-05 09:49:26 -05:00
cpu.h target/arm: Report GICv3 sysregs present in ID registers if needed 2018-03-05 13:48:28 -05:00
crypto_helper.c
helper-a64.c target/arm: Use helper_retaddr in stxp helpers 2018-03-05 13:48:28 -05:00
helper-a64.h
helper.c target/arm: Report GICv3 sysregs present in ID registers if needed 2018-03-05 13:48:28 -05:00
helper.h fix WFI/WFE length in syndrome register 2018-03-05 11:21:51 -05:00
internals.h fix WFI/WFE length in syndrome register 2018-03-05 11:21:51 -05:00
iwmmxt_helper.c
kvm-consts.h arm: better stub version for MISMATCH_CHECK 2018-03-02 00:13:45 -05:00
Makefile.objs ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
neon_helper.c
op_addsub.h
op_helper.c fix WFI/WFE length in syndrome register 2018-03-05 11:21:51 -05:00
psci.c fix WFI/WFE length in syndrome register 2018-03-05 11:21:51 -05:00
translate-a64.c arm/translate-a64: mark path as unreachable to eliminate warning 2018-03-05 11:40:11 -05:00
translate.c translate.c: Fix usermode big-endian AArch32 LDREXD and STREXD 2018-03-05 11:39:29 -05:00
translate.h target/arm: Implement BXNS, and banked stack pointers 2018-03-04 21:21:23 -05:00
unicorn_aarch64.c
unicorn_arm.c
unicorn.h