1 | v2: dropped a couple of cadence_gem changes to ID regs that | 1 | A few last patches to go in for rc3... |
---|---|---|---|
2 | caused new clang sanitizer warnings. | ||
3 | 2 | ||
4 | -- PMM | 3 | The following changes since commit c1e90def01bdb8fcbdbebd9d1eaa8e4827ece620: |
5 | 4 | ||
6 | The following changes since commit dddb37495b844270088e68e3bf30b764d48d863f: | 5 | Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210412' into staging (2021-04-12 12:12:09 +0100) |
7 | |||
8 | Merge remote-tracking branch 'remotes/awilliam/tags/vfio-updates-20181015.0' into staging (2018-10-15 18:44:04 +0100) | ||
9 | 6 | ||
10 | are available in the Git repository at: | 7 | are available in the Git repository at: |
11 | 8 | ||
12 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20181016-1 | 9 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210413 |
13 | 10 | ||
14 | for you to fetch changes up to 2ef297af07196c29446556537861f8e7dfeeae7b: | 11 | for you to fetch changes up to 2d18b4ca023ca1a3aee18064251d6e6e1084f3eb: |
15 | 12 | ||
16 | coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls (2018-10-16 17:14:55 +0100) | 13 | sphinx: qapidoc: Wrap "If" section body in a paragraph node (2021-04-13 10:14:58 +0100) |
17 | 14 | ||
18 | ---------------------------------------------------------------- | 15 | ---------------------------------------------------------------- |
19 | target-arm queue: | 16 | target-arm queue: |
20 | * hw/arm/virt: add DT property /secure-chosen/stdout-path indicating secure UART | 17 | * Fix MPC setting for AN524 SRAM block |
21 | * target/arm: Fix aarch64_sve_change_el wrt EL0 | 18 | * sphinx: qapidoc: Wrap "If" section body in a paragraph node |
22 | * target/arm: Define fields of ISAR registers | ||
23 | * target/arm: Align cortex-r5 id_isar0 | ||
24 | * target/arm: Fix cortex-a7 id_isar0 | ||
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 | 19 | ||
34 | ---------------------------------------------------------------- | 20 | ---------------------------------------------------------------- |
35 | Aaron Lindsay (2): | 21 | John Snow (1): |
36 | target/arm: Mark PMINTENCLR and PMINTENCLR_EL1 accesses as possibly doing IO | 22 | sphinx: qapidoc: Wrap "If" section body in a paragraph node |
37 | target/arm: Mask PMOVSR writes based on supported counters | ||
38 | |||
39 | Edgar E. Iglesias (8): | ||
40 | net: cadence_gem: Disable TSU feature bit | ||
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 | |||
49 | Jerome Forissier (1): | ||
50 | hw/arm/virt: add DT property /secure-chosen/stdout-path indicating secure UART | ||
51 | 23 | ||
52 | Peter Maydell (2): | 24 | Peter Maydell (2): |
53 | target/arm: Initialize ARMMMUFaultInfo in v7m_stack_read/write | 25 | hw/arm/mps2-tz: Fix MPC setting for AN524 SRAM block |
54 | coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls | 26 | hw/arm/mps2-tz: Assert if more than one RAM is attached to an MPC |
55 | 27 | ||
56 | Richard Henderson (4): | 28 | docs/sphinx/qapidoc.py | 4 +++- |
57 | target/arm: Fix aarch64_sve_change_el wrt EL0 | 29 | hw/arm/mps2-tz.c | 10 +++++++--- |
58 | target/arm: Define fields of ISAR registers | 30 | 2 files changed, 10 insertions(+), 4 deletions(-) |
59 | target/arm: Align cortex-r5 id_isar0 | ||
60 | target/arm: Fix cortex-a7 id_isar0 | ||
61 | 31 | ||
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 | The AN524 has three MPCs: one for the BRAM, one for the QSPI flash, | ||
2 | and one for the DDR. We incorrectly set the .mpc field in the | ||
3 | RAMInfo struct for the SRAM block to 1, giving it the same MPC we are | ||
4 | using for the QSPI. The effect of this was that the QSPI didn't get | ||
5 | mapped into the system address space at all, via an MPC or otherwise, | ||
6 | and guest programs which tried to read from the QSPI would get a bus | ||
7 | error. Correct the SRAM RAMInfo to indicate that it does not have an | ||
8 | associated MPC. | ||
1 | 9 | ||
10 | Fixes: 25ff112a8cc ("hw/arm/mps2-tz: Add new mps3-an524 board") | ||
11 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
12 | Reviewed-by: Richard Henderson <richard.henderson@linaro.org> | ||
13 | Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
14 | Message-id: 20210409150527.15053-2-peter.maydell@linaro.org | ||
15 | --- | ||
16 | hw/arm/mps2-tz.c | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c | ||
20 | index XXXXXXX..XXXXXXX 100644 | ||
21 | --- a/hw/arm/mps2-tz.c | ||
22 | +++ b/hw/arm/mps2-tz.c | ||
23 | @@ -XXX,XX +XXX,XX @@ static const RAMInfo an524_raminfo[] = { { | ||
24 | .name = "sram", | ||
25 | .base = 0x20000000, | ||
26 | .size = 32 * 4 * KiB, | ||
27 | - .mpc = 1, | ||
28 | + .mpc = -1, | ||
29 | .mrindex = 1, | ||
30 | }, { | ||
31 | /* We don't model QSPI flash yet; for now expose it as simple ROM */ | ||
32 | -- | ||
33 | 2.20.1 | ||
34 | |||
35 | diff view generated by jsdifflib |
New patch | |||
---|---|---|---|
1 | Each board in mps2-tz.c specifies a RAMInfo[] array providing | ||
2 | information about each RAM in the board. The .mpc field of the | ||
3 | RAMInfo struct specifies which MPC, if any, the RAM is attached to. | ||
4 | We already assert if the array doesn't have any entry for an MPC, but | ||
5 | we don't diagnose the error of using the same MPC number twice (which | ||
6 | is quite easy to do by accident if copy-and-pasting structure | ||
7 | entries). | ||
1 | 8 | ||
9 | Enhance find_raminfo_for_mpc() so that it detects multiple entries | ||
10 | for the MPC as well as missing entries. | ||
11 | |||
12 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
13 | Reviewed-by: Richard Henderson <richard.henderson@linaro.org> | ||
14 | Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
15 | Message-id: 20210409150527.15053-3-peter.maydell@linaro.org | ||
16 | --- | ||
17 | hw/arm/mps2-tz.c | 8 ++++++-- | ||
18 | 1 file changed, 6 insertions(+), 2 deletions(-) | ||
19 | |||
20 | diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c | ||
21 | index XXXXXXX..XXXXXXX 100644 | ||
22 | --- a/hw/arm/mps2-tz.c | ||
23 | +++ b/hw/arm/mps2-tz.c | ||
24 | @@ -XXX,XX +XXX,XX @@ static const RAMInfo *find_raminfo_for_mpc(MPS2TZMachineState *mms, int mpc) | ||
25 | { | ||
26 | MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_GET_CLASS(mms); | ||
27 | const RAMInfo *p; | ||
28 | + const RAMInfo *found = NULL; | ||
29 | |||
30 | for (p = mmc->raminfo; p->name; p++) { | ||
31 | if (p->mpc == mpc && !(p->flags & IS_ALIAS)) { | ||
32 | - return p; | ||
33 | + /* There should only be one entry in the array for this MPC */ | ||
34 | + g_assert(!found); | ||
35 | + found = p; | ||
36 | } | ||
37 | } | ||
38 | /* if raminfo array doesn't have an entry for each MPC this is a bug */ | ||
39 | - g_assert_not_reached(); | ||
40 | + assert(found); | ||
41 | + return found; | ||
42 | } | ||
43 | |||
44 | static MemoryRegion *mr_for_raminfo(MPS2TZMachineState *mms, | ||
45 | -- | ||
46 | 2.20.1 | ||
47 | |||
48 | diff view generated by jsdifflib |
New patch | |||
---|---|---|---|
1 | From: John Snow <jsnow@redhat.com> | ||
1 | 2 | ||
3 | These sections need to be wrapped in a block-level element, such as | ||
4 | Paragraph in order for them to be rendered into Texinfo correctly. | ||
5 | |||
6 | Before (e.g.): | ||
7 | |||
8 | <section ids="qapidoc-713"> | ||
9 | <title>If</title> | ||
10 | <literal>defined(CONFIG_REPLICATION)</literal> | ||
11 | </section> | ||
12 | |||
13 | became: | ||
14 | |||
15 | .SS If | ||
16 | \fBdefined(CONFIG_REPLICATION)\fP.SS \fBBlockdevOptionsReplication\fP (Object) | ||
17 | ... | ||
18 | |||
19 | After: | ||
20 | |||
21 | <section ids="qapidoc-713"> | ||
22 | <title>If</title> | ||
23 | <paragraph> | ||
24 | <literal>defined(CONFIG_REPLICATION)</literal> | ||
25 | </paragraph> | ||
26 | </section> | ||
27 | |||
28 | becomes: | ||
29 | |||
30 | .SS If | ||
31 | .sp | ||
32 | \fBdefined(CONFIG_REPLICATION)\fP | ||
33 | .SS \fBBlockdevOptionsReplication\fP (Object) | ||
34 | ... | ||
35 | |||
36 | Reported-by: Markus Armbruster <armbru@redhat.com> | ||
37 | Tested-by: Markus Armbruster <armbru@redhat.com> | ||
38 | Signed-off-by: John Snow <jsnow@redhat.com> | ||
39 | Reviewed-by: Peter Maydell <peter.maydell@linaro.org> | ||
40 | Message-id: 20210406141909.1992225-2-jsnow@redhat.com | ||
41 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
42 | --- | ||
43 | docs/sphinx/qapidoc.py | 4 +++- | ||
44 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
45 | |||
46 | diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py | ||
47 | index XXXXXXX..XXXXXXX 100644 | ||
48 | --- a/docs/sphinx/qapidoc.py | ||
49 | +++ b/docs/sphinx/qapidoc.py | ||
50 | @@ -XXX,XX +XXX,XX @@ def _nodes_for_if_section(self, ifcond): | ||
51 | nodelist = [] | ||
52 | if ifcond: | ||
53 | snode = self._make_section('If') | ||
54 | - snode += self._nodes_for_ifcond(ifcond, with_if=False) | ||
55 | + snode += nodes.paragraph( | ||
56 | + '', '', *self._nodes_for_ifcond(ifcond, with_if=False) | ||
57 | + ) | ||
58 | nodelist.append(snode) | ||
59 | return nodelist | ||
60 | |||
61 | -- | ||
62 | 2.20.1 | ||
63 | |||
64 | diff view generated by jsdifflib |