mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
Misc HW patches
- Remove TCG dependency on ARM_GICV3 (Philippe) - Add MMIO interface to PVPanic device (Alexander) - Add vmapple machine (Alexander & Phil) - Restrict part of sPAPR PAGE_INIT hypercall to TCG (Philippe) - Make ghes_record_cper_errors() scope static (Gavin) - Do not expose the ARM virt machines on Xen-only binary (Philippe) - Xen header cleanups (Philippe) - Set Freescale eTSEC network device description & category (Zoltan) - Improve RX FIFO depth for various UARTs (Philippe) - Prevent TX FIFO memory leak in SiFive UART (Alistair) - Cleanups in MacIO and AT24C EEPROM (Zoltan) - Add UFS temperature event notification support & test (Keoseong) - Remove printf() calls in hw/arm/ (Peter) -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmfHpagACgkQ4+MsLN6t wN4dTg//Z2neoENdnZglRp6q66LLxSTHJnHUMNHe2Bp+KKfhce+//j+CFYgOnJjV P5eExzvHvtYFL6lNXOR7MTM/i/4pixcLYh8anyrnUWkEiufGXI4/30QePbwAAdkZ kQ1CpLI43ZdnMLTh18JswLo/JMkl/jJGvCGNjhtQVnobqam+ATgAbjmcnwA8esJS cCQVFzno9TNvsCnUtMe3IdOfIs9K3atCARbXpA3i3wd52P+NHvGO1jU0QPFBm2Lr 4kcFLI1Sg2vYWD3FujDPeCcfI7kcRDIjHS6vVplK1VlCjjdaQmxx6XKO72PnZZOG 7sra8xJpW8mZS2jfN2AxKMVlNndZMYzAJoS2UBMp1YX8KBEzlcmI2uSjGas6bcmQ XIaP7/mggx7yBU3nspUl8rqY/3Z3wVjwepf1l8KOn9Z13wo+APv4aj6W+zkK96A5 NGq6EpoKquINGLBBMkZAdfBOKk97NhwHh1Op04VgJNnPESpLnb5hENtZW1ksg92r tijWdDWnC/JtWMU2dAnmT/9Vaxk4fukGqqncXqQJzGBw0OylzWh5b2Zer02WFyxz oplISEwU3uFcg0OLa9aUHgs7lVWBUbEW3pSk1CtKuqgPtwxm/Gr2KbAVgAbFiyzr 6YPQsfFP5z6CjreOWMELPWmsYV+jtTj/KoIek2QlYt7Ex6uiA6c= =TcY9 -----END PGP SIGNATURE----- Merge tag 'hw-misc-20250305' of https://github.com/philmd/qemu into staging Misc HW patches - Remove TCG dependency on ARM_GICV3 (Philippe) - Add MMIO interface to PVPanic device (Alexander) - Add vmapple machine (Alexander & Phil) - Restrict part of sPAPR PAGE_INIT hypercall to TCG (Philippe) - Make ghes_record_cper_errors() scope static (Gavin) - Do not expose the ARM virt machines on Xen-only binary (Philippe) - Xen header cleanups (Philippe) - Set Freescale eTSEC network device description & category (Zoltan) - Improve RX FIFO depth for various UARTs (Philippe) - Prevent TX FIFO memory leak in SiFive UART (Alistair) - Cleanups in MacIO and AT24C EEPROM (Zoltan) - Add UFS temperature event notification support & test (Keoseong) - Remove printf() calls in hw/arm/ (Peter) # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmfHpagACgkQ4+MsLN6t # wN4dTg//Z2neoENdnZglRp6q66LLxSTHJnHUMNHe2Bp+KKfhce+//j+CFYgOnJjV # P5eExzvHvtYFL6lNXOR7MTM/i/4pixcLYh8anyrnUWkEiufGXI4/30QePbwAAdkZ # kQ1CpLI43ZdnMLTh18JswLo/JMkl/jJGvCGNjhtQVnobqam+ATgAbjmcnwA8esJS # cCQVFzno9TNvsCnUtMe3IdOfIs9K3atCARbXpA3i3wd52P+NHvGO1jU0QPFBm2Lr # 4kcFLI1Sg2vYWD3FujDPeCcfI7kcRDIjHS6vVplK1VlCjjdaQmxx6XKO72PnZZOG # 7sra8xJpW8mZS2jfN2AxKMVlNndZMYzAJoS2UBMp1YX8KBEzlcmI2uSjGas6bcmQ # XIaP7/mggx7yBU3nspUl8rqY/3Z3wVjwepf1l8KOn9Z13wo+APv4aj6W+zkK96A5 # NGq6EpoKquINGLBBMkZAdfBOKk97NhwHh1Op04VgJNnPESpLnb5hENtZW1ksg92r # tijWdDWnC/JtWMU2dAnmT/9Vaxk4fukGqqncXqQJzGBw0OylzWh5b2Zer02WFyxz # oplISEwU3uFcg0OLa9aUHgs7lVWBUbEW3pSk1CtKuqgPtwxm/Gr2KbAVgAbFiyzr # 6YPQsfFP5z6CjreOWMELPWmsYV+jtTj/KoIek2QlYt7Ex6uiA6c= # =TcY9 # -----END PGP SIGNATURE----- # gpg: Signature made Wed 05 Mar 2025 09:15:20 HKT # gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" [full] # Primary key fingerprint: FAAB E75E 1291 7221 DCFD 6BB2 E3E3 2C2C DEAD C0DE * tag 'hw-misc-20250305' of https://github.com/philmd/qemu: (41 commits) hw/nvram/eeprom_at24c: Reorganise init to avoid overwriting values hw/nvram/eeprom_at24c: Remove memset after g_malloc0 hw/nvram/eeprom_at24c: Remove ERR macro that calls fprintf to stderr hw/nvram/eeprom_at24c: Use OBJECT_DECLARE_SIMPLE_TYPE hw/arm/versatilepb: Convert printfs to LOG_GUEST_ERROR hw/arm/omap_sx1: Remove ifdeffed out debug printf hw/arm/omap1: Convert information printfs to tracepoints hw/arm/omap1: Drop ALMDEBUG ifdeffed out code hw/arm/omap1: Convert raw printfs to qemu_log_mask() tests/qtest/ufs-test: Add test code for the temperature feature hw/ufs: Add temperature event notification support hw/misc/macio/gpio: Add constants for register bits hw/misc/macio: Improve trace logs hw/char/sifive_uart: Free fifo on unrealize hw/char/sh_serial: Return correct number of empty RX FIFO elements hw/char/mcf_uart: Really use RX FIFO depth hw/char/mcf_uart: Use FIFO_DEPTH definition instead of magic values hw/char/imx_serial: Really use RX FIFO depth hw/char/bcm2835_aux: Really use RX FIFO depth hw/char/pl011: Really use RX FIFO depth ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
f5e6e13124
68 changed files with 2558 additions and 204 deletions
65
docs/system/arm/vmapple.rst
Normal file
65
docs/system/arm/vmapple.rst
Normal file
|
@ -0,0 +1,65 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
VMApple machine emulation
|
||||
========================================================================================
|
||||
|
||||
VMApple is the device model that the macOS built-in hypervisor called "Virtualization.framework"
|
||||
exposes to Apple Silicon macOS guests. The "vmapple" machine model in QEMU implements the same
|
||||
device model, but does not use any code from Virtualization.Framework.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
To run the vmapple machine model, you need to
|
||||
|
||||
* Run on Apple Silicon
|
||||
* Run on macOS 12.0 or above
|
||||
* Have an already installed copy of a Virtualization.Framework macOS 12 virtual
|
||||
machine. Note that newer versions than 12.x are currently NOT supported on
|
||||
the guest side. I will assume that you installed it using the
|
||||
`macosvm <https://github.com/s-u/macosvm>`__ CLI.
|
||||
|
||||
First, we need to extract the UUID from the virtual machine that you installed. You can do this
|
||||
by running the shell script in contrib/vmapple/uuid.sh on the macosvm.json file.
|
||||
|
||||
.. code-block:: bash
|
||||
:caption: uuid.sh script to extract the UUID from a macosvm.json file
|
||||
|
||||
$ contrib/vmapple/uuid.sh "path/to/macosvm.json"
|
||||
|
||||
Now we also need to trim the aux partition. It contains metadata that we can just discard:
|
||||
|
||||
.. code-block:: bash
|
||||
:caption: Command to trim the aux file
|
||||
|
||||
$ dd if="aux.img" of="aux.img.trimmed" bs=$(( 0x4000 )) skip=1
|
||||
|
||||
How to run
|
||||
----------
|
||||
|
||||
Then, we can launch QEMU with the Virtualization.Framework pre-boot environment and the readily
|
||||
installed target disk images. I recommend to port forward the VM's ssh and vnc ports to the host
|
||||
to get better interactive access into the target system:
|
||||
|
||||
.. code-block:: bash
|
||||
:caption: Example execution command line
|
||||
|
||||
$ UUID="$(contrib/vmapple/uuid.sh 'macosvm.json')"
|
||||
$ AVPBOOTER="/System/Library/Frameworks/Virtualization.framework/Resources/AVPBooter.vmapple2.bin"
|
||||
$ AUX="aux.img.trimmed"
|
||||
$ DISK="disk.img"
|
||||
$ qemu-system-aarch64 \
|
||||
-serial mon:stdio \
|
||||
-m 4G \
|
||||
-accel hvf \
|
||||
-M vmapple,uuid="$UUID" \
|
||||
-bios "$AVPBOOTER" \
|
||||
-drive file="$AUX",if=pflash,format=raw \
|
||||
-drive file="$DISK",if=pflash,format=raw \
|
||||
-drive file="$AUX",if=none,id=aux,format=raw \
|
||||
-drive file="$DISK",if=none,id=root,format=raw \
|
||||
-device vmapple-virtio-blk-pci,variant=aux,drive=aux \
|
||||
-device vmapple-virtio-blk-pci,variant=root,drive=root \
|
||||
-netdev user,id=net0,ipv6=off,hostfwd=tcp::2222-:22,hostfwd=tcp::5901-:5900 \
|
||||
-device virtio-net-pci,netdev=net0
|
||||
|
|
@ -103,6 +103,7 @@ Board-specific documentation
|
|||
arm/stellaris
|
||||
arm/stm32
|
||||
arm/virt
|
||||
arm/vmapple
|
||||
arm/xenpvh
|
||||
arm/xlnx-versal-virt
|
||||
arm/xlnx-zynq
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue