|
From: | Alexander Graf |
Subject: | Re: [PATCH 12/12] hw/vmapple/vmapple: Add vmapple machine type |
Date: | Wed, 30 Aug 2023 16:58:28 +0200 |
User-agent: | Mozilla Thunderbird |
On 20.06.23 19:35, Bernhard Beschow wrote:
Am 14. Juni 2023 22:57:34 UTC schrieb Alexander Graf <graf@amazon.com>: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 reimplements this machine type in QEMU. To use it, you have to have a readily installed version of macOS for VMApple, run on macOS with -accel hvf, pass the Virtualization.Framework boot rom (AVPBooter) in via -bios, pass the aux and root volume as pflash and pass aux and root volume as virtio drives. In addition, you also need to find the machine UUID and pass that as -M vmapple,uuid= parameter: $ qemu-system-aarch64 -accel hvf -M vmapple,uuid=0x1234 -m 4G \ -bios /System/Library/Frameworks/Virtualization.framework/Versions/A/Resources/AVPBooter.vmapple2.bin -drive file=aux,if=pflash,format=raw \ -drive file=root,if=pflash,format=raw \ -drive file=aux,if=none,id=aux,format=raw \ -device virtio-blk-pci,drive=aux,x-apple-type=2 \ -drive file=root,if=none,id=root,format=raw \ -device virtio-blk-pci,drive=root,x-apple-type=1 With all these in place, you should be able to see macOS booting successfully.This documentation seems valuable for the QEMU manual. But AFAICS there is no documentation like this added to the QEMU manual in this series. This means that it'll get "lost". How about adding it, possibly in this patch?
Thanks, I love the idea :). Let me do that for v2!
Note that I'm not able to test this series. I'm just seeing the valuable-information-in-the-commit-message-which-will-get-lost pattern.Signed-off-by: Alexander Graf <graf@amazon.com> --- hw/vmapple/Kconfig | 19 ++ hw/vmapple/meson.build | 1 + hw/vmapple/vmapple.c | 661 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 681 insertions(+) create mode 100644 hw/vmapple/vmapple.c diff --git a/hw/vmapple/Kconfig b/hw/vmapple/Kconfig index ba37fc5b81..7a2375dc95 100644 --- a/hw/vmapple/Kconfig +++ b/hw/vmapple/Kconfig @@ -9,3 +9,22 @@ config VMAPPLE_CFG config VMAPPLE_PVG bool + +config VMAPPLE + bool + depends on ARM && HVF + default y if ARM && HVF + imply PCI_DEVICES + select ARM_GIC + select PLATFORM_BUS + select PCI_EXPRESS + select PCI_EXPRESS_GENERIC_BRIDGE + select PL011 # UART + select PL031 # RTC + select PL061 # GPIO + select GPIO_PWR + select PVPANIC_MMIO + select VMAPPLE_AES + select VMAPPLE_BDIF + select VMAPPLE_CFG + select VMAPPLE_PVG diff --git a/hw/vmapple/meson.build b/hw/vmapple/meson.build index 31fec87156..d732873d35 100644 --- a/hw/vmapple/meson.build +++ b/hw/vmapple/meson.build @@ -2,3 +2,4 @@ softmmu_ss.add(when: 'CONFIG_VMAPPLE_AES', if_true: files('aes.c')) softmmu_ss.add(when: 'CONFIG_VMAPPLE_BDIF', if_true: files('bdif.c')) softmmu_ss.add(when: 'CONFIG_VMAPPLE_CFG', if_true: files('cfg.c')) softmmu_ss.add(when: 'CONFIG_VMAPPLE_PVG', if_true: [files('apple-gfx.m'), pvg, metal]) +specific_ss.add(when: 'CONFIG_VMAPPLE', if_true: files('vmapple.c')) diff --git a/hw/vmapple/vmapple.c b/hw/vmapple/vmapple.c new file mode 100644 index 0000000000..5d3fe54b96 --- /dev/null +++ b/hw/vmapple/vmapple.c @@ -0,0 +1,661 @@ +/* + * VMApple machine emulation + * + * Copyright © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.Is an "All Rights Reserved" wording compatible with the GPL?
IANAL. You will find the pattern commonly across the code base already. My understanding is that all rights are reserved, but additionally I grant you the permissions of the GPL.
Alex Amazon Development Center Germany GmbH Krausenstr. 38 10117 Berlin Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B Sitz: Berlin Ust-ID: DE 289 237 879
[Prev in Thread] | Current Thread | [Next in Thread] |