1
ARM queue, mostly bug fixes to go into rc0.
1
v2: fix compile failure on arm hosts...
2
The integratorcp and fsl_imx* changes are migration
3
compat breakers but that's ok for these boards.
4
2
5
thanks
3
thanks
6
-- PMM
4
-- PMM
7
5
6
The following changes since commit 6db87aae61bc6ac0a8cd9bc2e05d7ebfbcfd3657:
8
7
9
The following changes since commit ce1d20aac8533357650774c2c240e30de87dc122:
8
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2018-11-12 17:11:22 +0000)
10
9
11
Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2017-07-24' into staging (2017-07-24 16:20:47 +0100)
10
are available in the Git repository at:
12
11
13
are available in the git repository at:
12
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20181113
14
13
15
git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20170724
14
for you to fetch changes up to 436c0cbbeb38dd97c02fe921a7cb253a18afdd86:
16
15
17
for you to fetch changes up to b2d1b0507d1b80f23da12dd8aab56944fe380a09:
16
target/arm/cpu: Give Cortex-A15 and -A7 the EL2 feature (2018-11-13 10:47:59 +0000)
18
19
integratorcp: Don't migrate flash using vmstate_register_ram_global() (2017-07-24 17:59:28 +0100)
20
17
21
----------------------------------------------------------------
18
----------------------------------------------------------------
22
target-arm queue:
19
target/arm queue:
23
* fix a TCG temporary leak in aarch64 rev16
20
* Remove no-longer-needed workaround for small SAU regions for v8M
24
* fsl_imx*: migrate the ROM contents
21
* Remove antique TODO comment
25
* integratorcp: don't use vmstate_register_ram_global for flash
22
* MAINTAINERS: Add an entry for the 'collie' machine
26
* mps2: Correctly set parent bus for SCC device
23
* hw/arm/sysbus-fdt: Only call match_fn callback if the type matches
24
* Fix infinite recursion in tlbi_aa64_vmalle1_write()
25
* ARM KVM: fix various bugs in handling of guest debugging
26
* Correctly implement handling of HCR_EL2.{VI, VF}
27
* Hyp mode R14 is shared with User and System
28
* Give Cortex-A15 and -A7 the EL2 feature
27
29
28
----------------------------------------------------------------
30
----------------------------------------------------------------
29
Emilio G. Cota (1):
31
Alex Bennée (6):
30
target/arm: fix TCG temp leak in aarch64 rev16
32
target/arm64: properly handle DBGVR RESS bits
33
target/arm64: hold BQL when calling do_interrupt()
34
target/arm64: kvm debug set target_el when passing exception to guest
35
tests/guest-debug: fix scoping of failcount
36
arm: use symbolic MDCR_TDE in arm_debug_target_el
37
arm: fix aa64_generate_debug_exceptions to work with EL2
31
38
32
Peter Maydell (3):
39
Eric Auger (1):
33
fsl_imx*: Migrate ROM contents
40
hw/arm/sysbus-fdt: Only call match_fn callback if the type matches
34
mps2: Correctly set parent bus for SCC device
35
integratorcp: Don't migrate flash using vmstate_register_ram_global()
36
41
37
hw/arm/fsl-imx25.c | 4 ++--
42
Peter Maydell (7):
38
hw/arm/fsl-imx31.c | 4 ++--
43
target/arm: Remove workaround for small SAU regions
39
hw/arm/fsl-imx6.c | 4 ++--
44
target/arm: Remove antique TODO comment
40
hw/arm/integratorcp.c | 3 +--
45
Revert "target/arm: Implement HCR.VI and VF"
41
hw/arm/mps2.c | 2 +-
46
target/arm: Track the state of our irq lines from the GIC explicitly
42
target/arm/translate-a64.c | 1 +
47
target/arm: Correctly implement handling of HCR_EL2.{VI, VF}
43
6 files changed, 9 insertions(+), 9 deletions(-)
48
target/arm: Hyp mode R14 is shared with User and System
49
target/arm/cpu: Give Cortex-A15 and -A7 the EL2 feature
44
50
51
Richard Henderson (1):
52
target/arm: Fix typo in tlbi_aa64_vmalle1_write
53
54
Thomas Huth (1):
55
MAINTAINERS: Add an entry for the 'collie' machine
56
57
target/arm/cpu.h | 44 +++++++++++------
58
target/arm/internals.h | 34 +++++++++++++
59
hw/arm/sysbus-fdt.c | 12 +++--
60
target/arm/cpu.c | 67 ++++++++++++++++++++++++-
61
target/arm/helper.c | 101 +++++++++++++-------------------------
62
target/arm/kvm32.c | 4 +-
63
target/arm/kvm64.c | 20 +++++++-
64
target/arm/machine.c | 51 +++++++++++++++++++
65
target/arm/op_helper.c | 4 +-
66
MAINTAINERS | 7 +++
67
tests/guest-debug/test-gdbstub.py | 1 +
68
11 files changed, 249 insertions(+), 96 deletions(-)
69
diff view generated by jsdifflib
Deleted patch
1
From: "Emilio G. Cota" <cota@braap.org>
2
1
3
Fix a TCG temporary leak in the new aarch64 rev16 handling.
4
5
Signed-off-by: Emilio G. Cota <cota@braap.org>
6
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
7
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8
---
9
target/arm/translate-a64.c | 1 +
10
1 file changed, 1 insertion(+)
11
12
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
13
index XXXXXXX..XXXXXXX 100644
14
--- a/target/arm/translate-a64.c
15
+++ b/target/arm/translate-a64.c
16
@@ -XXX,XX +XXX,XX @@ static void handle_rev16(DisasContext *s, unsigned int sf,
17
tcg_gen_shli_i64(tcg_rd, tcg_rd, 8);
18
tcg_gen_or_i64(tcg_rd, tcg_rd, tcg_tmp);
19
20
+ tcg_temp_free_i64(mask);
21
tcg_temp_free_i64(tcg_tmp);
22
}
23
24
--
25
2.7.4
26
27
diff view generated by jsdifflib
Deleted patch
1
The fsl-imx* boards accidentally forgot to register the ROM memory
2
regions for migration. This used to require a manual step of calling
3
vmstate_register_ram(), but following commits
4
1cfe48c1ce21..b08199c6fbea194 we can use memory_region_init_rom() to
5
have it do the migration for us.
6
1
7
This is a migration break, but the migration code currently does not
8
handle the case of having two RAM regions which were not registered
9
for migration, and so prior to this commit a migration load would
10
always fail with:
11
"qemu-system-arm: Length mismatch: 0x4000 in != 0x18000: Invalid argument"
12
13
NB: migration appears at this point to be broken for this board
14
anyway -- it succeeds but the destination hangs; probably some
15
device in the system does not yet support migration.
16
17
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
18
Message-id: 1500309775-18361-1-git-send-email-peter.maydell@linaro.org
19
---
20
hw/arm/fsl-imx25.c | 4 ++--
21
hw/arm/fsl-imx31.c | 4 ++--
22
hw/arm/fsl-imx6.c | 4 ++--
23
3 files changed, 6 insertions(+), 6 deletions(-)
24
25
diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c
26
index XXXXXXX..XXXXXXX 100644
27
--- a/hw/arm/fsl-imx25.c
28
+++ b/hw/arm/fsl-imx25.c
29
@@ -XXX,XX +XXX,XX @@ static void fsl_imx25_realize(DeviceState *dev, Error **errp)
30
}
31
32
/* initialize 2 x 16 KB ROM */
33
- memory_region_init_rom_nomigrate(&s->rom[0], NULL,
34
+ memory_region_init_rom(&s->rom[0], NULL,
35
"imx25.rom0", FSL_IMX25_ROM0_SIZE, &err);
36
if (err) {
37
error_propagate(errp, err);
38
@@ -XXX,XX +XXX,XX @@ static void fsl_imx25_realize(DeviceState *dev, Error **errp)
39
}
40
memory_region_add_subregion(get_system_memory(), FSL_IMX25_ROM0_ADDR,
41
&s->rom[0]);
42
- memory_region_init_rom_nomigrate(&s->rom[1], NULL,
43
+ memory_region_init_rom(&s->rom[1], NULL,
44
"imx25.rom1", FSL_IMX25_ROM1_SIZE, &err);
45
if (err) {
46
error_propagate(errp, err);
47
diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c
48
index XXXXXXX..XXXXXXX 100644
49
--- a/hw/arm/fsl-imx31.c
50
+++ b/hw/arm/fsl-imx31.c
51
@@ -XXX,XX +XXX,XX @@ static void fsl_imx31_realize(DeviceState *dev, Error **errp)
52
}
53
54
/* On a real system, the first 16k is a `secure boot rom' */
55
- memory_region_init_rom_nomigrate(&s->secure_rom, NULL, "imx31.secure_rom",
56
+ memory_region_init_rom(&s->secure_rom, NULL, "imx31.secure_rom",
57
FSL_IMX31_SECURE_ROM_SIZE, &err);
58
if (err) {
59
error_propagate(errp, err);
60
@@ -XXX,XX +XXX,XX @@ static void fsl_imx31_realize(DeviceState *dev, Error **errp)
61
&s->secure_rom);
62
63
/* There is also a 16k ROM */
64
- memory_region_init_rom_nomigrate(&s->rom, NULL, "imx31.rom",
65
+ memory_region_init_rom(&s->rom, NULL, "imx31.rom",
66
FSL_IMX31_ROM_SIZE, &err);
67
if (err) {
68
error_propagate(errp, err);
69
diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c
70
index XXXXXXX..XXXXXXX 100644
71
--- a/hw/arm/fsl-imx6.c
72
+++ b/hw/arm/fsl-imx6.c
73
@@ -XXX,XX +XXX,XX @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp)
74
FSL_IMX6_ENET_MAC_1588_IRQ));
75
76
/* ROM memory */
77
- memory_region_init_rom_nomigrate(&s->rom, NULL, "imx6.rom",
78
+ memory_region_init_rom(&s->rom, NULL, "imx6.rom",
79
FSL_IMX6_ROM_SIZE, &err);
80
if (err) {
81
error_propagate(errp, err);
82
@@ -XXX,XX +XXX,XX @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp)
83
&s->rom);
84
85
/* CAAM memory */
86
- memory_region_init_rom_nomigrate(&s->caam, NULL, "imx6.caam",
87
+ memory_region_init_rom(&s->caam, NULL, "imx6.caam",
88
FSL_IMX6_CAAM_MEM_SIZE, &err);
89
if (err) {
90
error_propagate(errp, err);
91
--
92
2.7.4
93
94
diff view generated by jsdifflib
Deleted patch
1
A cut-and-paste error meant that instead of setting the
2
qdev parent bus for the SCC device we were setting it
3
twice for the ARMv7M container device. Fix this bug.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Message-id: 1500634509-28011-1-git-send-email-peter.maydell@linaro.org
7
---
8
hw/arm/mps2.c | 2 +-
9
1 file changed, 1 insertion(+), 1 deletion(-)
10
11
diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c
12
index XXXXXXX..XXXXXXX 100644
13
--- a/hw/arm/mps2.c
14
+++ b/hw/arm/mps2.c
15
@@ -XXX,XX +XXX,XX @@ static void mps2_common_init(MachineState *machine)
16
17
object_initialize(&mms->scc, sizeof(mms->scc), TYPE_MPS2_SCC);
18
sccdev = DEVICE(&mms->scc);
19
- qdev_set_parent_bus(armv7m, sysbus_get_default());
20
+ qdev_set_parent_bus(sccdev, sysbus_get_default());
21
qdev_prop_set_uint32(sccdev, "scc-cfg4", 0x2);
22
qdev_prop_set_uint32(sccdev, "scc-aid", 0x02000008);
23
qdev_prop_set_uint32(sccdev, "scc-id", mmc->scc_id);
24
--
25
2.7.4
26
27
diff view generated by jsdifflib
Deleted patch
1
Instead of migrating the flash by creating the memory region
2
with memory_region_init_ram_nomigrate() and then calling
3
vmstate_register_ram_global(), just use memory_region_init_ram(),
4
which now handles migration registration automatically.
5
1
6
This is a migration compatibility break for the integratorcp
7
board, because the RAM region's migration name changes to
8
include the device path. This is OK because we don't guarantee
9
migration compatibility for this board.
10
11
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12
Message-id: 1500310341-28931-1-git-send-email-peter.maydell@linaro.org
13
---
14
hw/arm/integratorcp.c | 3 +--
15
1 file changed, 1 insertion(+), 2 deletions(-)
16
17
diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c
18
index XXXXXXX..XXXXXXX 100644
19
--- a/hw/arm/integratorcp.c
20
+++ b/hw/arm/integratorcp.c
21
@@ -XXX,XX +XXX,XX @@ static void integratorcm_init(Object *obj)
22
s->cm_init = 0x00000112;
23
s->cm_refcnt_offset = muldiv64(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL), 24,
24
1000);
25
- memory_region_init_ram_nomigrate(&s->flash, obj, "integrator.flash", 0x100000,
26
+ memory_region_init_ram(&s->flash, obj, "integrator.flash", 0x100000,
27
&error_fatal);
28
- vmstate_register_ram_global(&s->flash);
29
30
memory_region_init_io(&s->iomem, obj, &integratorcm_ops, s,
31
"integratorcm", 0x00800000);
32
--
33
2.7.4
34
35
diff view generated by jsdifflib