1 | Just a few minor bugfixes, but we might as well get them in | 1 | Massively slimmed down v2: MemTag broke bsd-user, and the npcm7xx |
---|---|---|---|
2 | for rc0 tomorrow. | 2 | ethernet device failed 'make check' on big-endian hosts. |
3 | 3 | ||
4 | -- PMM | 4 | -- PMM |
5 | 5 | ||
6 | The following changes since commit 787f82407c5056a8b1097e39e53d01dd1abe406b: | 6 | The following changes since commit 83339e21d05c824ebc9131d644f25c23d0e41ecf: |
7 | 7 | ||
8 | Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20200323' into staging (2020-03-23 15:38:30 +0000) | 8 | Merge remote-tracking branch 'remotes/stefanha-gitlab/tags/block-pull-request' into staging (2021-02-10 15:42:20 +0000) |
9 | 9 | ||
10 | are available in the Git repository at: | 10 | are available in the Git repository at: |
11 | 11 | ||
12 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20200323 | 12 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210211-1 |
13 | 13 | ||
14 | for you to fetch changes up to 550a04893c2bd4442211b353680b9a6408d94dba: | 14 | for you to fetch changes up to d3c1183ffeb71ca3a783eae3d7e1c51e71e8a621: |
15 | 15 | ||
16 | target/arm: Move computation of index in handle_simd_dupe (2020-03-23 17:22:30 +0000) | 16 | target/arm: Correctly initialize MDCR_EL2.HPMN (2021-02-11 19:48:09 +0000) |
17 | 17 | ||
18 | ---------------------------------------------------------------- | 18 | ---------------------------------------------------------------- |
19 | target-arm queue: | 19 | target-arm queue: |
20 | * target/arm: avoid undefined behaviour shift in watchpoint code | 20 | * Correctly initialize MDCR_EL2.HPMN |
21 | * target/arm: avoid undefined behaviour shift in handle_simd_dupe() | 21 | * versal: Use nr_apu_cpus in favor of hard coding 2 |
22 | * target/arm: add assert that immh != 0 in disas_simd_shift_imm() | 22 | * accel/tcg: Add URL of clang bug to comment about our workaround |
23 | * aspeed/smc: Fix DMA support for AST2600 | 23 | * Add support for FEAT_DIT, Data Independent Timing |
24 | * hw/arm/bcm283x: Correct the license text ('and' vs 'or') | 24 | * Remove GPIO from unimplemented NPCM7XX |
25 | * Fix SCR RES1 handling | ||
26 | * Don't migrate CPUARMState.features | ||
25 | 27 | ||
26 | ---------------------------------------------------------------- | 28 | ---------------------------------------------------------------- |
27 | Cédric Le Goater (1): | 29 | Aaron Lindsay (1): |
28 | aspeed/smc: Fix DMA support for AST2600 | 30 | target/arm: Don't migrate CPUARMState.features |
29 | 31 | ||
30 | Philippe Mathieu-Daudé (1): | 32 | Daniel Müller (1): |
31 | hw/arm/bcm283x: Correct the license text | 33 | target/arm: Correctly initialize MDCR_EL2.HPMN |
32 | 34 | ||
33 | Richard Henderson (3): | 35 | Edgar E. Iglesias (1): |
34 | target/arm: Rearrange disabled check for watchpoints | 36 | hw/arm: versal: Use nr_apu_cpus in favor of hard coding 2 |
35 | target/arm: Assert immh != 0 in disas_simd_shift_imm | ||
36 | target/arm: Move computation of index in handle_simd_dupe | ||
37 | 37 | ||
38 | include/hw/arm/bcm2835_peripherals.h | 3 ++- | 38 | Hao Wu (1): |
39 | include/hw/arm/bcm2836.h | 3 ++- | 39 | hw/arm: Remove GPIO from unimplemented NPCM7XX |
40 | include/hw/char/bcm2835_aux.h | 3 ++- | ||
41 | include/hw/display/bcm2835_fb.h | 3 ++- | ||
42 | include/hw/dma/bcm2835_dma.h | 4 +++- | ||
43 | include/hw/intc/bcm2835_ic.h | 4 +++- | ||
44 | include/hw/intc/bcm2836_control.h | 3 ++- | ||
45 | include/hw/misc/bcm2835_mbox.h | 4 +++- | ||
46 | include/hw/misc/bcm2835_mbox_defs.h | 4 +++- | ||
47 | include/hw/misc/bcm2835_property.h | 4 +++- | ||
48 | hw/arm/aspeed_ast2600.c | 6 ++++++ | ||
49 | hw/arm/bcm2835_peripherals.c | 3 ++- | ||
50 | hw/arm/bcm2836.c | 3 ++- | ||
51 | hw/arm/raspi.c | 3 ++- | ||
52 | hw/display/bcm2835_fb.c | 1 - | ||
53 | hw/dma/bcm2835_dma.c | 4 +++- | ||
54 | hw/intc/bcm2835_ic.c | 4 ++-- | ||
55 | hw/intc/bcm2836_control.c | 4 +++- | ||
56 | hw/misc/bcm2835_mbox.c | 4 +++- | ||
57 | hw/misc/bcm2835_property.c | 4 +++- | ||
58 | hw/ssi/aspeed_smc.c | 15 +++++++++++++-- | ||
59 | target/arm/helper.c | 11 ++++++----- | ||
60 | target/arm/translate-a64.c | 6 +++++- | ||
61 | hw/ssi/trace-events | 1 + | ||
62 | 24 files changed, 76 insertions(+), 28 deletions(-) | ||
63 | 40 | ||
41 | Mike Nawrocki (1): | ||
42 | target/arm: Fix SCR RES1 handling | ||
43 | |||
44 | Peter Maydell (2): | ||
45 | arm: Update infocenter.arm.com URLs | ||
46 | accel/tcg: Add URL of clang bug to comment about our workaround | ||
47 | |||
48 | Rebecca Cran (4): | ||
49 | target/arm: Add support for FEAT_DIT, Data Independent Timing | ||
50 | target/arm: Support AA32 DIT by moving PSTATE_SS from cpsr into env->pstate | ||
51 | target/arm: Set ID_AA64PFR0.DIT and ID_PFR0.DIT to 1 for "max" AA64 CPU | ||
52 | target/arm: Set ID_PFR0.DIT to 1 for "max" 32-bit CPU | ||
53 | |||
54 | include/hw/dma/pl080.h | 7 ++-- | ||
55 | include/hw/misc/arm_integrator_debug.h | 2 +- | ||
56 | include/hw/ssi/pl022.h | 5 ++- | ||
57 | target/arm/cpu.h | 17 ++++++++ | ||
58 | target/arm/internals.h | 6 +++ | ||
59 | accel/tcg/cpu-exec.c | 25 +++++++++--- | ||
60 | hw/arm/aspeed_ast2600.c | 2 +- | ||
61 | hw/arm/musca.c | 4 +- | ||
62 | hw/arm/npcm7xx.c | 8 ---- | ||
63 | hw/arm/xlnx-versal.c | 4 +- | ||
64 | hw/misc/arm_integrator_debug.c | 2 +- | ||
65 | hw/timer/arm_timer.c | 7 ++-- | ||
66 | target/arm/cpu.c | 4 ++ | ||
67 | target/arm/cpu64.c | 5 +++ | ||
68 | target/arm/helper-a64.c | 27 +++++++++++-- | ||
69 | target/arm/helper.c | 71 +++++++++++++++++++++++++++------- | ||
70 | target/arm/machine.c | 2 +- | ||
71 | target/arm/op_helper.c | 9 +---- | ||
72 | target/arm/translate-a64.c | 12 ++++++ | ||
73 | 19 files changed, 164 insertions(+), 55 deletions(-) | ||
74 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <philmd@redhat.com> | ||
2 | 1 | ||
3 | The license is the 'GNU General Public License v2.0 or later', | ||
4 | not 'and': | ||
5 | |||
6 | This program is free software; you can redistribute it and/ori | ||
7 | modify it under the terms of the GNU General Public License as | ||
8 | published by the Free Software Foundation; either version 2 of | ||
9 | the License, or (at your option) any later version. | ||
10 | |||
11 | Fix the license comment. | ||
12 | |||
13 | Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> | ||
14 | Message-id: 20200312213455.15854-1-philmd@redhat.com | ||
15 | Reviewed-by: Peter Maydell <peter.maydell@linaro.org> | ||
16 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
17 | --- | ||
18 | include/hw/arm/bcm2835_peripherals.h | 3 ++- | ||
19 | include/hw/arm/bcm2836.h | 3 ++- | ||
20 | include/hw/char/bcm2835_aux.h | 3 ++- | ||
21 | include/hw/display/bcm2835_fb.h | 3 ++- | ||
22 | include/hw/dma/bcm2835_dma.h | 4 +++- | ||
23 | include/hw/intc/bcm2835_ic.h | 4 +++- | ||
24 | include/hw/intc/bcm2836_control.h | 3 ++- | ||
25 | include/hw/misc/bcm2835_mbox.h | 4 +++- | ||
26 | include/hw/misc/bcm2835_mbox_defs.h | 4 +++- | ||
27 | include/hw/misc/bcm2835_property.h | 4 +++- | ||
28 | hw/arm/bcm2835_peripherals.c | 3 ++- | ||
29 | hw/arm/bcm2836.c | 3 ++- | ||
30 | hw/arm/raspi.c | 3 ++- | ||
31 | hw/display/bcm2835_fb.c | 1 - | ||
32 | hw/dma/bcm2835_dma.c | 4 +++- | ||
33 | hw/intc/bcm2835_ic.c | 4 ++-- | ||
34 | hw/intc/bcm2836_control.c | 4 +++- | ||
35 | hw/misc/bcm2835_mbox.c | 4 +++- | ||
36 | hw/misc/bcm2835_property.c | 4 +++- | ||
37 | 19 files changed, 45 insertions(+), 20 deletions(-) | ||
38 | |||
39 | diff --git a/include/hw/arm/bcm2835_peripherals.h b/include/hw/arm/bcm2835_peripherals.h | ||
40 | index XXXXXXX..XXXXXXX 100644 | ||
41 | --- a/include/hw/arm/bcm2835_peripherals.h | ||
42 | +++ b/include/hw/arm/bcm2835_peripherals.h | ||
43 | @@ -XXX,XX +XXX,XX @@ | ||
44 | * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft | ||
45 | * Written by Andrew Baumann | ||
46 | * | ||
47 | - * This code is licensed under the GNU GPLv2 and later. | ||
48 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
49 | + * See the COPYING file in the top-level directory. | ||
50 | */ | ||
51 | |||
52 | #ifndef BCM2835_PERIPHERALS_H | ||
53 | diff --git a/include/hw/arm/bcm2836.h b/include/hw/arm/bcm2836.h | ||
54 | index XXXXXXX..XXXXXXX 100644 | ||
55 | --- a/include/hw/arm/bcm2836.h | ||
56 | +++ b/include/hw/arm/bcm2836.h | ||
57 | @@ -XXX,XX +XXX,XX @@ | ||
58 | * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft | ||
59 | * Written by Andrew Baumann | ||
60 | * | ||
61 | - * This code is licensed under the GNU GPLv2 and later. | ||
62 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
63 | + * See the COPYING file in the top-level directory. | ||
64 | */ | ||
65 | |||
66 | #ifndef BCM2836_H | ||
67 | diff --git a/include/hw/char/bcm2835_aux.h b/include/hw/char/bcm2835_aux.h | ||
68 | index XXXXXXX..XXXXXXX 100644 | ||
69 | --- a/include/hw/char/bcm2835_aux.h | ||
70 | +++ b/include/hw/char/bcm2835_aux.h | ||
71 | @@ -XXX,XX +XXX,XX @@ | ||
72 | * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft | ||
73 | * Written by Andrew Baumann | ||
74 | * | ||
75 | - * This code is licensed under the GNU GPLv2 and later. | ||
76 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
77 | + * See the COPYING file in the top-level directory. | ||
78 | */ | ||
79 | |||
80 | #ifndef BCM2835_AUX_H | ||
81 | diff --git a/include/hw/display/bcm2835_fb.h b/include/hw/display/bcm2835_fb.h | ||
82 | index XXXXXXX..XXXXXXX 100644 | ||
83 | --- a/include/hw/display/bcm2835_fb.h | ||
84 | +++ b/include/hw/display/bcm2835_fb.h | ||
85 | @@ -XXX,XX +XXX,XX @@ | ||
86 | * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft | ||
87 | * Written by Andrew Baumann | ||
88 | * | ||
89 | - * This code is licensed under the GNU GPLv2 and later. | ||
90 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
91 | + * See the COPYING file in the top-level directory. | ||
92 | */ | ||
93 | |||
94 | #ifndef BCM2835_FB_H | ||
95 | diff --git a/include/hw/dma/bcm2835_dma.h b/include/hw/dma/bcm2835_dma.h | ||
96 | index XXXXXXX..XXXXXXX 100644 | ||
97 | --- a/include/hw/dma/bcm2835_dma.h | ||
98 | +++ b/include/hw/dma/bcm2835_dma.h | ||
99 | @@ -XXX,XX +XXX,XX @@ | ||
100 | /* | ||
101 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
102 | - * This code is licensed under the GNU GPLv2 and later. | ||
103 | + * | ||
104 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
105 | + * See the COPYING file in the top-level directory. | ||
106 | */ | ||
107 | |||
108 | #ifndef BCM2835_DMA_H | ||
109 | diff --git a/include/hw/intc/bcm2835_ic.h b/include/hw/intc/bcm2835_ic.h | ||
110 | index XXXXXXX..XXXXXXX 100644 | ||
111 | --- a/include/hw/intc/bcm2835_ic.h | ||
112 | +++ b/include/hw/intc/bcm2835_ic.h | ||
113 | @@ -XXX,XX +XXX,XX @@ | ||
114 | /* | ||
115 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
116 | - * This code is licensed under the GNU GPLv2 and later. | ||
117 | + * | ||
118 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
119 | + * See the COPYING file in the top-level directory. | ||
120 | */ | ||
121 | |||
122 | #ifndef BCM2835_IC_H | ||
123 | diff --git a/include/hw/intc/bcm2836_control.h b/include/hw/intc/bcm2836_control.h | ||
124 | index XXXXXXX..XXXXXXX 100644 | ||
125 | --- a/include/hw/intc/bcm2836_control.h | ||
126 | +++ b/include/hw/intc/bcm2836_control.h | ||
127 | @@ -XXX,XX +XXX,XX @@ | ||
128 | * ARM Local Timer IRQ Copyright (c) 2019. Zoltán Baldaszti | ||
129 | * Added basic IRQ_TIMER interrupt support | ||
130 | * | ||
131 | - * This code is licensed under the GNU GPLv2 and later. | ||
132 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
133 | + * See the COPYING file in the top-level directory. | ||
134 | */ | ||
135 | |||
136 | #ifndef BCM2836_CONTROL_H | ||
137 | diff --git a/include/hw/misc/bcm2835_mbox.h b/include/hw/misc/bcm2835_mbox.h | ||
138 | index XXXXXXX..XXXXXXX 100644 | ||
139 | --- a/include/hw/misc/bcm2835_mbox.h | ||
140 | +++ b/include/hw/misc/bcm2835_mbox.h | ||
141 | @@ -XXX,XX +XXX,XX @@ | ||
142 | /* | ||
143 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
144 | - * This code is licensed under the GNU GPLv2 and later. | ||
145 | + * | ||
146 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
147 | + * See the COPYING file in the top-level directory. | ||
148 | */ | ||
149 | |||
150 | #ifndef BCM2835_MBOX_H | ||
151 | diff --git a/include/hw/misc/bcm2835_mbox_defs.h b/include/hw/misc/bcm2835_mbox_defs.h | ||
152 | index XXXXXXX..XXXXXXX 100644 | ||
153 | --- a/include/hw/misc/bcm2835_mbox_defs.h | ||
154 | +++ b/include/hw/misc/bcm2835_mbox_defs.h | ||
155 | @@ -XXX,XX +XXX,XX @@ | ||
156 | /* | ||
157 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
158 | - * This code is licensed under the GNU GPLv2 and later. | ||
159 | + * | ||
160 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
161 | + * See the COPYING file in the top-level directory. | ||
162 | */ | ||
163 | |||
164 | #ifndef BCM2835_MBOX_DEFS_H | ||
165 | diff --git a/include/hw/misc/bcm2835_property.h b/include/hw/misc/bcm2835_property.h | ||
166 | index XXXXXXX..XXXXXXX 100644 | ||
167 | --- a/include/hw/misc/bcm2835_property.h | ||
168 | +++ b/include/hw/misc/bcm2835_property.h | ||
169 | @@ -XXX,XX +XXX,XX @@ | ||
170 | /* | ||
171 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
172 | - * This code is licensed under the GNU GPLv2 and later. | ||
173 | + * | ||
174 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
175 | + * See the COPYING file in the top-level directory. | ||
176 | */ | ||
177 | |||
178 | #ifndef BCM2835_PROPERTY_H | ||
179 | diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c | ||
180 | index XXXXXXX..XXXXXXX 100644 | ||
181 | --- a/hw/arm/bcm2835_peripherals.c | ||
182 | +++ b/hw/arm/bcm2835_peripherals.c | ||
183 | @@ -XXX,XX +XXX,XX @@ | ||
184 | * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft | ||
185 | * Written by Andrew Baumann | ||
186 | * | ||
187 | - * This code is licensed under the GNU GPLv2 and later. | ||
188 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
189 | + * See the COPYING file in the top-level directory. | ||
190 | */ | ||
191 | |||
192 | #include "qemu/osdep.h" | ||
193 | diff --git a/hw/arm/bcm2836.c b/hw/arm/bcm2836.c | ||
194 | index XXXXXXX..XXXXXXX 100644 | ||
195 | --- a/hw/arm/bcm2836.c | ||
196 | +++ b/hw/arm/bcm2836.c | ||
197 | @@ -XXX,XX +XXX,XX @@ | ||
198 | * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft | ||
199 | * Written by Andrew Baumann | ||
200 | * | ||
201 | - * This code is licensed under the GNU GPLv2 and later. | ||
202 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
203 | + * See the COPYING file in the top-level directory. | ||
204 | */ | ||
205 | |||
206 | #include "qemu/osdep.h" | ||
207 | diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c | ||
208 | index XXXXXXX..XXXXXXX 100644 | ||
209 | --- a/hw/arm/raspi.c | ||
210 | +++ b/hw/arm/raspi.c | ||
211 | @@ -XXX,XX +XXX,XX @@ | ||
212 | * Raspberry Pi 3 emulation Copyright (c) 2018 Zoltán Baldaszti | ||
213 | * Upstream code cleanup (c) 2018 Pekka Enberg | ||
214 | * | ||
215 | - * This code is licensed under the GNU GPLv2 and later. | ||
216 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
217 | + * See the COPYING file in the top-level directory. | ||
218 | */ | ||
219 | |||
220 | #include "qemu/osdep.h" | ||
221 | diff --git a/hw/display/bcm2835_fb.c b/hw/display/bcm2835_fb.c | ||
222 | index XXXXXXX..XXXXXXX 100644 | ||
223 | --- a/hw/display/bcm2835_fb.c | ||
224 | +++ b/hw/display/bcm2835_fb.c | ||
225 | @@ -XXX,XX +XXX,XX @@ | ||
226 | /* | ||
227 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
228 | * Refactoring for Pi2 Copyright (c) 2015, Microsoft. Written by Andrew Baumann. | ||
229 | - * This code is licensed under the GNU GPLv2 and later. | ||
230 | * | ||
231 | * Heavily based on milkymist-vgafb.c, copyright terms below: | ||
232 | * QEMU model of the Milkymist VGA framebuffer. | ||
233 | diff --git a/hw/dma/bcm2835_dma.c b/hw/dma/bcm2835_dma.c | ||
234 | index XXXXXXX..XXXXXXX 100644 | ||
235 | --- a/hw/dma/bcm2835_dma.c | ||
236 | +++ b/hw/dma/bcm2835_dma.c | ||
237 | @@ -XXX,XX +XXX,XX @@ | ||
238 | /* | ||
239 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
240 | - * This code is licensed under the GNU GPLv2 and later. | ||
241 | + * | ||
242 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
243 | + * See the COPYING file in the top-level directory. | ||
244 | */ | ||
245 | |||
246 | #include "qemu/osdep.h" | ||
247 | diff --git a/hw/intc/bcm2835_ic.c b/hw/intc/bcm2835_ic.c | ||
248 | index XXXXXXX..XXXXXXX 100644 | ||
249 | --- a/hw/intc/bcm2835_ic.c | ||
250 | +++ b/hw/intc/bcm2835_ic.c | ||
251 | @@ -XXX,XX +XXX,XX @@ | ||
252 | /* | ||
253 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
254 | * Refactoring for Pi2 Copyright (c) 2015, Microsoft. Written by Andrew Baumann. | ||
255 | - * This code is licensed under the GNU GPLv2 and later. | ||
256 | * Heavily based on pl190.c, copyright terms below: | ||
257 | * | ||
258 | * Arm PrimeCell PL190 Vector Interrupt Controller | ||
259 | @@ -XXX,XX +XXX,XX @@ | ||
260 | * Copyright (c) 2006 CodeSourcery. | ||
261 | * Written by Paul Brook | ||
262 | * | ||
263 | - * This code is licensed under the GPL. | ||
264 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
265 | + * See the COPYING file in the top-level directory. | ||
266 | */ | ||
267 | |||
268 | #include "qemu/osdep.h" | ||
269 | diff --git a/hw/intc/bcm2836_control.c b/hw/intc/bcm2836_control.c | ||
270 | index XXXXXXX..XXXXXXX 100644 | ||
271 | --- a/hw/intc/bcm2836_control.c | ||
272 | +++ b/hw/intc/bcm2836_control.c | ||
273 | @@ -XXX,XX +XXX,XX @@ | ||
274 | * Written by Andrew Baumann | ||
275 | * | ||
276 | * Based on bcm2835_ic.c (Raspberry Pi emulation) (c) 2012 Gregory Estrade | ||
277 | - * This code is licensed under the GNU GPLv2 and later. | ||
278 | * | ||
279 | * At present, only implements interrupt routing, and mailboxes (i.e., | ||
280 | * not PMU interrupt, or AXI counters). | ||
281 | @@ -XXX,XX +XXX,XX @@ | ||
282 | * | ||
283 | * Ref: | ||
284 | * https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2836/QA7_rev3.4.pdf | ||
285 | + * | ||
286 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
287 | + * See the COPYING file in the top-level directory. | ||
288 | */ | ||
289 | |||
290 | #include "qemu/osdep.h" | ||
291 | diff --git a/hw/misc/bcm2835_mbox.c b/hw/misc/bcm2835_mbox.c | ||
292 | index XXXXXXX..XXXXXXX 100644 | ||
293 | --- a/hw/misc/bcm2835_mbox.c | ||
294 | +++ b/hw/misc/bcm2835_mbox.c | ||
295 | @@ -XXX,XX +XXX,XX @@ | ||
296 | /* | ||
297 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
298 | - * This code is licensed under the GNU GPLv2 and later. | ||
299 | * | ||
300 | * This file models the system mailboxes, which are used for | ||
301 | * communication with low-bandwidth GPU peripherals. Refs: | ||
302 | * https://github.com/raspberrypi/firmware/wiki/Mailboxes | ||
303 | * https://github.com/raspberrypi/firmware/wiki/Accessing-mailboxes | ||
304 | + * | ||
305 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
306 | + * See the COPYING file in the top-level directory. | ||
307 | */ | ||
308 | |||
309 | #include "qemu/osdep.h" | ||
310 | diff --git a/hw/misc/bcm2835_property.c b/hw/misc/bcm2835_property.c | ||
311 | index XXXXXXX..XXXXXXX 100644 | ||
312 | --- a/hw/misc/bcm2835_property.c | ||
313 | +++ b/hw/misc/bcm2835_property.c | ||
314 | @@ -XXX,XX +XXX,XX @@ | ||
315 | /* | ||
316 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | ||
317 | - * This code is licensed under the GNU GPLv2 and later. | ||
318 | + * | ||
319 | + * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
320 | + * See the COPYING file in the top-level directory. | ||
321 | */ | ||
322 | |||
323 | #include "qemu/osdep.h" | ||
324 | -- | ||
325 | 2.20.1 | ||
326 | |||
327 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Cédric Le Goater <clg@kaod.org> | ||
2 | 1 | ||
3 | Recent firmwares uses SPI DMA transfers in U-Boot to load the | ||
4 | different images (kernel, initrd, dtb) in the SoC DRAM. The AST2600 | ||
5 | FMC model is missing the masks to be applied on the DMA registers | ||
6 | which resulted in incorrect values. Fix that and wire the SPI | ||
7 | controllers which have DMA support on the AST2600. | ||
8 | |||
9 | Fixes: bcaa8ddd081c ("aspeed/smc: Add AST2600 support") | ||
10 | Signed-off-by: Cédric Le Goater <clg@kaod.org> | ||
11 | Reviewed-by: Joel Stanley <joel@jms.id.au> | ||
12 | Message-id: 20200320053923.20565-1-clg@kaod.org | ||
13 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
14 | --- | ||
15 | hw/arm/aspeed_ast2600.c | 6 ++++++ | ||
16 | hw/ssi/aspeed_smc.c | 15 +++++++++++++-- | ||
17 | hw/ssi/trace-events | 1 + | ||
18 | 3 files changed, 20 insertions(+), 2 deletions(-) | ||
19 | |||
20 | diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c | ||
21 | index XXXXXXX..XXXXXXX 100644 | ||
22 | --- a/hw/arm/aspeed_ast2600.c | ||
23 | +++ b/hw/arm/aspeed_ast2600.c | ||
24 | @@ -XXX,XX +XXX,XX @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp) | ||
25 | |||
26 | /* SPI */ | ||
27 | for (i = 0; i < sc->spis_num; i++) { | ||
28 | + object_property_set_link(OBJECT(&s->spi[i]), OBJECT(s->dram_mr), | ||
29 | + "dram", &err); | ||
30 | + if (err) { | ||
31 | + error_propagate(errp, err); | ||
32 | + return; | ||
33 | + } | ||
34 | object_property_set_int(OBJECT(&s->spi[i]), 1, "num-cs", &err); | ||
35 | object_property_set_bool(OBJECT(&s->spi[i]), true, "realized", | ||
36 | &local_err); | ||
37 | diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c | ||
38 | index XXXXXXX..XXXXXXX 100644 | ||
39 | --- a/hw/ssi/aspeed_smc.c | ||
40 | +++ b/hw/ssi/aspeed_smc.c | ||
41 | @@ -XXX,XX +XXX,XX @@ static const AspeedSMCController controllers[] = { | ||
42 | .flash_window_base = ASPEED26_SOC_FMC_FLASH_BASE, | ||
43 | .flash_window_size = 0x10000000, | ||
44 | .has_dma = true, | ||
45 | + .dma_flash_mask = 0x0FFFFFFC, | ||
46 | + .dma_dram_mask = 0x3FFFFFFC, | ||
47 | .nregs = ASPEED_SMC_R_MAX, | ||
48 | .segment_to_reg = aspeed_2600_smc_segment_to_reg, | ||
49 | .reg_to_segment = aspeed_2600_smc_reg_to_segment, | ||
50 | @@ -XXX,XX +XXX,XX @@ static const AspeedSMCController controllers[] = { | ||
51 | .segments = aspeed_segments_ast2600_spi1, | ||
52 | .flash_window_base = ASPEED26_SOC_SPI_FLASH_BASE, | ||
53 | .flash_window_size = 0x10000000, | ||
54 | - .has_dma = false, | ||
55 | + .has_dma = true, | ||
56 | + .dma_flash_mask = 0x0FFFFFFC, | ||
57 | + .dma_dram_mask = 0x3FFFFFFC, | ||
58 | .nregs = ASPEED_SMC_R_MAX, | ||
59 | .segment_to_reg = aspeed_2600_smc_segment_to_reg, | ||
60 | .reg_to_segment = aspeed_2600_smc_reg_to_segment, | ||
61 | @@ -XXX,XX +XXX,XX @@ static const AspeedSMCController controllers[] = { | ||
62 | .segments = aspeed_segments_ast2600_spi2, | ||
63 | .flash_window_base = ASPEED26_SOC_SPI2_FLASH_BASE, | ||
64 | .flash_window_size = 0x10000000, | ||
65 | - .has_dma = false, | ||
66 | + .has_dma = true, | ||
67 | + .dma_flash_mask = 0x0FFFFFFC, | ||
68 | + .dma_dram_mask = 0x3FFFFFFC, | ||
69 | .nregs = ASPEED_SMC_R_MAX, | ||
70 | .segment_to_reg = aspeed_2600_smc_segment_to_reg, | ||
71 | .reg_to_segment = aspeed_2600_smc_reg_to_segment, | ||
72 | @@ -XXX,XX +XXX,XX @@ static void aspeed_smc_dma_rw(AspeedSMCState *s) | ||
73 | MemTxResult result; | ||
74 | uint32_t data; | ||
75 | |||
76 | + trace_aspeed_smc_dma_rw(s->regs[R_DMA_CTRL] & DMA_CTRL_WRITE ? | ||
77 | + "write" : "read", | ||
78 | + s->regs[R_DMA_FLASH_ADDR], | ||
79 | + s->regs[R_DMA_DRAM_ADDR], | ||
80 | + s->regs[R_DMA_LEN]); | ||
81 | while (s->regs[R_DMA_LEN]) { | ||
82 | if (s->regs[R_DMA_CTRL] & DMA_CTRL_WRITE) { | ||
83 | data = address_space_ldl_le(&s->dram_as, s->regs[R_DMA_DRAM_ADDR], | ||
84 | diff --git a/hw/ssi/trace-events b/hw/ssi/trace-events | ||
85 | index XXXXXXX..XXXXXXX 100644 | ||
86 | --- a/hw/ssi/trace-events | ||
87 | +++ b/hw/ssi/trace-events | ||
88 | @@ -XXX,XX +XXX,XX @@ aspeed_smc_do_snoop(int cs, int index, int dummies, int data) "CS%d index:0x%x d | ||
89 | aspeed_smc_flash_write(int cs, uint64_t addr, uint32_t size, uint64_t data, int mode) "CS%d @0x%" PRIx64 " size %u: 0x%" PRIx64" mode:%d" | ||
90 | aspeed_smc_read(uint64_t addr, uint32_t size, uint64_t data) "@0x%" PRIx64 " size %u: 0x%" PRIx64 | ||
91 | aspeed_smc_dma_checksum(uint32_t addr, uint32_t data) "0x%08x: 0x%08x" | ||
92 | +aspeed_smc_dma_rw(const char *dir, uint32_t flash_addr, uint32_t dram_addr, uint32_t size) "%s flash:@0x%08x dram:@0x%08x size:0x%08x" | ||
93 | aspeed_smc_write(uint64_t addr, uint32_t size, uint64_t data) "@0x%" PRIx64 " size %u: 0x%" PRIx64 | ||
94 | aspeed_smc_flash_select(int cs, const char *prefix) "CS%d %sselect" | ||
95 | -- | ||
96 | 2.20.1 | ||
97 | |||
98 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Richard Henderson <richard.henderson@linaro.org> | ||
2 | 1 | ||
3 | Coverity rightly notes that ctz32(bas) on 0 will return 32, | ||
4 | which makes the len calculation a BAD_SHIFT. | ||
5 | |||
6 | A value of 0 in DBGWCR<n>_EL1.BAS is reserved. Simply move | ||
7 | the existing check we have for this case. | ||
8 | |||
9 | Reported-by: Coverity (CID 1421964) | ||
10 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | ||
11 | Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> | ||
12 | Message-id: 20200320160622.8040-2-richard.henderson@linaro.org | ||
13 | Reviewed-by: Peter Maydell <peter.maydell@linaro.org> | ||
14 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
15 | --- | ||
16 | target/arm/helper.c | 11 ++++++----- | ||
17 | 1 file changed, 6 insertions(+), 5 deletions(-) | ||
18 | |||
19 | diff --git a/target/arm/helper.c b/target/arm/helper.c | ||
20 | index XXXXXXX..XXXXXXX 100644 | ||
21 | --- a/target/arm/helper.c | ||
22 | +++ b/target/arm/helper.c | ||
23 | @@ -XXX,XX +XXX,XX @@ void hw_watchpoint_update(ARMCPU *cpu, int n) | ||
24 | int bas = extract64(wcr, 5, 8); | ||
25 | int basstart; | ||
26 | |||
27 | - if (bas == 0) { | ||
28 | - /* This must act as if the watchpoint is disabled */ | ||
29 | - return; | ||
30 | - } | ||
31 | - | ||
32 | if (extract64(wvr, 2, 1)) { | ||
33 | /* Deprecated case of an only 4-aligned address. BAS[7:4] are | ||
34 | * ignored, and BAS[3:0] define which bytes to watch. | ||
35 | */ | ||
36 | bas &= 0xf; | ||
37 | } | ||
38 | + | ||
39 | + if (bas == 0) { | ||
40 | + /* This must act as if the watchpoint is disabled */ | ||
41 | + return; | ||
42 | + } | ||
43 | + | ||
44 | /* The BAS bits are supposed to be programmed to indicate a contiguous | ||
45 | * range of bytes. Otherwise it is CONSTRAINED UNPREDICTABLE whether | ||
46 | * we fire for each byte in the word/doubleword addressed by the WVR. | ||
47 | -- | ||
48 | 2.20.1 | ||
49 | |||
50 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Richard Henderson <richard.henderson@linaro.org> | ||
2 | 1 | ||
3 | Coverity raised a shed-load of errors cascading from inferring | ||
4 | that clz32(immh) might yield 32, from immh might be 0. | ||
5 | |||
6 | While immh cannot be 0 from encoding, it is not obvious even to | ||
7 | a human how we've checked that: via the filtering provided by | ||
8 | data_proc_simd[]. | ||
9 | |||
10 | Reported-by: Coverity (CID 1421923, and more) | ||
11 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | ||
12 | Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> | ||
13 | Message-id: 20200320160622.8040-3-richard.henderson@linaro.org | ||
14 | Reviewed-by: Peter Maydell <peter.maydell@linaro.org> | ||
15 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
16 | --- | ||
17 | target/arm/translate-a64.c | 3 +++ | ||
18 | 1 file changed, 3 insertions(+) | ||
19 | |||
20 | diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c | ||
21 | index XXXXXXX..XXXXXXX 100644 | ||
22 | --- a/target/arm/translate-a64.c | ||
23 | +++ b/target/arm/translate-a64.c | ||
24 | @@ -XXX,XX +XXX,XX @@ static void disas_simd_shift_imm(DisasContext *s, uint32_t insn) | ||
25 | bool is_u = extract32(insn, 29, 1); | ||
26 | bool is_q = extract32(insn, 30, 1); | ||
27 | |||
28 | + /* data_proc_simd[] has sent immh == 0 to disas_simd_mod_imm. */ | ||
29 | + assert(immh != 0); | ||
30 | + | ||
31 | switch (opcode) { | ||
32 | case 0x08: /* SRI */ | ||
33 | if (!is_u) { | ||
34 | -- | ||
35 | 2.20.1 | ||
36 | |||
37 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Richard Henderson <richard.henderson@linaro.org> | ||
2 | 1 | ||
3 | Coverity reports a BAD_SHIFT with ctz32(imm5), with imm5 == 0. | ||
4 | This is an invalid encoding, but we diagnose that just below | ||
5 | by rejecting size > 3. Avoid the warning by sinking the | ||
6 | computation of index below the check. | ||
7 | |||
8 | Reported-by: Coverity (CID 1421965) | ||
9 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | ||
10 | Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> | ||
11 | Message-id: 20200320160622.8040-4-richard.henderson@linaro.org | ||
12 | Reviewed-by: Peter Maydell <peter.maydell@linaro.org> | ||
13 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
14 | --- | ||
15 | target/arm/translate-a64.c | 3 ++- | ||
16 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c | ||
19 | index XXXXXXX..XXXXXXX 100644 | ||
20 | --- a/target/arm/translate-a64.c | ||
21 | +++ b/target/arm/translate-a64.c | ||
22 | @@ -XXX,XX +XXX,XX @@ static void handle_simd_dupe(DisasContext *s, int is_q, int rd, int rn, | ||
23 | int imm5) | ||
24 | { | ||
25 | int size = ctz32(imm5); | ||
26 | - int index = imm5 >> (size + 1); | ||
27 | + int index; | ||
28 | |||
29 | if (size > 3 || (size == 3 && !is_q)) { | ||
30 | unallocated_encoding(s); | ||
31 | @@ -XXX,XX +XXX,XX @@ static void handle_simd_dupe(DisasContext *s, int is_q, int rd, int rn, | ||
32 | return; | ||
33 | } | ||
34 | |||
35 | + index = imm5 >> (size + 1); | ||
36 | tcg_gen_gvec_dup_mem(size, vec_full_reg_offset(s, rd), | ||
37 | vec_reg_offset(s, rn, index, size), | ||
38 | is_q ? 16 : 8, vec_full_reg_size(s)); | ||
39 | -- | ||
40 | 2.20.1 | ||
41 | |||
42 | diff view generated by jsdifflib |