1
This bug seemed worth fixing for 8.0 since we need an rc4 anyway:
1
v1->v2 changes: drop the "convert FEATURE_THUMB2EE" patch as
2
we were using uninitialized data for the guarded bit when
2
it broke compilation on arm hosts (conversion of KVM related
3
combining stage 1 and stage 2 attrs.
3
code had been forgotten)
4
4
5
thanks
5
thanks
6
-- PMM
6
-- PMM
7
7
8
The following changes since commit 08dede07030973c1053868bc64de7e10bfa02ad6:
8
The following changes since commit 13399aad4fa87b2878c49d02a5d3bafa6c966ba3:
9
9
10
Merge tag 'pull-ppc-20230409' of https://github.com/legoater/qemu into staging (2023-04-10 11:47:52 +0100)
10
Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2018-10-22' into staging (2018-10-23 17:20:23 +0100)
11
11
12
are available in the Git repository at:
12
are available in the Git repository at:
13
13
14
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20230410
14
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20181024
15
15
16
for you to fetch changes up to 8539dc00552e8ea60420856fc1262c8299bc6308:
16
for you to fetch changes up to 93f379b0c43617b1361f742f261479eaed4959cb:
17
17
18
target/arm: Copy guarded bit in combine_cacheattrs (2023-04-10 14:31:40 +0100)
18
target/arm: Only flush tlb if ASID changes (2018-10-24 07:51:37 +0100)
19
19
20
----------------------------------------------------------------
20
----------------------------------------------------------------
21
target-arm: Fix bug where we weren't initializing
21
target-arm queue:
22
guarded bit state when combining S1/S2 attrs
22
* ssi-sd: Make devices picking up backends unavailable with -device
23
* Add support for VCPU event states
24
* Move towards making ID registers the source of truth for
25
whether a guest CPU implements a feature, rather than having
26
parallel ID registers and feature bit flags
27
* Implement various HCR hypervisor trap/config bits
28
* Get IL bit correct for v7 syndrome values
29
* Report correct syndrome for FP/SIMD traps to Hyp mode
30
* hw/arm/boot: Increase compliance with kernel arm64 boot protocol
31
* Refactor A32 Neon to use generic vector infrastructure
32
* Fix a bug in A32 VLD2 "(multiple 2-element structures)" insn
33
* net: cadence_gem: Report features correctly in ID register
34
* Avoid some unnecessary TLB flushes on TTBR register writes
23
35
24
----------------------------------------------------------------
36
----------------------------------------------------------------
25
Richard Henderson (2):
37
Dongjiu Geng (1):
26
target/arm: PTE bit GP only applies to stage1
38
target/arm: Add support for VCPU event states
27
target/arm: Copy guarded bit in combine_cacheattrs
28
39
29
target/arm/ptw.c | 11 ++++++-----
40
Edgar E. Iglesias (2):
30
1 file changed, 6 insertions(+), 5 deletions(-)
41
net: cadence_gem: Announce availability of priority queues
42
net: cadence_gem: Announce 64bit addressing support
43
44
Markus Armbruster (1):
45
ssi-sd: Make devices picking up backends unavailable with -device
46
47
Peter Maydell (10):
48
target/arm: Improve debug logging of AArch32 exception return
49
target/arm: Make switch_mode() file-local
50
target/arm: Implement HCR.FB
51
target/arm: Implement HCR.DC
52
target/arm: ISR_EL1 bits track virtual interrupts if IMO/FMO set
53
target/arm: Implement HCR.VI and VF
54
target/arm: Implement HCR.PTW
55
target/arm: New utility function to extract EC from syndrome
56
target/arm: Get IL bit correct for v7 syndrome values
57
target/arm: Report correct syndrome for FP/SIMD traps to Hyp mode
58
59
Richard Henderson (29):
60
target/arm: Move some system registers into a substructure
61
target/arm: V8M should not imply V7VE
62
target/arm: Convert v8 extensions from feature bits to isar tests
63
target/arm: Convert division from feature bits to isar0 tests
64
target/arm: Convert jazelle from feature bit to isar1 test
65
target/arm: Convert sve from feature bit to aa64pfr0 test
66
target/arm: Convert v8.2-fp16 from feature bit to aa64pfr0 test
67
target/arm: Hoist address increment for vector memory ops
68
target/arm: Don't call tcg_clear_temp_count
69
target/arm: Use tcg_gen_gvec_dup_i64 for LD[1-4]R
70
target/arm: Promote consecutive memory ops for aa64
71
target/arm: Mark some arrays const
72
target/arm: Use gvec for NEON VDUP
73
target/arm: Use gvec for NEON VMOV, VMVN, VBIC & VORR (immediate)
74
target/arm: Use gvec for NEON_3R_LOGIC insns
75
target/arm: Use gvec for NEON_3R_VADD_VSUB insns
76
target/arm: Use gvec for NEON_2RM_VMN, NEON_2RM_VNEG
77
target/arm: Use gvec for NEON_3R_VMUL
78
target/arm: Use gvec for VSHR, VSHL
79
target/arm: Use gvec for VSRA
80
target/arm: Use gvec for VSRI, VSLI
81
target/arm: Use gvec for NEON_3R_VML
82
target/arm: Use gvec for NEON_3R_VTST_VCEQ, NEON_3R_VCGT, NEON_3R_VCGE
83
target/arm: Use gvec for NEON VLD all lanes
84
target/arm: Reorg NEON VLD/VST all elements
85
target/arm: Promote consecutive memory ops for aa32
86
target/arm: Reorg NEON VLD/VST single element to one lane
87
target/arm: Remove writefn from TTBR0_EL3
88
target/arm: Only flush tlb if ASID changes
89
90
Stewart Hildebrand (1):
91
hw/arm/boot: Increase compliance with kernel arm64 boot protocol
92
93
target/arm/cpu.h | 221 ++++++-
94
target/arm/internals.h | 45 +-
95
target/arm/kvm_arm.h | 24 +
96
target/arm/translate.h | 21 +
97
hw/arm/boot.c | 18 +
98
hw/intc/armv7m_nvic.c | 12 +-
99
hw/net/cadence_gem.c | 9 +-
100
hw/sd/ssi-sd.c | 2 +
101
linux-user/aarch64/signal.c | 4 +-
102
linux-user/elfload.c | 58 +-
103
linux-user/syscall.c | 10 +-
104
target/arm/cpu.c | 238 +++----
105
target/arm/cpu64.c | 148 +++--
106
target/arm/helper.c | 395 ++++++++----
107
target/arm/kvm.c | 60 ++
108
target/arm/kvm32.c | 13 +
109
target/arm/kvm64.c | 15 +-
110
target/arm/machine.c | 25 +-
111
target/arm/op_helper.c | 2 +-
112
target/arm/translate-a64.c | 715 ++++-----------------
113
target/arm/translate.c | 1451 ++++++++++++++++++++++++++++---------------
114
21 files changed, 2013 insertions(+), 1473 deletions(-)
115
diff view generated by jsdifflib
Deleted patch
1
From: Richard Henderson <richard.henderson@linaro.org>
2
1
3
Only perform the extract of GP during the stage1 walk.
4
5
Reported-by: Peter Maydell <peter.maydell@linaro.org>
6
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
7
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
8
Message-id: 20230407185149.3253946-2-richard.henderson@linaro.org
9
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10
---
11
target/arm/ptw.c | 10 +++++-----
12
1 file changed, 5 insertions(+), 5 deletions(-)
13
14
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
15
index XXXXXXX..XXXXXXX 100644
16
--- a/target/arm/ptw.c
17
+++ b/target/arm/ptw.c
18
@@ -XXX,XX +XXX,XX @@ static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw,
19
result->f.attrs.secure = false;
20
}
21
22
- /* When in aarch64 mode, and BTI is enabled, remember GP in the TLB. */
23
- if (aarch64 && cpu_isar_feature(aa64_bti, cpu)) {
24
- result->f.guarded = extract64(attrs, 50, 1); /* GP */
25
- }
26
-
27
if (regime_is_stage2(mmu_idx)) {
28
result->cacheattrs.is_s2_format = true;
29
result->cacheattrs.attrs = extract32(attrs, 2, 4);
30
@@ -XXX,XX +XXX,XX @@ static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw,
31
assert(attrindx <= 7);
32
result->cacheattrs.is_s2_format = false;
33
result->cacheattrs.attrs = extract64(mair, attrindx * 8, 8);
34
+
35
+ /* When in aarch64 mode, and BTI is enabled, remember GP in the TLB. */
36
+ if (aarch64 && cpu_isar_feature(aa64_bti, cpu)) {
37
+ result->f.guarded = extract64(attrs, 50, 1); /* GP */
38
+ }
39
}
40
41
/*
42
--
43
2.34.1
diff view generated by jsdifflib
Deleted patch
1
From: Richard Henderson <richard.henderson@linaro.org>
2
1
3
The guarded bit comes from the stage1 walk.
4
5
Fixes: Coverity CID 1507929
6
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
7
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
8
Message-id: 20230407185149.3253946-3-richard.henderson@linaro.org
9
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10
---
11
target/arm/ptw.c | 1 +
12
1 file changed, 1 insertion(+)
13
14
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
15
index XXXXXXX..XXXXXXX 100644
16
--- a/target/arm/ptw.c
17
+++ b/target/arm/ptw.c
18
@@ -XXX,XX +XXX,XX @@ static ARMCacheAttrs combine_cacheattrs(uint64_t hcr,
19
20
assert(!s1.is_s2_format);
21
ret.is_s2_format = false;
22
+ ret.guarded = s1.guarded;
23
24
if (s1.attrs == 0xf0) {
25
tagged = true;
26
--
27
2.34.1
diff view generated by jsdifflib