1
Just one patch for rc2, a revert.
1
v2: dropped patches that add the microbit nRF51 non-volatile memories
2
and the test case for them.
2
3
4
thanks
3
-- PMM
5
-- PMM
4
6
5
The following changes since commit 49aaac3548bc5a4632a14de939d5312b28dc1ba2:
6
7
7
Merge tag 'linux-user-for-6.2-pull-request' of git://github.com/vivier/qemu into staging (2021-11-22 10:33:13 +0100)
8
The following changes since commit 3a183e330dbd7dbcac3841737ac874979552cca2:
9
10
Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20190128' into staging (2019-01-28 16:26:47 +0000)
8
11
9
are available in the Git repository at:
12
are available in the Git repository at:
10
13
11
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20211122
14
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20190129
12
15
13
for you to fetch changes up to 4825eaae4fdd56fba0febdfbdd7bf9684ae3ee0d:
16
for you to fetch changes up to 46f5abc0a2566ac3dc954eeb62fd625f0eaca120:
14
17
15
Revert "arm: tcg: Adhere to SMCCC 1.3 section 5.2" (2021-11-22 13:41:48 +0000)
18
gdbstub: Simplify gdb_get_cpu_pid() to use cpu->cluster_index (2019-01-29 11:46:06 +0000)
16
19
17
----------------------------------------------------------------
20
----------------------------------------------------------------
18
target-arm queue:
21
target-arm queue:
19
* revert SMCCC/PSCI change, as it regresses some usecases for some boards
22
* Fix validation of 32-bit address spaces for aa32 (fixes an assert introduced in ba97be9f4a4)
23
* v8m: Ensure IDAU is respected if SAU is disabled
24
* gdbstub: fix gdb_get_cpu(s, pid, tid) when pid and/or tid are 0
25
* exec.c: Use correct attrs in cpu_memory_rw_debug()
26
* accel/tcg/user-exec: Don't parse aarch64 insns to test for read vs write
27
* target/arm: Don't clear supported PMU events when initializing PMCEID1
28
* memory: add memory_region_flush_rom_device()
29
* microbit: Add stub NRF51 TWI magnetometer/accelerometer detection
30
* tests/microbit-test: extend testing of microbit devices
31
* checkpatch: Don't emit spurious warnings about block comments
32
* aspeed/smc: misc bug fixes
33
* xlnx-zynqmp: Don't create rpu-cluster if there are no RPUs
34
* xlnx-zynqmp: Realize cluster after putting RPUs in it
35
* accel/tcg: Add cluster number to TCG TB hash so differently configured
36
CPUs don't pick up cached TBs for the wrong kind of CPU
20
37
21
----------------------------------------------------------------
38
----------------------------------------------------------------
22
Peter Maydell (1):
39
Aaron Lindsay OS (1):
23
Revert "arm: tcg: Adhere to SMCCC 1.3 section 5.2"
40
target/arm: Don't clear supported PMU events when initializing PMCEID1
24
41
25
target/arm/psci.c | 35 +++++++++++++++++++++++++++++------
42
Cédric Le Goater (4):
26
1 file changed, 29 insertions(+), 6 deletions(-)
43
aspeed/smc: fix default read value
44
aspeed/smc: define registers for all possible CS
45
aspeed/smc: Add dummy data register
46
aspeed/smc: snoop SPI transfers to fake dummy cycles
27
47
48
Julia Suvorova (3):
49
tests/libqtest: Introduce qtest_init_with_serial()
50
tests/microbit-test: Make test independent of global_qtest
51
tests/microbit-test: Check nRF51 UART functionality
52
53
Luc Michel (1):
54
gdbstub: fix gdb_get_cpu(s, pid, tid) when pid and/or tid are 0
55
56
Peter Maydell (8):
57
exec.c: Use correct attrs in cpu_memory_rw_debug()
58
accel/tcg/user-exec: Don't parse aarch64 insns to test for read vs write
59
checkpatch: Don't emit spurious warnings about block comments
60
xlnx-zynqmp: Don't create rpu-cluster if there are no RPUs
61
hw/arm/xlnx-zynqmp: Realize cluster after putting RPUs in it
62
qom/cpu: Add cluster_index to CPUState
63
accel/tcg: Add cluster number to TCG TB hash
64
gdbstub: Simplify gdb_get_cpu_pid() to use cpu->cluster_index
65
66
Richard Henderson (1):
67
target/arm: Fix validation of 32-bit address spaces for aa32
68
69
Stefan Hajnoczi (3):
70
tests/microbit-test: add TWI stub device test
71
MAINTAINERS: update microbit ARM board files
72
memory: add memory_region_flush_rom_device()
73
74
Steffen Görtz (1):
75
arm: Stub out NRF51 TWI magnetometer/accelerometer detection
76
77
Thomas Roth (1):
78
target/arm: v8m: Ensure IDAU is respected if SAU is disabled
79
80
hw/i2c/Makefile.objs | 1 +
81
include/exec/exec-all.h | 4 +-
82
include/exec/memory.h | 18 +++
83
include/hw/arm/nrf51.h | 2 +
84
include/hw/arm/nrf51_soc.h | 1 +
85
include/hw/cpu/cluster.h | 24 +++
86
include/hw/i2c/microbit_i2c.h | 42 +++++
87
include/hw/ssi/aspeed_smc.h | 3 +
88
include/qom/cpu.h | 7 +
89
target/arm/cpu.h | 11 +-
90
tests/libqtest.h | 11 ++
91
accel/tcg/cpu-exec.c | 3 +
92
accel/tcg/translate-all.c | 3 +
93
accel/tcg/user-exec.c | 66 ++++++--
94
exec.c | 19 ++-
95
gdbstub.c | 120 ++++++---------
96
hw/arm/microbit.c | 16 ++
97
hw/arm/xlnx-zynqmp.c | 9 +-
98
hw/cpu/cluster.c | 46 ++++++
99
hw/i2c/microbit_i2c.c | 127 +++++++++++++++
100
hw/ssi/aspeed_smc.c | 128 ++++++++++++++-
101
qom/cpu.c | 1 +
102
target/arm/cpu.c | 3 +-
103
target/arm/helper.c | 67 ++++----
104
tests/libqtest.c | 25 +++
105
tests/microbit-test.c | 350 +++++++++++++++++++++++++++++-------------
106
MAINTAINERS | 8 +-
107
scripts/checkpatch.pl | 2 +-
108
28 files changed, 874 insertions(+), 243 deletions(-)
109
create mode 100644 include/hw/i2c/microbit_i2c.h
110
create mode 100644 hw/i2c/microbit_i2c.c
111
diff view generated by jsdifflib
Deleted patch
1
This reverts commit 9fcd15b9193e819b6cc2fd0a45e3506148812bb4.
2
1
3
This change turns out to cause regressions, for instance on the
4
imx6ul boards as described here:
5
https://lore.kernel.org/qemu-devel/c8b89685-7490-328b-51a3-48711c140a84@tribudubois.net/
6
7
The primary cause of that regression is that the guest code running
8
at EL3 expects SMCs (not related to PSCI) to do what they would if
9
our PSCI emulation was not present at all, but after this change
10
they instead set a value in R0/X0 and continue.
11
12
We could fix that by a refactoring that allowed us to only turn on
13
the PSCI emulation if we weren't booting the guest at EL3, but there
14
is a more tangled problem with the highbank board, which:
15
(1) wants to enable PSCI emulation
16
(2) has a bit of guest code that it wants to run at EL3 and
17
to perform SMC calls that trap to the monitor vector table:
18
this is the boot stub code that is written to memory by
19
arm_write_secure_board_setup_dummy_smc() and which the
20
highbank board enables by setting bootinfo->secure_board_setup
21
22
We can't satisfy both of those and also have the PSCI emulation
23
handle all SMC instruction executions regardless of function
24
identifier value.
25
26
This is too tricky to try to sort out before 6.2 is released;
27
revert this commit so we can take the time to get it right in
28
the 7.0 release.
29
30
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
31
Message-id: 20211119163419.557623-1-peter.maydell@linaro.org
32
---
33
target/arm/psci.c | 35 +++++++++++++++++++++++++++++------
34
1 file changed, 29 insertions(+), 6 deletions(-)
35
36
diff --git a/target/arm/psci.c b/target/arm/psci.c
37
index XXXXXXX..XXXXXXX 100644
38
--- a/target/arm/psci.c
39
+++ b/target/arm/psci.c
40
@@ -XXX,XX +XXX,XX @@
41
42
bool arm_is_psci_call(ARMCPU *cpu, int excp_type)
43
{
44
- /*
45
- * Return true if the exception type matches the configured PSCI conduit.
46
- * This is called before the SMC/HVC instruction is executed, to decide
47
- * whether we should treat it as a PSCI call or with the architecturally
48
+ /* Return true if the r0/x0 value indicates a PSCI call and
49
+ * the exception type matches the configured PSCI conduit. This is
50
+ * called before the SMC/HVC instruction is executed, to decide whether
51
+ * we should treat it as a PSCI call or with the architecturally
52
* defined behaviour for an SMC or HVC (which might be UNDEF or trap
53
* to EL2 or to EL3).
54
*/
55
+ CPUARMState *env = &cpu->env;
56
+ uint64_t param = is_a64(env) ? env->xregs[0] : env->regs[0];
57
58
switch (excp_type) {
59
case EXCP_HVC:
60
@@ -XXX,XX +XXX,XX @@ bool arm_is_psci_call(ARMCPU *cpu, int excp_type)
61
return false;
62
}
63
64
- return true;
65
+ switch (param) {
66
+ case QEMU_PSCI_0_2_FN_PSCI_VERSION:
67
+ case QEMU_PSCI_0_2_FN_MIGRATE_INFO_TYPE:
68
+ case QEMU_PSCI_0_2_FN_AFFINITY_INFO:
69
+ case QEMU_PSCI_0_2_FN64_AFFINITY_INFO:
70
+ case QEMU_PSCI_0_2_FN_SYSTEM_RESET:
71
+ case QEMU_PSCI_0_2_FN_SYSTEM_OFF:
72
+ case QEMU_PSCI_0_1_FN_CPU_ON:
73
+ case QEMU_PSCI_0_2_FN_CPU_ON:
74
+ case QEMU_PSCI_0_2_FN64_CPU_ON:
75
+ case QEMU_PSCI_0_1_FN_CPU_OFF:
76
+ case QEMU_PSCI_0_2_FN_CPU_OFF:
77
+ case QEMU_PSCI_0_1_FN_CPU_SUSPEND:
78
+ case QEMU_PSCI_0_2_FN_CPU_SUSPEND:
79
+ case QEMU_PSCI_0_2_FN64_CPU_SUSPEND:
80
+ case QEMU_PSCI_0_1_FN_MIGRATE:
81
+ case QEMU_PSCI_0_2_FN_MIGRATE:
82
+ return true;
83
+ default:
84
+ return false;
85
+ }
86
}
87
88
void arm_handle_psci_call(ARMCPU *cpu)
89
@@ -XXX,XX +XXX,XX @@ void arm_handle_psci_call(ARMCPU *cpu)
90
break;
91
case QEMU_PSCI_0_1_FN_MIGRATE:
92
case QEMU_PSCI_0_2_FN_MIGRATE:
93
- default:
94
ret = QEMU_PSCI_RET_NOT_SUPPORTED;
95
break;
96
+ default:
97
+ g_assert_not_reached();
98
}
99
100
err:
101
--
102
2.25.1
103
104
diff view generated by jsdifflib