aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2022-01-10 14:43:03 +0000
committerPeter Maydell <peter.maydell@linaro.org>2022-01-10 14:43:03 +0000
commitde3f5223fa4cf8bfc5e3fe1fd495ddf468edcdf7 (patch)
tree7aad9a78e192ac7925732ef6de618bfd03ffe41c /hw
parentdf722e33d5da26ea8604500ca8f509245a0ea524 (diff)
parent31144eb6393b66b06a13e8a6ad0e730f9e82d4c6 (diff)
downloadqemu-de3f5223fa4cf8bfc5e3fe1fd495ddf468edcdf7.zip
qemu-de3f5223fa4cf8bfc5e3fe1fd495ddf468edcdf7.tar.gz
qemu-de3f5223fa4cf8bfc5e3fe1fd495ddf468edcdf7.tar.bz2
Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-7.0-pull-request' into staging
M68k pull request 20220109 Add virt compat machine type for 7.0 fix q800 -bios parameter fix VRAM refresh fix M68K_FEATURE_UNALIGNED_DATA feature # gpg: Signature made Sun 09 Jan 2022 11:41:19 GMT # gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C # gpg: issuer "laurent@vivier.eu" # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full] # gpg: aka "Laurent Vivier <laurent@vivier.eu>" [full] # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [full] # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier/tags/m68k-for-7.0-pull-request: target/m68k: don't word align SP in stack frame if M68K_FEATURE_UNALIGNED_DATA feature enabled macfb: fix VRAM dirty memory region logging q800: fix segfault with invalid MacROM hw: m68k: Add virt compat machine type for 7.0 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw')
-rw-r--r--hw/display/macfb.c2
-rw-r--r--hw/m68k/q800.c5
-rw-r--r--hw/m68k/virt.c9
3 files changed, 12 insertions, 4 deletions
diff --git a/hw/display/macfb.c b/hw/display/macfb.c
index 277d3e6..4bd7c3a 100644
--- a/hw/display/macfb.c
+++ b/hw/display/macfb.c
@@ -661,9 +661,9 @@ static bool macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp)
memory_region_init_ram(&s->mem_vram, OBJECT(dev), "macfb-vram",
MACFB_VRAM_SIZE, &error_abort);
+ memory_region_set_log(&s->mem_vram, true, DIRTY_MEMORY_VGA);
s->vram = memory_region_get_ram_ptr(&s->mem_vram);
s->vram_bit_mask = MACFB_VRAM_SIZE - 1;
- memory_region_set_coalescing(&s->mem_vram);
s->vbl_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, macfb_vbl_timer, s);
macfb_update_mode(s);
diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c
index e4c7c9b..55dfe50 100644
--- a/hw/m68k/q800.c
+++ b/hw/m68k/q800.c
@@ -672,12 +672,13 @@ static void q800_init(MachineState *machine)
/* Remove qtest_enabled() check once firmware files are in the tree */
if (!qtest_enabled()) {
- if (bios_size < 0 || bios_size > MACROM_SIZE) {
+ if (bios_size <= 0 || bios_size > MACROM_SIZE) {
error_report("could not load MacROM '%s'", bios_name);
exit(1);
}
- ptr = rom_ptr(MACROM_ADDR, MACROM_SIZE);
+ ptr = rom_ptr(MACROM_ADDR, bios_size);
+ assert(ptr != NULL);
stl_phys(cs->as, 0, ldl_p(ptr)); /* reset initial SP */
stl_phys(cs->as, 4,
MACROM_ADDR + ldl_p(ptr + 4)); /* reset initial PC */
diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
index 0efa4a4..78e926a 100644
--- a/hw/m68k/virt.c
+++ b/hw/m68k/virt.c
@@ -304,10 +304,17 @@ type_init(virt_machine_register_types)
} \
type_init(machvirt_machine_##major##_##minor##_init);
+static void virt_machine_7_0_options(MachineClass *mc)
+{
+}
+DEFINE_VIRT_MACHINE(7, 0, true)
+
static void virt_machine_6_2_options(MachineClass *mc)
{
+ virt_machine_7_0_options(mc);
+ compat_props_add(mc->compat_props, hw_compat_6_2, hw_compat_6_2_len);
}
-DEFINE_VIRT_MACHINE(6, 2, true)
+DEFINE_VIRT_MACHINE(6, 2, false)
static void virt_machine_6_1_options(MachineClass *mc)
{