1 | v2: dropped a couple of cadence_gem changes to ID regs that | 1 | Two last-minute regression fixes that I thought we might as well |
---|---|---|---|
2 | caused new clang sanitizer warnings. | 2 | squeeze in before rc1. |
3 | 3 | ||
4 | thanks | ||
4 | -- PMM | 5 | -- PMM |
5 | 6 | ||
6 | The following changes since commit dddb37495b844270088e68e3bf30b764d48d863f: | 7 | The following changes since commit d37bfe142382fa8258531c47b4519387c77cd169: |
7 | 8 | ||
8 | Merge remote-tracking branch 'remotes/awilliam/tags/vfio-updates-20181015.0' into staging (2018-10-15 18:44:04 +0100) | 9 | Merge remote-tracking branch 'remotes/palmer/tags/riscv-for-master-4.0-rc1-v2' into staging (2019-03-26 10:27:20 +0000) |
9 | 10 | ||
10 | are available in the Git repository at: | 11 | are available in the Git repository at: |
11 | 12 | ||
12 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20181016-1 | 13 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20190326 |
13 | 14 | ||
14 | for you to fetch changes up to 2ef297af07196c29446556537861f8e7dfeeae7b: | 15 | for you to fetch changes up to c99ef792dc9ec6d8a5061428faf396ea9ceb8f57: |
15 | 16 | ||
16 | coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls (2018-10-16 17:14:55 +0100) | 17 | gdbstub: fix vCont packet handling when no thread is specified (2019-03-26 12:53:26 +0000) |
17 | 18 | ||
18 | ---------------------------------------------------------------- | 19 | ---------------------------------------------------------------- |
19 | target-arm queue: | 20 | target-arm queue: |
20 | * hw/arm/virt: add DT property /secure-chosen/stdout-path indicating secure UART | 21 | * Set SIMDMISC and FPMISC for 32-bit -cpu max |
21 | * target/arm: Fix aarch64_sve_change_el wrt EL0 | 22 | (fixes regression from 3.1) |
22 | * target/arm: Define fields of ISAR registers | 23 | * fix vCont packet handling when no thread is specified |
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 | 24 | ||
34 | ---------------------------------------------------------------- | 25 | ---------------------------------------------------------------- |
35 | Aaron Lindsay (2): | 26 | Luc Michel (1): |
36 | target/arm: Mark PMINTENCLR and PMINTENCLR_EL1 accesses as possibly doing IO | 27 | gdbstub: fix vCont packet handling when no thread is specified |
37 | target/arm: Mask PMOVSR writes based on supported counters | ||
38 | 28 | ||
39 | Edgar E. Iglesias (8): | 29 | Richard Henderson (1): |
40 | net: cadence_gem: Disable TSU feature bit | 30 | target/arm: Set SIMDMISC and FPMISC for 32-bit -cpu max |
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 | 31 | ||
49 | Jerome Forissier (1): | 32 | gdbstub.c | 14 ++++++++++++-- |
50 | hw/arm/virt: add DT property /secure-chosen/stdout-path indicating secure UART | 33 | target/arm/cpu.c | 5 +++++ |
34 | 2 files changed, 17 insertions(+), 2 deletions(-) | ||
51 | 35 | ||
52 | Peter Maydell (2): | ||
53 | target/arm: Initialize ARMMMUFaultInfo in v7m_stack_read/write | ||
54 | coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls | ||
55 | |||
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 | From: Richard Henderson <richard.henderson@linaro.org> | ||
1 | 2 | ||
3 | Fixes: https://bugs.launchpad.net/bugs/1821430 | ||
4 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | ||
5 | Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
6 | Reviewed-by: Alex Bennée <alex.bennee@linaro.org> | ||
7 | Message-id: 20190325161338.6536-1-richard.henderson@linaro.org | ||
8 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
9 | --- | ||
10 | target/arm/cpu.c | 5 +++++ | ||
11 | 1 file changed, 5 insertions(+) | ||
12 | |||
13 | diff --git a/target/arm/cpu.c b/target/arm/cpu.c | ||
14 | index XXXXXXX..XXXXXXX 100644 | ||
15 | --- a/target/arm/cpu.c | ||
16 | +++ b/target/arm/cpu.c | ||
17 | @@ -XXX,XX +XXX,XX @@ static void arm_max_initfn(Object *obj) | ||
18 | t = FIELD_DP32(t, ID_ISAR6, SPECRES, 1); | ||
19 | cpu->isar.id_isar6 = t; | ||
20 | |||
21 | + t = cpu->isar.mvfr2; | ||
22 | + t = FIELD_DP32(t, MVFR2, SIMDMISC, 3); /* SIMD MaxNum */ | ||
23 | + t = FIELD_DP32(t, MVFR2, FPMISC, 4); /* FP MaxNum */ | ||
24 | + cpu->isar.mvfr2 = t; | ||
25 | + | ||
26 | t = cpu->id_mmfr4; | ||
27 | t = FIELD_DP32(t, ID_MMFR4, HPDS, 1); /* AA32HPD */ | ||
28 | cpu->id_mmfr4 = t; | ||
29 | -- | ||
30 | 2.20.1 | ||
31 | |||
32 | diff view generated by jsdifflib |
New patch | |||
---|---|---|---|
1 | From: Luc Michel <luc.michel@greensocs.com> | ||
1 | 2 | ||
3 | The vCont packet accepts a series of actions, each being applied on a | ||
4 | given thread ID. Giving no thread ID for an action is valid and means | ||
5 | "all threads". | ||
6 | |||
7 | This commit fixes vCont packets being incorrectly rejected when no | ||
8 | thread ID was given for an action. | ||
9 | |||
10 | In multiprocess mode, the GDB Remote Protocol specification is unclear | ||
11 | on what "all threads" means. We choose to apply the action on all | ||
12 | threads of all attached processes. | ||
13 | |||
14 | This commit is based on the initial fix by Lucien Murray-Pitts. | ||
15 | |||
16 | Fixes: e40e5204af8388 | ||
17 | Reported-by: Lucien Murray-Pitts <lucienmp_antispam@yahoo.com> | ||
18 | Reported-by: Jan Kiszka <jan.kiszka@siemens.com> | ||
19 | Signed-off-by: Luc Michel <luc.michel@greensocs.com> | ||
20 | Reviewed-by: Richard Henderson <richard.henderson@linaro.org> | ||
21 | Message-id: 20190325110452.6756-1-luc.michel@greensocs.com | ||
22 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
23 | --- | ||
24 | gdbstub.c | 14 ++++++++++++-- | ||
25 | 1 file changed, 12 insertions(+), 2 deletions(-) | ||
26 | |||
27 | diff --git a/gdbstub.c b/gdbstub.c | ||
28 | index XXXXXXX..XXXXXXX 100644 | ||
29 | --- a/gdbstub.c | ||
30 | +++ b/gdbstub.c | ||
31 | @@ -XXX,XX +XXX,XX @@ static int gdb_handle_vcont(GDBState *s, const char *p) | ||
32 | uint32_t pid, tid; | ||
33 | GDBProcess *process; | ||
34 | CPUState *cpu; | ||
35 | + GDBThreadIdKind kind; | ||
36 | #ifdef CONFIG_USER_ONLY | ||
37 | int max_cpus = 1; /* global variable max_cpus exists only in system mode */ | ||
38 | |||
39 | @@ -XXX,XX +XXX,XX @@ static int gdb_handle_vcont(GDBState *s, const char *p) | ||
40 | goto out; | ||
41 | } | ||
42 | |||
43 | - if (*p++ != ':') { | ||
44 | + if (*p == '\0' || *p == ';') { | ||
45 | + /* | ||
46 | + * No thread specifier, action is on "all threads". The | ||
47 | + * specification is unclear regarding the process to act on. We | ||
48 | + * choose all processes. | ||
49 | + */ | ||
50 | + kind = GDB_ALL_PROCESSES; | ||
51 | + } else if (*p++ == ':') { | ||
52 | + kind = read_thread_id(p, &p, &pid, &tid); | ||
53 | + } else { | ||
54 | res = -ENOTSUP; | ||
55 | goto out; | ||
56 | } | ||
57 | |||
58 | - switch (read_thread_id(p, &p, &pid, &tid)) { | ||
59 | + switch (kind) { | ||
60 | case GDB_READ_THREAD_ERR: | ||
61 | res = -EINVAL; | ||
62 | goto out; | ||
63 | -- | ||
64 | 2.20.1 | ||
65 | |||
66 | diff view generated by jsdifflib |