Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: ff871d0462d0a7ebdbfadf8c8d6c3726af507f0a
https://github.com/qemu/qemu/commit/ff871d0462d0a7ebdbfadf8c8d6c3726af507f0a
Author: Alexander Graf <[email protected]>
Date: 2024-12-30 (Mon, 30 Dec 2024)
Changed paths:
M hw/arm/sbsa-ref.c
M hw/arm/virt.c
M hw/i386/microvm.c
M hw/loongarch/virt.c
M hw/mips/loongson3_virt.c
M hw/openrisc/virt.c
M hw/pci-host/gpex.c
M hw/riscv/virt.c
M hw/xen/xen-pvh-common.c
M hw/xtensa/virt.c
M include/hw/pci-host/gpex.h
Log Message:
-----------
hw/pci-host/gpex: Allow more than 4 legacy IRQs
Some boards such as vmapple don't do real legacy PCI IRQ swizzling.
Instead, they just keep allocating more board IRQ lines for each new
legacy IRQ. Let's support that mode by giving instantiators a new
"nr_irqs" property they can use to support more than 4 legacy IRQ lines.
In this mode, GPEX will export more IRQ lines, one for each device.
Signed-off-by: Alexander Graf <[email protected]>
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Tested-by: Akihiko Odaki <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: d8d17d2bf6181cdc9b8ef3db862006ddb6af12d4
https://github.com/qemu/qemu/commit/d8d17d2bf6181cdc9b8ef3db862006ddb6af12d4
Author: Michael Tokarev <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M block/vvfat.c
Log Message:
-----------
Revert "vvfat: fix ubsan issue in create_long_filename"
This reverts commit 0cb3ff7c22671aa1e1e227318799ccf6762c3bea.
The original code was right in that long name in LFN directory
entry uses other parts of the entry for the name too, not just
the original "name" field. So it is wrong to limit the offset
to be within the name field. Some other mechanism is needed
to fix the ubsan report and whole messy usage of bytes past the
given field.
Reported-by: Volker Rümelin <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
Commit: e6c33efed3ca8ffbf89f0e1dbeac1a0e32d0f8b7
https://github.com/qemu/qemu/commit/e6c33efed3ca8ffbf89f0e1dbeac1a0e32d0f8b7
Author: Gustavo Romero <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M docs/system/device-emulation.rst
A docs/system/devices/ivshmem-flat.rst
M hw/misc/Kconfig
A hw/misc/ivshmem-flat.c
M hw/misc/meson.build
M hw/misc/trace-events
A include/hw/misc/ivshmem-flat.h
Log Message:
-----------
hw/misc/ivshmem-flat: Add ivshmem-flat device
Add a new device, ivshmem-flat, which is similar to the ivshmem PCI but
does not require a PCI bus. It's meant to be used on machines like those
with Cortex-M MCUs, which usually lack a PCI/PCIe bus, e.g. lm3s6965evb
and mps2-an385.
The device currently only supports the sysbus bus.
The new device, just like the ivshmem PCI device, supports both peer
notification via hardware interrupts and shared memory.
The device shared memory size can be set using the 'shmem-size' option
and it defaults to 4 MiB, which is the default size of shmem allocated
by the ivshmem server.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1134
Signed-off-by: Gustavo Romero <[email protected]>
[PMD: Rebased updating Property and using DEFINE_TYPES macro]
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Commit: 4daf88c16550a07aa5f228aa1b2660ea1fa1ddc1
https://github.com/qemu/qemu/commit/4daf88c16550a07aa5f228aa1b2660ea1fa1ddc1
Author: Gustavo Romero <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
A hw/misc/ivshmem-pci.c
R hw/misc/ivshmem.c
M hw/misc/meson.build
Log Message:
-----------
hw/misc/ivshmem: Rename ivshmem to ivshmem-pci
Because now there is also an MMIO ivshmem device (ivshmem-flat.c), and
ivshmem.c is a PCI specific implementation, rename it to ivshmem-pci.c.
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Gustavo Romero <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 9d59b65d82415a39d862e996770c8561ef8f30b5
https://github.com/qemu/qemu/commit/9d59b65d82415a39d862e996770c8561ef8f30b5
Author: Guenter Roeck <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/usb/hcd-uhci.c
Log Message:
-----------
hw/usb/uhci: checkpatch cleanup
Fix reported checkpatch issues to prepare for next patches
in the series.
No functional change.
Signed-off-by: Guenter Roeck <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: d826e47404cdf4f462a3f27b2f47455f21e7764e
https://github.com/qemu/qemu/commit/d826e47404cdf4f462a3f27b2f47455f21e7764e
Author: Guenter Roeck <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/usb/hcd-uhci.c
M include/hw/usb/uhci-regs.h
Log Message:
-----------
hw/usb/uhci: Introduce and use register defines
Introduce defines for UHCI registers to simplify adding register access
in subsequent patches of the series.
No functional change.
Signed-off-by: Guenter Roeck <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 8f27e70e3bcffe3e3d7236f62d50156555043061
https://github.com/qemu/qemu/commit/8f27e70e3bcffe3e3d7236f62d50156555043061
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/microblaze/boot.c
M hw/microblaze/boot.h
M hw/microblaze/petalogix_ml605_mmu.c
M hw/microblaze/petalogix_s3adsp1800_mmu.c
M hw/microblaze/xlnx-zynqmp-pmu.c
Log Message:
-----------
hw/microblaze: Propagate CPU endianness to microblaze_load_kernel()
Pass vCPU endianness as argument so we can load kernels
with different endianness (different from the qemu-system-binary
builtin one).
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Anton Johansson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Commit: a115ab5ba30ae78efdf346df594940042b69aa27
https://github.com/qemu/qemu/commit/a115ab5ba30ae78efdf346df594940042b69aa27
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/i386/kvm/apic.c
M hw/i386/pc.c
M hw/i386/vapic.c
M hw/i386/xen/xen_apic.c
M hw/i386/xen/xen_platform.c
Log Message:
-----------
hw/i386: Mark devices as little-endian
These devices are only used by the X86 targets, which are only
built as little-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_LITTLE_ENDIAN (besides, the
DEVICE_BIG_ENDIAN case isn't tested). Simplify directly using
DEVICE_LITTLE_ENDIAN.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Message-Id: <[email protected]>
Commit: 625a975f67314a91084e59e2320c910b4129cbaf
https://github.com/qemu/qemu/commit/625a975f67314a91084e59e2320c910b4129cbaf
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/tricore/tricore_testdevice.c
Log Message:
-----------
hw/tricore: Mark devices as little-endian
These devices are only used by the TriCore target, which is
only built as little-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_LITTLE_ENDIAN (besides, the
DEVICE_BIG_ENDIAN case isn't tested). Simplify directly using
DEVICE_LITTLE_ENDIAN.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Message-Id: <[email protected]>
Commit: e72eee9684b5eca48815e762ad097101c487514f
https://github.com/qemu/qemu/commit/e72eee9684b5eca48815e762ad097101c487514f
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/openrisc/openrisc_sim.c
M hw/openrisc/virt.c
Log Message:
-----------
hw/openrisc: Mark devices as big-endian
The openrisc little-endian control is in a control register:
SR[LEE] (which we do not implement at present).
These devices are only used by the OpenRISC target, which is
only built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_BIG_ENDIAN (besides, the
DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
using DEVICE_BIG_ENDIAN.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Message-Id: <[email protected]>
Commit: eba75400f37d4b80835b371d834c9d94a52063a6
https://github.com/qemu/qemu/commit/eba75400f37d4b80835b371d834c9d94a52063a6
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/sparc/sun4m_iommu.c
M hw/sparc64/sun4u.c
Log Message:
-----------
hw/sparc: Mark devices as big-endian
These devices are only used by the SPARC targets, which are
only built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_BIG_ENDIAN (besides, the
DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
using DEVICE_BIG_ENDIAN.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Mark Cave-Ayland <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Commit: 2f44fddd191d002cbd9e63c02e1048a8d076b6fa
https://github.com/qemu/qemu/commit/2f44fddd191d002cbd9e63c02e1048a8d076b6fa
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/net/trace-events
M hw/net/xilinx_ethlite.c
Log Message:
-----------
hw/net/xilinx_ethlite: Convert some debug logs to trace events
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Message-Id: <[email protected]>
Commit: 9dd886c04d3ce759fa1bed3bd537ba8f6782285d
https://github.com/qemu/qemu/commit/9dd886c04d3ce759fa1bed3bd537ba8f6782285d
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/net/xilinx_ethlite.c
Log Message:
-----------
hw/net/xilinx_ethlite: Remove unuseful debug logs
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Message-Id: <[email protected]>
Commit: 0fb867ed63dc14086e74c97865530bc69866b060
https://github.com/qemu/qemu/commit/0fb867ed63dc14086e74c97865530bc69866b060
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/net/xilinx_ethlite.c
Log Message:
-----------
hw/net/xilinx_ethlite: Update QOM style
Use XlnxXpsEthLite typedef, OBJECT_DECLARE_SIMPLE_TYPE macro;
convert type_init() to DEFINE_TYPES().
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Message-Id: <[email protected]>
Commit: 7eb77fa4cd88bd70f68a603aa829207bf403e987
https://github.com/qemu/qemu/commit/7eb77fa4cd88bd70f68a603aa829207bf403e987
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/net/xilinx_ethlite.c
Log Message:
-----------
hw/net/xilinx_ethlite: Correct maximum RX buffer size
The current max RX bufsize is set to 0x800. This is
invalid, since it contains the MMIO registers region.
Add the correct definition (valid for both TX & RX,
see datasheet p. 20, Table 11 "XPS Ethernet Lite MAC
Memory Map") and use it.
Reviewed-by: Edgar E. Iglesias <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-Id: <[email protected]>
Commit: 0798e09f3badf25a5b490ab0146b0d41ae78a798
https://github.com/qemu/qemu/commit/0798e09f3badf25a5b490ab0146b0d41ae78a798
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/net/xilinx_ethlite.c
Log Message:
-----------
hw/net/xilinx_ethlite: Rename rxbuf -> port_index
'rxbuf' is the index of the dual port RAM used.
Rename it as 'port_index'.
Reviewed-by: Edgar E. Iglesias <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-Id: <[email protected]>
Commit: 5a7b6029c1e26c3bb171050938757e048398c576
https://github.com/qemu/qemu/commit/5a7b6029c1e26c3bb171050938757e048398c576
Author: Shameer Kolothum <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/nvram/fw_cfg.c
Log Message:
-----------
fw_cfg: Don't set callback_opaque NULL in fw_cfg_modify_bytes_read()
On arm/virt platform, Chen Xiang reported a Guest crash while
attempting the below steps,
1. Launch the Guest with nvdimm=on
2. Hot-add a NVDIMM dev
3. Reboot
4. Guest boots fine.
5. Reboot again.
6. Guest boot fails.
QEMU_EFI reports the below error:
ProcessCmdAddPointer: invalid pointer value in "etc/acpi/tables"
OnRootBridgesConnected: InstallAcpiTables: Protocol Error
Debugging shows that on first reboot(after hot adding NVDIMM),
Qemu updates the etc/table-loader len,
qemu_ram_resize()
fw_cfg_modify_file()
fw_cfg_modify_bytes_read()
And in fw_cfg_modify_bytes_read() we set the "callback_opaque" for
the key entry to NULL. Because of this, on the second reboot,
virt_acpi_build_update() is called with a NULL "build_state" and
returns without updating the ACPI tables. This seems to be
upsetting the firmware.
To fix this, don't change the callback_opaque in fw_cfg_modify_bytes_read().
Fixes: bdbb5b1706d165 ("fw_cfg: add fw_cfg_machine_reset function")
Reported-by: chenxiang <[email protected]>
Acked-by: Igor Mammedov <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Signed-off-by: Shameer Kolothum <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 3154922c7fb8a62ebdcf7fe65e11cd4115207150
https://github.com/qemu/qemu/commit/3154922c7fb8a62ebdcf7fe65e11cd4115207150
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/misc/vmcoreinfo.c
Log Message:
-----------
hw/misc/vmcoreinfo: Declare QOM type using DEFINE_TYPES macro
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Message-Id: <[email protected]>
Commit: 924e1be17571968f81ef0bde87729678c201df21
https://github.com/qemu/qemu/commit/924e1be17571968f81ef0bde87729678c201df21
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/misc/vmcoreinfo.c
Log Message:
-----------
hw/misc/vmcoreinfo: Rename opaque pointer as 'opaque'
Both QEMUResetHandler and FWCfgWriteCallback take an opaque
pointer argument, no need to cast.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Message-Id: <[email protected]>
Commit: 8c6619f3e692c5173c9f4919dbf99fb14dc0b7e9
https://github.com/qemu/qemu/commit/8c6619f3e692c5173c9f4919dbf99fb14dc0b7e9
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/i386/amd_iommu.c
Log Message:
-----------
hw/i386/amd_iommu: Simplify non-KVM checks on XTSup feature
Generic code wanting to access KVM specific methods should
do so being protected by the 'kvm_enabled()' helper.
Doing so avoid link failures when optimization is disabled
(using --enable-debug), see for example commits c04cfb4596a
("hw/i386: fix short-circuit logic with non-optimizing builds")
and 0266aef8cd6 ("amd_iommu: Fix kvm_enable_x2apic link error
with clang in non-KVM builds").
XTSup feature depends on KVM, so protect the whole block
checking the XTSup feature with a check on whether KVM is
enabled.
Since x86_cpus_init() already checks APIC ID > 255 imply
kernel support for irqchip and X2APIC, remove the confuse
and unlikely reachable "AMD IOMMU xtsup=on requires support
on the KVM side" message.
Fix a type in "configuration" in error message.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Vasant Hegde <[email protected]>
Message-Id: <[email protected]>
Commit: 12ed6aca7ca328a12e235f4daa9824873da60315
https://github.com/qemu/qemu/commit/12ed6aca7ca328a12e235f4daa9824873da60315
Author: Phil Dennis-Jordan <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/block/virtio-blk.c
Log Message:
-----------
hw/block/virtio-blk: Replaces request free function with g_free
The virtio_blk_free_request() function has been a 1-liner forwarding
to g_free() for a while now. We may as well call g_free on the request
pointer directly.
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Tested-by: Akihiko Odaki <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 92270bdff02bc6ba77a091f066576f96d5a96f7b
https://github.com/qemu/qemu/commit/92270bdff02bc6ba77a091f066576f96d5a96f7b
Author: Phil Dennis-Jordan <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/usb/hcd-xhci-nec.c
M hw/usb/hcd-xhci-pci.c
Log Message:
-----------
hw/usb/hcd-xhci-pci: Move msi/msix properties from NEC to superclass
The NEC XHCI controller exposes the underlying PCI device's msi and
msix properties, but the superclass and thus the qemu-xhci device do
not. There does not seem to be any obvious reason for this limitation.
This change moves these properties to the superclass so they are
exposed by both PCI XHCI device variants.
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 916bf7f93793df8690f48111207961a85f5a25b1
https://github.com/qemu/qemu/commit/916bf7f93793df8690f48111207961a85f5a25b1
Author: Phil Dennis-Jordan <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/usb/hcd-xhci.c
Log Message:
-----------
hw/usb/hcd-xhci: Unimplemented/guest error logging for port MMIO
The XHCI device code uses tracing rather than logging on various code
paths that are so far unimplemented. In some cases, these code paths
actually indicate faulty guest software. This patch switches instances
in the read and write handlers for the port MMIO region to use
qemu_log_mask() with LOG_UNIMP or LOG_GUEST_ERROR, as appropriate in
each case.
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: f5ab12caba4f1656479c1feb5248beac1c833243
https://github.com/qemu/qemu/commit/f5ab12caba4f1656479c1feb5248beac1c833243
Author: Phil Dennis-Jordan <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M include/qemu-main.h
M system/main.c
M tests/qtest/fuzz/fuzz.c
M ui/cocoa.m
M ui/gtk.c
M ui/sdl2.c
Log Message:
-----------
ui & main loop: Redesign of system-specific main thread event handling
macOS's Cocoa event handling must be done on the initial (main) thread
of the process. Furthermore, if library or application code uses
libdispatch, the main dispatch queue must be handling events on the main
thread as well.
So far, this has affected Qemu in both the Cocoa and SDL UIs, although
in different ways: the Cocoa UI replaces the default qemu_main function
with one that spins Qemu's internal main event loop off onto a
background thread. SDL (which uses Cocoa internally) on the other hand
uses a polling approach within Qemu's main event loop. Events are
polled during the SDL UI's dpy_refresh callback, which happens to run
on the main thread by default.
As UIs are mutually exclusive, this works OK as long as nothing else
needs platform-native event handling. In the next patch, a new device is
introduced based on the ParavirtualizedGraphics.framework in macOS.
This uses libdispatch internally, and only works when events are being
handled on the main runloop. With the current system, it works when
using either the Cocoa or the SDL UI. However, it does not when running
headless. Moreover, any attempt to install a similar scheme to the
Cocoa UI's main thread replacement fails when combined with the SDL
UI.
This change tidies up main thread management to be more flexible.
* The qemu_main global function pointer is a custom function for the
main thread, and it may now be NULL. When it is, the main thread
runs the main Qemu loop. This represents the traditional setup.
* When non-null, spawning the main Qemu event loop on a separate
thread is now done centrally rather than inside the Cocoa UI code.
* For most platforms, qemu_main is indeed NULL by default, but on
Darwin, it defaults to a function that runs the CFRunLoop.
* The Cocoa UI sets qemu_main to a function which runs the
NSApplication event handling runloop, as is usual for a Cocoa app.
* The SDL UI overrides the qemu_main function to NULL, thus
specifying that Qemu's main loop must run on the main
thread.
* The GTK UI also overrides the qemu_main function to NULL.
* For other UIs, or in the absence of UIs, the platform's default
behaviour is followed.
This means that on macOS, the platform's runloop events are always
handled, regardless of chosen UI. The new PV graphics device will
thus work in all configurations. There is no functional change on other
operating systems.
Implementing this via a global function pointer variable is a bit
ugly, but it's probably worth investigating the existing UI thread rule
violations in the SDL (e.g. #2537) and GTK+ back-ends. Fixing those
issues might precipitate requirements similar but not identical to those
of the Cocoa UI; hopefully we'll see some kind of pattern emerge, which
can then be used as a basis for an overhaul. (In fact, it may turn
out to be simplest to split the UI/native platform event thread from the
QEMU main event loop on all platforms, with any UI or even none at all.)
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Tested-by: Akihiko Odaki <[email protected]>
Message-ID: <[email protected]>
[PMD: Declare 'qemu_main' symbol in tests/qtest/fuzz/fuzz.c,
add missing g_assert_not_reached() call in main()]
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 2352159c97a1fd245e998daafa08fcaaf57d4fa8
https://github.com/qemu/qemu/commit/2352159c97a1fd245e998daafa08fcaaf57d4fa8
Author: Phil Dennis-Jordan <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/display/Kconfig
A hw/display/apple-gfx-mmio.m
A hw/display/apple-gfx.h
A hw/display/apple-gfx.m
M hw/display/meson.build
M hw/display/trace-events
M meson.build
Log Message:
-----------
hw/display/apple-gfx: Introduce ParavirtualizedGraphics.Framework support
MacOS provides a framework (library) that allows any vmm to implement a
paravirtualized 3d graphics passthrough to the host metal stack called
ParavirtualizedGraphics.Framework (PVG). The library abstracts away
almost every aspect of the paravirtualized device model and only provides
and receives callbacks on MMIO access as well as to share memory address
space between the VM and PVG.
This patch implements a QEMU device that drives PVG for the VMApple
variant of it.
Signed-off-by: Alexander Graf <[email protected]>
Co-authored-by: Alexander Graf <[email protected]>
Subsequent changes:
* Cherry-pick/rebase conflict fixes, API use updates.
* Moved from hw/vmapple/ (useful outside that machine type)
* Overhaul of threading model, many thread safety improvements.
* Asynchronous rendering.
* Memory and object lifetime fixes.
* Refactoring to split generic and (vmapple) MMIO variant specific
code.
Implementation wise, most of the complexity lies in the differing threading
models of ParavirtualizedGraphics.framework, which uses libdispatch and
internal locks, versus QEMU, which heavily uses the BQL, especially during
memory-mapped device I/O. Great care has therefore been taken to prevent
deadlocks by never calling into PVG methods while holding the BQL, and
similarly never acquiring the BQL in a callback from PVG. Different strategies
have been used (libdispatch, blocking and non-blocking BHs, RCU, etc.)
depending on the specific requirements at each framework entry and exit point.
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Tested-by: Akihiko Odaki <[email protected]>
Message-ID: <[email protected]>
[PMD: Re-ordered imported headers, style fixups]
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: b21f17cce561316f1eb1917a4ca660e65c75c420
https://github.com/qemu/qemu/commit/b21f17cce561316f1eb1917a4ca660e65c75c420
Author: Phil Dennis-Jordan <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/display/Kconfig
A hw/display/apple-gfx-pci.m
M hw/display/apple-gfx.h
M hw/display/meson.build
Log Message:
-----------
hw/display/apple-gfx: Adds PCI implementation
This change wires up the PCI variant of the paravirtualised
graphics device, mainly useful for x86-64 macOS guests, implemented
by macOS's ParavirtualizedGraphics.framework. It builds on code
shared with the vmapple/mmio variant of the PVG device.
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: bb43a2342ddf57e6cd4f24161ee4e641cfbcceca
https://github.com/qemu/qemu/commit/bb43a2342ddf57e6cd4f24161ee4e641cfbcceca
Author: Phil Dennis-Jordan <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/display/apple-gfx-mmio.m
M hw/display/apple-gfx-pci.m
M hw/display/apple-gfx.h
M hw/display/apple-gfx.m
M hw/display/trace-events
Log Message:
-----------
hw/display/apple-gfx: Adds configurable mode list
This change adds a property 'display_modes' on the graphics device
which permits specifying a list of display modes. (screen resolution
and refresh rate)
The property is an array of a custom type to make the syntax slightly
less awkward to use, for example:
-device '{"driver":"apple-gfx-pci", "display-modes":["1920x1080@60",
"3840x2160@60"]}'
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Tested-by: Akihiko Odaki <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 67e908c936b5f568b2ee913c1558e0235cd96293
https://github.com/qemu/qemu/commit/67e908c936b5f568b2ee913c1558e0235cd96293
Author: Phil Dennis-Jordan <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M MAINTAINERS
Log Message:
-----------
MAINTAINERS: Add myself as maintainer for apple-gfx, reviewer for HVF
I'm happy to take responsibility for the macOS PV graphics code. As
HVF patches don't seem to get much attention at the moment, I'm also
adding myself as designated reviewer for HVF and x86 HVF to try and
improve that.
Signed-off-by: Phil Dennis-Jordan <[email protected]>
Reviewed-by: Roman Bolshakov <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 79b6a98587c65c8b8fdde8eb778396f1fc98a852
https://github.com/qemu/qemu/commit/79b6a98587c65c8b8fdde8eb778396f1fc98a852
Author: William Hooper <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M net/vmnet-common.m
Log Message:
-----------
net/vmnet: Pad short Ethernet frames
At least on macOS 12.7.2, vmnet doesn't pad Ethernet frames, such as the
host's ARP replies, to the minimum size (60 bytes before the frame check
sequence) defined in IEEE Std 802.3-2022, so guests' Ethernet device
drivers may drop them with "frame too short" errors.
This patch calls eth_pad_short_frame() to add padding, as in net/tap.c
and net/slirp.c. Thanks to Bin Meng, Philippe Mathieu-Daudé, and Phil
Dennis-Jordan for reviewing earlier versions.
Signed-off-by: William Hooper <[email protected]>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2058
Reviewed-by: Phil Dennis-Jordan <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: c6f59e3b68abefc1f6942d4b4e3063d96d903b27
https://github.com/qemu/qemu/commit/c6f59e3b68abefc1f6942d4b4e3063d96d903b27
Author: Hyman Huang <[email protected]>
Date: 2024-12-31 (Tue, 31 Dec 2024)
Changed paths:
M hw/display/qxl.c
Log Message:
-----------
hw/display/qxl: Do not use C99 // comments
Do not use C99 // comments to fix the checkpatch.pl error
Signed-off-by: Hyman Huang <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID:
<7d287eaf00e0b52b600431efd350b15a0b5b3544.1734633496.git.yong.hu...@smartx.com>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Commit: 17cc8772ae89a4186b6538fa1ed4ef3f46359ecd
https://github.com/qemu/qemu/commit/17cc8772ae89a4186b6538fa1ed4ef3f46359ecd
Author: Stefan Hajnoczi <[email protected]>
Date: 2025-01-01 (Wed, 01 Jan 2025)
Changed paths:
M block/vvfat.c
Log Message:
-----------
Merge tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu into staging
trivial patches for 2024-12-31
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEZKoqtTHVaQM2a/75gqpKJDselHgFAmd0C88ACgkQgqpKJDse
# lHjRoxAAgfdMuMScLk4K4OprUfTEyPIT2Fmp2sAcMqpciQO0JDP6RIyKbt+GVyK5
# aqYWwRxjBhwlmbHQH8TaFkdbv5SSZIHwU5087QP09YDVzlmSOfF+/SySUC7H/jKL
# 4zgumF2lc0+P5OftAbnrU8UlrapTlkxcI8sEBSl5Mz7NOv7cCoVzGu0KnlMQyh8q
# nrdyk7QJl/HdF4mMTlTtnNCcr5oz7wAKadoFS40pIHLU9jt49s2OyQLL2OTEjF30
# yAM5EULfoWYbUk6GBH55ZzBSIL1g4U53khDzi3/i8b8HMUU4c2VHueipZB51k1Xx
# KcK2CkRMtK1/UCQ5J7RL6X6GwJxXfQ2wYprEpcixxah9Pl99dTqUh3Uko58jglGt
# uDoIoiUyIJBUOedlZdeapH5BbesexwrM6x6bIVcluVy3l/IuDZ1UfIASxRgdqkEN
# kBGJhK01S3hZT0chxVIOXCB6NbOj0IF7D/Wh3lB/nuP9QwizaiK3eT9ThJYKERSC
# x69EKlsvwcrb+8HL8H3hfQ9CbuNru9mrnifFLntSaQdMXg5P0/mUb+sEs/cgtB+j
# 8tVYYEVOa4JKK2O+SVxt/o+JMZcFxOMAwEwRnGjokvY3uhWJdgSieUC5ZbKQyxF6
# JqK0os12p2LUbnXWPm9cbA4s8bEnu7cjeNwGEPhwzJnQIre1oUw=
# =eAHD
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 31 Dec 2024 10:20:47 EST
# gpg: using RSA key 64AA2AB531D56903366BFEF982AA4A243B1E9478
# gpg: Good signature from "Michael Tokarev <[email protected]>" [unknown]
# gpg: aka "Michael Tokarev <[email protected]>" [unknown]
# gpg: aka "Michael Tokarev <[email protected]>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 9D8B E14E 3F2A 9DD7 9199 28F1 61AD 3D98 ECDF 2C8E
# Subkey fingerprint: 64AA 2AB5 31D5 6903 366B FEF9 82AA 4A24 3B1E 9478
* tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu:
Revert "vvfat: fix ubsan issue in create_long_filename"
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 8b70d7f2071e2db51b1910502bfb7f84ebf926be
https://github.com/qemu/qemu/commit/8b70d7f2071e2db51b1910502bfb7f84ebf926be
Author: Stefan Hajnoczi <[email protected]>
Date: 2025-01-01 (Wed, 01 Jan 2025)
Changed paths:
M MAINTAINERS
M docs/system/device-emulation.rst
A docs/system/devices/ivshmem-flat.rst
M hw/arm/sbsa-ref.c
M hw/arm/virt.c
M hw/block/virtio-blk.c
M hw/display/Kconfig
A hw/display/apple-gfx-mmio.m
A hw/display/apple-gfx-pci.m
A hw/display/apple-gfx.h
A hw/display/apple-gfx.m
M hw/display/meson.build
M hw/display/qxl.c
M hw/display/trace-events
M hw/i386/amd_iommu.c
M hw/i386/kvm/apic.c
M hw/i386/microvm.c
M hw/i386/pc.c
M hw/i386/vapic.c
M hw/i386/xen/xen_apic.c
M hw/i386/xen/xen_platform.c
M hw/loongarch/virt.c
M hw/microblaze/boot.c
M hw/microblaze/boot.h
M hw/microblaze/petalogix_ml605_mmu.c
M hw/microblaze/petalogix_s3adsp1800_mmu.c
M hw/microblaze/xlnx-zynqmp-pmu.c
M hw/mips/loongson3_virt.c
M hw/misc/Kconfig
A hw/misc/ivshmem-flat.c
A hw/misc/ivshmem-pci.c
R hw/misc/ivshmem.c
M hw/misc/meson.build
M hw/misc/trace-events
M hw/misc/vmcoreinfo.c
M hw/net/trace-events
M hw/net/xilinx_ethlite.c
M hw/nvram/fw_cfg.c
M hw/openrisc/openrisc_sim.c
M hw/openrisc/virt.c
M hw/pci-host/gpex.c
M hw/riscv/virt.c
M hw/sparc/sun4m_iommu.c
M hw/sparc64/sun4u.c
M hw/tricore/tricore_testdevice.c
M hw/usb/hcd-uhci.c
M hw/usb/hcd-xhci-nec.c
M hw/usb/hcd-xhci-pci.c
M hw/usb/hcd-xhci.c
M hw/xen/xen-pvh-common.c
M hw/xtensa/virt.c
A include/hw/misc/ivshmem-flat.h
M include/hw/pci-host/gpex.h
M include/hw/usb/uhci-regs.h
M include/qemu-main.h
M meson.build
M net/vmnet-common.m
M system/main.c
M tests/qtest/fuzz/fuzz.c
M ui/cocoa.m
M ui/gtk.c
M ui/sdl2.c
Log Message:
-----------
Merge tag 'hw-misc-20241231' of https://github.com/philmd/qemu into staging
Misc HW patches queue
- Allow more than 4 legacy IRQs on Generic PCI Express Bridge (Alexander)
- Add MMIO-based Inter-VM shared memory device 'ivshmem-flat' (Gustavo)
- Use UHCI register definitions (Guenter)
- Propagate CPU endianness to microblaze_load_kernel (Philippe)
- Mark x86/TriCore devices as little-endian, OpenRISC/SPARC as big (Philippe)
- Don't set callback_opaque NULL in fw_cfg_modify_bytes_read (Shameer)
- Simplify non-KVM checks on AMD IOMMU XTSup feature (Philippe)
- Trivial cleanups on xilinx_ethlite, vmcoreinfo, qxl (Philippe, Hyman)
- Move USB-HCD-XHCI msi/msix properties from NEC to superclass (Phil)
- Redesign of main thread event handling due to macOS Cocoa (Phil)
- Introduce ParavirtualizedGraphics.Framework support 'apple-gfx' (Phil)
- Pad short Ethernet frames on macOS vmnet (William)
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmd0Ul0ACgkQ4+MsLN6t
# wN7sCA/9HFWahKYW+6Y+gHfLPvJzkIqC5mwfQAUY7GsrNVFdIpUjK9ln9xUEqCQz
# DkVxoZQcP++d8cnnl17wXHsRcavyDDadGU5/161eNC7fbKbLRAslObz/dtExxDn2
# sctx9HMcbLl1UMFPqi/Pbt8NEZr0iOLzDDl+nRuOK8QRFnd2zGm1lF1oHeyja3t1
# flnQKI9YD0U/+0RVNR2FOpUam2Fu1EuQEPp0jMwkmcoyoNLwCXrP9XyRybVZnzgM
# cFm9fYbVlwjsVia+Bsk3CmHX5Gna/1bS3CL8Y9gUScYYwYU5VDAA8Fvv4gPsa4+u
# WSyttL2qCFdgF75S5FoAvEQzYFBcw25eFf8jJhbEn4I6MuQew8lww5OZEyvE8rag
# 2hg3nc4W0x76mLunqrNm+h+Z3vqd/amFcd9YNZjpzxQK//TwvOAQTWi31VtWa4OF
# F1qdv78tQKkRY7noq8WkcL/io6D7iE/BMx/XIOF8uPf8BLIBMvPDnDABjaB/yLkS
# Q/e+/monxkhknDY6K9xkVei7rn6c0LkuLzKxVzEzVKPVzM8N0JAl/1KaNVO8fxjJ
# kLvfGP/RdYOZqG4dNi8W3PhV/+UZz1FS3L1MpI4NXQ59br57BbVQP9ARGO6WpPWn
# O9zIJOAqdzcWU0aULIsvQA3nC1iJnFHEovq0bl8qBbY51k26Lg0=
# =AL3L
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 31 Dec 2024 15:21:49 EST
# gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
# gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <[email protected]>"
[full]
# Primary key fingerprint: FAAB E75E 1291 7221 DCFD 6BB2 E3E3 2C2C DEAD C0DE
* tag 'hw-misc-20241231' of https://github.com/philmd/qemu: (29 commits)
hw/display/qxl: Do not use C99 // comments
net/vmnet: Pad short Ethernet frames
MAINTAINERS: Add myself as maintainer for apple-gfx, reviewer for HVF
hw/display/apple-gfx: Adds configurable mode list
hw/display/apple-gfx: Adds PCI implementation
hw/display/apple-gfx: Introduce ParavirtualizedGraphics.Framework support
ui & main loop: Redesign of system-specific main thread event handling
hw/usb/hcd-xhci: Unimplemented/guest error logging for port MMIO
hw/usb/hcd-xhci-pci: Move msi/msix properties from NEC to superclass
hw/block/virtio-blk: Replaces request free function with g_free
hw/i386/amd_iommu: Simplify non-KVM checks on XTSup feature
hw/misc/vmcoreinfo: Rename opaque pointer as 'opaque'
hw/misc/vmcoreinfo: Declare QOM type using DEFINE_TYPES macro
fw_cfg: Don't set callback_opaque NULL in fw_cfg_modify_bytes_read()
hw/net/xilinx_ethlite: Rename rxbuf -> port_index
hw/net/xilinx_ethlite: Correct maximum RX buffer size
hw/net/xilinx_ethlite: Update QOM style
hw/net/xilinx_ethlite: Remove unuseful debug logs
hw/net/xilinx_ethlite: Convert some debug logs to trace events
hw/sparc: Mark devices as big-endian
...
Signed-off-by: Stefan Hajnoczi <[email protected]>
Compare: https://github.com/qemu/qemu/compare/7c89e226f878...8b70d7f2071e
To unsubscribe from these emails, change your notification settings at
https://github.com/qemu/qemu/settings/notifications