Re: [PATCH v11 01/15] ui & main loop: Redesign of system-specific main thread event handling

2024-11-29 Thread Akihiko Odaki
On 2024/11/29 4:43, Phil Dennis-Jordan wrote: On Thu, 28 Nov 2024 at 12:17, Akihiko Odaki > wrote: On 2024/11/28 0:02, Phil Dennis-Jordan wrote: > macOS's Cocoa event handling must be done on the initial (main) thread > of the process. Furthe

Re: [PATCH v11 01/15] ui & main loop: Redesign of system-specific main thread event handling

2024-11-29 Thread Phil Dennis-Jordan
On Fri, 29 Nov 2024 at 11:07, Akihiko Odaki wrote: > On 2024/11/29 4:43, Phil Dennis-Jordan wrote: > > > > > > On Thu, 28 Nov 2024 at 12:17, Akihiko Odaki > > wrote: > > > > On 2024/11/28 0:02, Phil Dennis-Jordan wrote: > > > macOS's Cocoa event handling

[PATCH v12 01/15] ui & main loop: Redesign of system-specific main thread event handling

2024-11-29 Thread Phil Dennis-Jordan
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

[PATCH v12 07/15] hw/misc/pvpanic: Add MMIO interface

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf In addition to the ISA and PCI variants of pvpanic, let's add an MMIO platform device that we can use in embedded arm environments. Signed-off-by: Alexander Graf Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Signed-off-by: Phil Dennis-Jordan Revie

[PATCH v12 11/15] hw/vmapple/bdif: Introduce vmapple backdoor interface

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf The VMApple machine exposes AUX and ROOT block devices (as well as USB OTG emulation) via virtio-pci as well as a special, simple backdoor platform device. This patch implements this backdoor platform device to the best of my understanding. I left out any USB OTG parts; they

[PATCH v12 00/15] macOS PV Graphics and new vmapple machine type

2024-11-29 Thread Phil Dennis-Jordan
This patch set introduces a new ARM and macOS HVF specific machine type called "vmapple", as well as a family of display devices based on the ParavirtualizedGraphics.framework in macOS. One of the display adapter variants, apple-gfx-mmio, is required for the new machine type, while apple-gfx-pci ca

[PATCH v12 12/15] hw/vmapple/cfg: Introduce vmapple cfg region

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf Instead of device tree or other more standardized means, VMApple passes platform configuration to the first stage boot loader in a binary encoded format that resides at a dedicated RAM region in physical address space. This patch models this configuration space as a qdev dev

[PATCH v12 03/15] hw/display/apple-gfx: Adds PCI implementation

2024-11-29 Thread Phil Dennis-Jordan
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 Reviewed-by: Ak

[PATCH v12 05/15] MAINTAINERS: Add myself as maintainer for apple-gfx, reviewer for HVF

2024-11-29 Thread Phil Dennis-Jordan
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. I anticipate that the resulting workload should be covered by the funding I'm r

[PATCH v12 15/15] hw/vmapple/vmapple: Add vmapple machine type

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf Apple defines a new "vmapple" machine type as part of its proprietary macOS Virtualization.Framework vmm. This machine type is similar to the virt one, but with subtle differences in base devices, a few special vmapple device additions and a vastly different boot chain. This

[PATCH v12 04/15] hw/display/apple-gfx: Adds configurable mode list

2024-11-29 Thread Phil Dennis-Jordan
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", "di

[PATCH v12 13/15] hw/vmapple/virtio-blk: Add support for apple virtio-blk

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf Apple has its own virtio-blk PCI device ID where it deviates from the official virtio-pci spec slightly: It puts a new "apple type" field at a static offset in config space and introduces a new barrier command. This patch first creates a mechanism for virtio-blk downstream c

[PATCH v12 08/15] hvf: arm: Ignore writes to CNTP_CTL_EL0

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf MacOS unconditionally disables interrupts of the physical timer on boot and then continues to use the virtual one. We don't really want to support a full physical timer emulation, so let's just ignore those writes. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-Jo

[PATCH v12 10/15] hw/vmapple/aes: Introduce aes engine

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf VMApple contains an "aes" engine device that it uses to encrypt and decrypt its nvram. It has trivial hard coded keys it uses for that purpose. Add device emulation for this device model. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko

[PATCH v12 09/15] gpex: Allow more than 4 legacy IRQs

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf 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.

[PATCH v12 14/15] hw/block/virtio-blk: Replaces request free function with g_free

2024-11-29 Thread Phil Dennis-Jordan
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 Reviewed-by: Akihiko Odaki --- v4: * Use recommended object type declaration pattern. * Correctly lo

[PATCH v12 02/15] hw/display/apple-gfx: Introduce ParavirtualizedGraphics.Framework support

2024-11-29 Thread Phil Dennis-Jordan
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 c

[PATCH v12 06/15] hw: Add vmapple subdir

