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 |