1
The following changes since commit e3debd5e7d0ce031356024878a0a18b9d109354a:
1
This pullreq is (1) my GICv4 patches (2) most of the first third of RTH's
2
cleanup patchset (3) one patch fixing an smmuv3 bug...
2
3
3
Merge tag 'pull-request-2023-03-24' of https://gitlab.com/thuth/qemu into staging (2023-03-24 16:08:46 +0000)
4
v2 changes: fix build failure on aarch64 hosts by moving the
5
gicv3_add_its() and gicv3_foreach_its() functions to
6
arm_gicv3_its_common.h.
7
8
thanks
9
-- PMM
10
11
12
The following changes since commit a74782936dc6e979ce371dabda4b1c05624ea87f:
13
14
Merge tag 'pull-migration-20220421a' of https://gitlab.com/dagrh/qemu into staging (2022-04-21 18:48:18 -0700)
4
15
5
are available in the Git repository at:
16
are available in the Git repository at:
6
17
7
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20230328
18
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20220422-1
8
19
9
for you to fetch changes up to 46e3b237c52e0c48bfd81bce020b51fbe300b23a:
20
for you to fetch changes up to c3ca7d56c4790c2223122f7e84b71161cd36dbce:
10
21
11
target/arm/gdbstub: Only advertise M-profile features if TCG available (2023-03-28 10:53:40 +0100)
22
hw/arm/smmuv3: Pass the actual perm to returned IOMMUTLBEntry in smmuv3_translate() (2022-04-22 14:44:55 +0100)
12
23
13
----------------------------------------------------------------
24
----------------------------------------------------------------
14
target-arm queue:
25
target-arm queue:
15
* fix part of the "TCG-disabled builds are broken" issue
26
* Implement GICv4 emulation
27
* Some cleanup patches in target/arm
28
* hw/arm/smmuv3: Pass the actual perm to returned IOMMUTLBEntry in smmuv3_translate()
16
29
17
----------------------------------------------------------------
30
----------------------------------------------------------------
18
Philippe Mathieu-Daudé (1):
31
Peter Maydell (41):
19
target/arm/gdbstub: Only advertise M-profile features if TCG available
32
hw/intc/arm_gicv3_its: Add missing blank line
33
hw/intc/arm_gicv3: Sanity-check num-cpu property
34
hw/intc/arm_gicv3: Insist that redist region capacity matches CPU count
35
hw/intc/arm_gicv3: Report correct PIDR0 values for ID registers
36
target/arm/cpu.c: ignore VIRQ and VFIQ if no EL2
37
hw/intc/arm_gicv3_its: Factor out "is intid a valid LPI ID?"
38
hw/intc/arm_gicv3_its: Implement GITS_BASER2 for GICv4
39
hw/intc/arm_gicv3_its: Implement VMAPI and VMAPTI
40
hw/intc/arm_gicv3_its: Implement VMAPP
41
hw/intc/arm_gicv3_its: Distinguish success and error cases of CMD_CONTINUE
42
hw/intc/arm_gicv3_its: Factor out "find ITE given devid, eventid"
43
hw/intc/arm_gicv3_its: Factor out CTE lookup sequence
44
hw/intc/arm_gicv3_its: Split out process_its_cmd() physical interrupt code
45
hw/intc/arm_gicv3_its: Handle virtual interrupts in process_its_cmd()
46
hw/intc/arm_gicv3: Keep pointers to every connected ITS
47
hw/intc/arm_gicv3_its: Implement VMOVP
48
hw/intc/arm_gicv3_its: Implement VSYNC
49
hw/intc/arm_gicv3_its: Implement INV command properly
50
hw/intc/arm_gicv3_its: Implement INV for virtual interrupts
51
hw/intc/arm_gicv3_its: Implement VMOVI
52
hw/intc/arm_gicv3_its: Implement VINVALL
53
hw/intc/arm_gicv3: Implement GICv4's new redistributor frame
54
hw/intc/arm_gicv3: Implement new GICv4 redistributor registers
55
hw/intc/arm_gicv3_cpuif: Split "update vIRQ/vFIQ" from gicv3_cpuif_virt_update()
56
hw/intc/arm_gicv3_cpuif: Support vLPIs
57
hw/intc/arm_gicv3_cpuif: Don't recalculate maintenance irq unnecessarily
58
hw/intc/arm_gicv3_redist: Factor out "update hpplpi for one LPI" logic
59
hw/intc/arm_gicv3_redist: Factor out "update hpplpi for all LPIs" logic
60
hw/intc/arm_gicv3_redist: Recalculate hppvlpi on VPENDBASER writes
61
hw/intc/arm_gicv3_redist: Factor out "update bit in pending table" code
62
hw/intc/arm_gicv3_redist: Implement gicv3_redist_process_vlpi()
63
hw/intc/arm_gicv3_redist: Implement gicv3_redist_vlpi_pending()
64
hw/intc/arm_gicv3_redist: Use set_pending_table_bit() in mov handling
65
hw/intc/arm_gicv3_redist: Implement gicv3_redist_mov_vlpi()
66
hw/intc/arm_gicv3_redist: Implement gicv3_redist_vinvall()
67
hw/intc/arm_gicv3_redist: Implement gicv3_redist_inv_vlpi()
68
hw/intc/arm_gicv3: Update ID and feature registers for GICv4
69
hw/intc/arm_gicv3: Allow 'revision' property to be set to 4
70
hw/arm/virt: Use VIRT_GIC_VERSION_* enum values in create_gic()
71
hw/arm/virt: Abstract out calculation of redistributor region capacity
72
hw/arm/virt: Support TCG GICv4
20
73
21
target/arm/gdbstub.c | 5 +++--
74
Richard Henderson (19):
22
1 file changed, 3 insertions(+), 2 deletions(-)
75
target/arm: Update ISAR fields for ARMv8.8
76
target/arm: Update SCR_EL3 bits to ARMv8.8
77
target/arm: Update SCTLR bits to ARMv9.2
78
target/arm: Change DisasContext.aarch64 to bool
79
target/arm: Change CPUArchState.aarch64 to bool
80
target/arm: Extend store_cpu_offset to take field size
81
target/arm: Change DisasContext.thumb to bool
82
target/arm: Change CPUArchState.thumb to bool
83
target/arm: Remove fpexc32_access
84
target/arm: Split out set_btype_raw
85
target/arm: Split out gen_rebuild_hflags
86
target/arm: Simplify GEN_SHIFT in translate.c
87
target/arm: Simplify gen_sar
88
target/arm: Simplify aa32 DISAS_WFI
89
target/arm: Use tcg_constant in translate-m-nocp.c
90
target/arm: Use tcg_constant in translate-neon.c
91
target/arm: Use smin/smax for do_sat_addsub_32
92
target/arm: Use tcg_constant in translate-vfp.c
93
target/arm: Use tcg_constant_i32 in translate.h
23
94
95
Xiang Chen (1):
96
hw/arm/smmuv3: Pass the actual perm to returned IOMMUTLBEntry in smmuv3_translate()
97
98
docs/system/arm/virt.rst | 5 +-
99
hw/intc/gicv3_internal.h | 213 +++++++-
100
include/hw/arm/virt.h | 19 +-
101
include/hw/intc/arm_gicv3_common.h | 13 +
102
include/hw/intc/arm_gicv3_its_common.h | 19 +
103
target/arm/cpu.h | 59 ++-
104
target/arm/translate-a32.h | 13 +-
105
target/arm/translate.h | 17 +-
106
hw/arm/smmuv3.c | 2 +-
107
hw/arm/virt.c | 102 +++-
108
hw/intc/arm_gicv3_common.c | 54 +-
109
hw/intc/arm_gicv3_cpuif.c | 195 ++++++--
110
hw/intc/arm_gicv3_dist.c | 7 +-
111
hw/intc/arm_gicv3_its.c | 876 +++++++++++++++++++++++++++------
112
hw/intc/arm_gicv3_its_kvm.c | 2 +
113
hw/intc/arm_gicv3_kvm.c | 5 +
114
hw/intc/arm_gicv3_redist.c | 480 +++++++++++++++---
115
linux-user/arm/cpu_loop.c | 2 +-
116
target/arm/cpu.c | 16 +-
117
target/arm/helper-a64.c | 4 +-
118
target/arm/helper.c | 19 +-
119
target/arm/hvf/hvf.c | 2 +-
120
target/arm/m_helper.c | 6 +-
121
target/arm/op_helper.c | 13 -
122
target/arm/translate-a64.c | 50 +-
123
target/arm/translate-m-nocp.c | 12 +-
124
target/arm/translate-neon.c | 21 +-
125
target/arm/translate-sve.c | 9 +-
126
target/arm/translate-vfp.c | 76 +--
127
target/arm/translate.c | 101 ++--
128
hw/intc/trace-events | 18 +-
129
31 files changed, 1890 insertions(+), 540 deletions(-)
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <philmd@linaro.org>
2
1
3
Cortex-M profile is only emulable from TCG accelerator. Restrict
4
the GDBstub features to its availability in order to avoid a link
5
error when TCG is not enabled:
6
7
Undefined symbols for architecture arm64:
8
"_arm_v7m_get_sp_ptr", referenced from:
9
_m_sysreg_get in target_arm_gdbstub.c.o
10
"_arm_v7m_mrs_control", referenced from:
11
_arm_gdb_get_m_systemreg in target_arm_gdbstub.c.o
12
ld: symbol(s) not found for architecture arm64
13
clang: error: linker command failed with exit code 1 (use -v to see invocation)
14
15
Fixes: 7d8b28b8b5 ("target/arm: Implement gdbstub m-profile systemreg and secext")
16
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
17
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
18
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
19
Message-id: 20230322142902.69511-3-philmd@linaro.org
20
[PMM: add #include since I cherry-picked this patch from the series]
21
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
22
---
23
target/arm/gdbstub.c | 5 +++--
24
1 file changed, 3 insertions(+), 2 deletions(-)
25
26
diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c
27
index XXXXXXX..XXXXXXX 100644
28
--- a/target/arm/gdbstub.c
29
+++ b/target/arm/gdbstub.c
30
@@ -XXX,XX +XXX,XX @@
31
#include "cpu.h"
32
#include "exec/gdbstub.h"
33
#include "gdbstub/helpers.h"
34
+#include "sysemu/tcg.h"
35
#include "internals.h"
36
#include "cpregs.h"
37
38
@@ -XXX,XX +XXX,XX @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cpu)
39
2, "arm-vfp-sysregs.xml", 0);
40
}
41
}
42
- if (cpu_isar_feature(aa32_mve, cpu)) {
43
+ if (cpu_isar_feature(aa32_mve, cpu) && tcg_enabled()) {
44
gdb_register_coprocessor(cs, mve_gdb_get_reg, mve_gdb_set_reg,
45
1, "arm-m-profile-mve.xml", 0);
46
}
47
@@ -XXX,XX +XXX,XX @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cpu)
48
arm_gen_dynamic_sysreg_xml(cs, cs->gdb_num_regs),
49
"system-registers.xml", 0);
50
51
- if (arm_feature(env, ARM_FEATURE_M)) {
52
+ if (arm_feature(env, ARM_FEATURE_M) && tcg_enabled()) {
53
gdb_register_coprocessor(cs,
54
arm_gdb_get_m_systemreg, arm_gdb_set_m_systemreg,
55
arm_gen_dynamic_m_systemreg_xml(cs, cs->gdb_num_regs),
56
--
57
2.34.1
58
59
diff view generated by jsdifflib