2024-11-29 Thread Phil Dennis-Jordan
From: Alexander Graf We will introduce a number of devices that are specific to the vmapple target machine. To keep them all tidily together, let's put them into a single target directory. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko Odaki --- MAINTAIN

[PATCH v2 1/1] hw/nvme: Add OCP SMART / Health Information Extended Log Page

2024-11-29 Thread Stephen Bates
The Open Compute Project [1] includes a Datacenter NVMe SSD Specification [2]. The most recent version of this specification (as of November 2024) is 2.6.1. This specification layers on top of the NVM Express specifications [3] to provide additional functionality. A key part of of this is the 512 B

Re: [PATCH v12 04/15] hw/display/apple-gfx: Adds configurable mode list

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:24, Phil Dennis-Jordan wrote: 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 e

Re: [PATCH v12 01/15] ui & main loop: Redesign of system-specific main thread event handling

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:24, Phil Dennis-Jordan wrote: 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

Re: [PATCH v12 06/15] hw: Add vmapple subdir

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:24, Phil Dennis-Jordan wrote: From: Alexander Graf We will introduce a number of devices that are specific to the vmapple target machine. To keep them all tidily together, let's put them into a single target directory. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-J

Re: [PATCH v12 09/15] gpex: Allow more than 4 legacy IRQs

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:25, Phil Dennis-Jordan wrote: From: Alexander Graf 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 c

Re: [PATCH v12 02/15] hw/display/apple-gfx: Introduce ParavirtualizedGraphics.Framework support

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:24, Phil Dennis-Jordan wrote: 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 paravirtualiz

Re: [PATCH v12 13/15] hw/vmapple/virtio-blk: Add support for apple virtio-blk

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:25, Phil Dennis-Jordan wrote: From: Alexander Graf Apple has its own virtio-blk PCI device ID where it deviates from the official virtio-pci spec slightly: It puts a new "apple type" field at a static offset in config space and introduces a new barrier command. This patch first

Re: [PATCH v12 12/15] hw/vmapple/cfg: Introduce vmapple cfg region

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:25, Phil Dennis-Jordan wrote: From: Alexander Graf Instead of device tree or other more standardized means, VMApple passes platform configuration to the first stage boot loader in a binary encoded format that resides at a dedicated RAM region in physical address space. This pat

Re: [PATCH v12 14/15] hw/block/virtio-blk: Replaces request free function with g_free

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:25, Phil Dennis-Jordan wrote: 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 Reviewed-by: Akihiko Odaki Tested-by: Akihiko Odaki

Re: [PATCH v12 08/15] hvf: arm: Ignore writes to CNTP_CTL_EL0

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:24, Phil Dennis-Jordan wrote: From: Alexander Graf MacOS unconditionally disables interrupts of the physical timer on boot and then continues to use the virtual one. We don't really want to support a full physical timer emulation, so let's just ignore those writes. Signed-off-b

Re: [PATCH v12 10/15] hw/vmapple/aes: Introduce aes engine

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:25, Phil Dennis-Jordan wrote: From: Alexander Graf VMApple contains an "aes" engine device that it uses to encrypt and decrypt its nvram. It has trivial hard coded keys it uses for that purpose. Add device emulation for this device model. Signed-off-by: Alexander Graf Signed-

Re: [PATCH v12 07/15] hw/misc/pvpanic: Add MMIO interface

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:24, Phil Dennis-Jordan wrote: From: Alexander Graf In addition to the ISA and PCI variants of pvpanic, let's add an MMIO platform device that we can use in embedded arm environments. Signed-off-by: Alexander Graf Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu

Re: [PATCH v12 11/15] hw/vmapple/bdif: Introduce vmapple backdoor interface

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:25, Phil Dennis-Jordan wrote: From: Alexander Graf The VMApple machine exposes AUX and ROOT block devices (as well as USB OTG emulation) via virtio-pci as well as a special, simple backdoor platform device. This patch implements this backdoor platform device to the best of my u

Re: [PATCH v12 15/15] hw/vmapple/vmapple: Add vmapple machine type

2024-11-29 Thread Akihiko Odaki
On 2024/11/30 0:25, Phil Dennis-Jordan wrote: From: Alexander Graf Apple defines a new "vmapple" machine type as part of its proprietary macOS Virtualization.Framework vmm. This machine type is similar to the virt one, but with subtle differences in base devices, a few special vmapple device ad

Re: [PATCH v11 01/15] ui & main loop: Redesign of system-specific main thread event handling

2024-11-29 Thread Akihiko Odaki
On 2024/11/29 23:12, Phil Dennis-Jordan wrote: On Fri, 29 Nov 2024 at 11:07, Akihiko Odaki > wrote: On 2024/11/29 4:43, Phil Dennis-Jordan wrote: > > > On Thu, 28 Nov 2024 at 12:17, Akihiko Odaki mailto:akihiko.od...@daynix.com> > <