1 | v2: dropped a couple of cadence_gem changes to ID regs that | 1 | Just a few minor bugfixes, but we might as well get them in |
---|---|---|---|
2 | caused new clang sanitizer warnings. | 2 | for rc0 tomorrow. |
3 | 3 | ||
4 | -- PMM | 4 | -- PMM |
5 | 5 | ||
6 | The following changes since commit dddb37495b844270088e68e3bf30b764d48d863f: | 6 | The following changes since commit 787f82407c5056a8b1097e39e53d01dd1abe406b: |
7 | 7 | ||
8 | Merge remote-tracking branch 'remotes/awilliam/tags/vfio-updates-20181015.0' into staging (2018-10-15 18:44:04 +0100) | 8 | Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20200323' into staging (2020-03-23 15:38:30 +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-20181016-1 | 12 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20200323 |
13 | 13 | ||
14 | for you to fetch changes up to 2ef297af07196c29446556537861f8e7dfeeae7b: | 14 | for you to fetch changes up to 550a04893c2bd4442211b353680b9a6408d94dba: |
15 | 15 | ||
16 | coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls (2018-10-16 17:14:55 +0100) | 16 | target/arm: Move computation of index in handle_simd_dupe (2020-03-23 17:22:30 +0000) |
17 | 17 | ||
18 | ---------------------------------------------------------------- | 18 | ---------------------------------------------------------------- |
19 | target-arm queue: | 19 | target-arm queue: |
20 | * hw/arm/virt: add DT property /secure-chosen/stdout-path indicating secure UART | 20 | * target/arm: avoid undefined behaviour shift in watchpoint code |
21 | * target/arm: Fix aarch64_sve_change_el wrt EL0 | 21 | * target/arm: avoid undefined behaviour shift in handle_simd_dupe() |
22 | * target/arm: Define fields of ISAR registers | 22 | * target/arm: add assert that immh != 0 in disas_simd_shift_imm() |
23 | * target/arm: Align cortex-r5 id_isar0 | 23 | * aspeed/smc: Fix DMA support for AST2600 |
24 | * target/arm: Fix cortex-a7 id_isar0 | 24 | * hw/arm/bcm283x: Correct the license text ('and' vs 'or') |
25 | * net/cadence_gem: Fix various bugs, add support for new | ||
26 | features that will be used by the Xilinx Versal board | ||
27 | * target-arm: powerctl: Enable HVC when starting CPUs to EL2 | ||
28 | * target/arm: Add the Cortex-A72 | ||
29 | * target/arm: Mark PMINTENCLR and PMINTENCLR_EL1 accesses as possibly doing IO | ||
30 | * target/arm: Mask PMOVSR writes based on supported counters | ||
31 | * target/arm: Initialize ARMMMUFaultInfo in v7m_stack_read/write | ||
32 | * coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls | ||
33 | 25 | ||
34 | ---------------------------------------------------------------- | 26 | ---------------------------------------------------------------- |
35 | Aaron Lindsay (2): | 27 | Cédric Le Goater (1): |
36 | target/arm: Mark PMINTENCLR and PMINTENCLR_EL1 accesses as possibly doing IO | 28 | aspeed/smc: Fix DMA support for AST2600 |
37 | target/arm: Mask PMOVSR writes based on supported counters | ||
38 | 29 | ||
39 | Edgar E. Iglesias (8): | 30 | Philippe Mathieu-Daudé (1): |
40 | net: cadence_gem: Disable TSU feature bit | 31 | hw/arm/bcm283x: Correct the license text |
41 | net: cadence_gem: Use uint32_t for 32bit descriptor words | ||
42 | net: cadence_gem: Add macro with max number of descriptor words | ||
43 | net: cadence_gem: Add support for extended descriptors | ||
44 | net: cadence_gem: Add support for selecting the DMA MemoryRegion | ||
45 | net: cadence_gem: Implement support for 64bit descriptor addresses | ||
46 | target-arm: powerctl: Enable HVC when starting CPUs to EL2 | ||
47 | target/arm: Add the Cortex-A72 | ||
48 | 32 | ||
49 | Jerome Forissier (1): | 33 | Richard Henderson (3): |
50 | hw/arm/virt: add DT property /secure-chosen/stdout-path indicating secure UART | 34 | target/arm: Rearrange disabled check for watchpoints |
35 | target/arm: Assert immh != 0 in disas_simd_shift_imm | ||
36 | target/arm: Move computation of index in handle_simd_dupe | ||
51 | 37 | ||
52 | Peter Maydell (2): | 38 | include/hw/arm/bcm2835_peripherals.h | 3 ++- |
53 | target/arm: Initialize ARMMMUFaultInfo in v7m_stack_read/write | 39 | include/hw/arm/bcm2836.h | 3 ++- |
54 | coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls | 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(-) | ||
55 | 63 | ||
56 | Richard Henderson (4): | ||
57 | target/arm: Fix aarch64_sve_change_el wrt EL0 | ||
58 | target/arm: Define fields of ISAR registers | ||
59 | target/arm: Align cortex-r5 id_isar0 | ||
60 | target/arm: Fix cortex-a7 id_isar0 | ||
61 | |||
62 | include/hw/net/cadence_gem.h | 7 +- | ||
63 | target/arm/cpu.h | 95 ++++++++++++++- | ||
64 | hw/arm/virt.c | 4 + | ||
65 | hw/net/cadence_gem.c | 185 ++++++++++++++++++++--------- | ||
66 | target/arm/arm-powerctl.c | 10 ++ | ||
67 | target/arm/cpu.c | 7 +- | ||
68 | target/arm/cpu64.c | 66 +++++++++- | ||
69 | target/arm/helper.c | 27 +++-- | ||
70 | target/arm/op_helper.c | 6 +- | ||
71 | scripts/coccinelle/inplace-byteswaps.cocci | 65 ++++++++++ | ||
72 | 10 files changed, 402 insertions(+), 70 deletions(-) | ||
73 | create mode 100644 scripts/coccinelle/inplace-byteswaps.cocci | ||
74 | diff view generated by jsdifflib |
New patch | |||
---|---|---|---|
1 | 1 | From: Philippe Mathieu-Daudé <philmd@redhat.com> | |
2 | |||
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 |
New patch | |||
---|---|---|---|
1 | From: Cédric Le Goater <clg@kaod.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Richard Henderson <richard.henderson@linaro.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Richard Henderson <richard.henderson@linaro.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Richard Henderson <richard.henderson@linaro.org> | ||
1 | 2 | ||
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 |