qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/11] hvf: Implement Apple Silicon Support
@ 2020-12-03 23:48 Alexander Graf
  2020-12-03 23:48 ` [PATCH v4 01/11] hvf: Add hypervisor entitlement to output binaries Alexander Graf
                   ` (12 more replies)
  0 siblings, 13 replies; 26+ messages in thread
From: Alexander Graf @ 2020-12-03 23:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, Richard Henderson,
	Cameron Esfahani, Roman Bolshakov, qemu-arm, Frank Yang,
	Paolo Bonzini, Peter Collingbourne

Now that Apple Silicon is widely available, people are obviously excited
to try and run virtualized workloads on them, such as Linux and Windows.

This patch set implements a fully functional version to get the ball
going on that. With this applied, I can successfully run both Linux and
Windows as guests. I am not aware of any limitations specific to
Hypervisor.framework apart from:

  - Live migration / savevm
  - gdbstub debugging (SP register)


Enjoy!

Alex

v1 -> v2:

  - New patch: hvf: Actually set SIG_IPI mask
  - New patch: hvf: Introduce hvf vcpu struct
  - New patch: hvf: arm: Mark CPU as dirty on reset
  - Removed patch: hw/arm/virt: Disable highmem when on hypervisor.framework
  - Removed patch: arm: Synchronize CPU on PSCI on
  - Fix build on 32bit arm
  - Merge vcpu kick function patch into ARM enablement
  - Implement WFI handling (allows vCPUs to sleep)
  - Synchronize system registers (fixes OVMF crashes and reboot)
  - Don't always call cpu_synchronize_state()
  - Use more fine grained iothread locking
  - Populate aa64mmfr0 from hardware
  - Make safe to ctrl-C entitlement application

v2 -> v3:

  - Removed patch: hvf: Actually set SIG_IPI mask
  - New patch: hvf: arm: Add support for GICv3
  - New patch: hvf: arm: Implement -cpu host
  - Advance PC on SMC
  - Use cp list interface for sysreg syncs
  - Do not set current_cpu
  - Fix sysreg isread mask
  - Move sysreg handling to functions
  - Remove WFI logic again
  - Revert to global iothread locking

v3 -> v4:

  - Removed patch: hvf: arm: Mark CPU as dirty on reset
  - New patch: hvf: Simplify post reset/init/loadvm hooks
  - Remove i386-softmmu target (meson.build for hvf target)
  - Combine both if statements (PSCI)
  - Use hv.h instead of Hypervisor.h for 10.15 compat
  - Remove manual inclusion of Hypervisor.h in common .c files
  - No longer include Hypervisor.h in arm hvf .c files
  - Remove unused exe_full variable
  - Reuse exe_name variable

Alexander Graf (10):
  hvf: Add hypervisor entitlement to output binaries
  hvf: x86: Remove unused definitions
  hvf: Move common code out
  hvf: Introduce hvf vcpu struct
  arm: Set PSCI to 0.2 for HVF
  hvf: Simplify post reset/init/loadvm hooks
  hvf: Add Apple Silicon support
  arm: Add Hypervisor.framework build target
  hvf: arm: Add support for GICv3
  hvf: arm: Implement -cpu host

Peter Collingbourne (1):
  arm/hvf: Add a WFI handler

 MAINTAINERS                  |  14 +-
 accel/hvf/entitlements.plist |   8 +
 accel/hvf/hvf-all.c          |  54 +++
 accel/hvf/hvf-cpus.c         | 466 +++++++++++++++++++
 accel/hvf/meson.build        |   7 +
 accel/meson.build            |   1 +
 include/hw/core/cpu.h        |   3 +-
 include/sysemu/hvf.h         |   2 +
 include/sysemu/hvf_int.h     |  66 +++
 meson.build                  |  40 +-
 scripts/entitlement.sh       |  13 +
 target/arm/cpu.c             |  13 +-
 target/arm/cpu.h             |   2 +
 target/arm/hvf/hvf.c         | 856 +++++++++++++++++++++++++++++++++++
 target/arm/hvf/meson.build   |   3 +
 target/arm/kvm_arm.h         |   2 -
 target/arm/meson.build       |   2 +
 target/i386/hvf/hvf-cpus.c   | 131 ------
 target/i386/hvf/hvf-cpus.h   |  25 -
 target/i386/hvf/hvf-i386.h   |  49 +-
 target/i386/hvf/hvf.c        | 462 +++----------------
 target/i386/hvf/meson.build  |   1 -
 target/i386/hvf/vmx.h        |  24 +-
 target/i386/hvf/x86.c        |  28 +-
 target/i386/hvf/x86_descr.c  |  26 +-
 target/i386/hvf/x86_emu.c    |  62 +--
 target/i386/hvf/x86_mmu.c    |   4 +-
 target/i386/hvf/x86_task.c   |  12 +-
 target/i386/hvf/x86hvf.c     | 224 ++++-----
 target/i386/hvf/x86hvf.h     |   2 -
 30 files changed, 1786 insertions(+), 816 deletions(-)
 create mode 100644 accel/hvf/entitlements.plist
 create mode 100644 accel/hvf/hvf-all.c
 create mode 100644 accel/hvf/hvf-cpus.c
 create mode 100644 accel/hvf/meson.build
 create mode 100644 include/sysemu/hvf_int.h
 create mode 100755 scripts/entitlement.sh
 create mode 100644 target/arm/hvf/hvf.c
 create mode 100644 target/arm/hvf/meson.build
 delete mode 100644 target/i386/hvf/hvf-cpus.c
 delete mode 100644 target/i386/hvf/hvf-cpus.h

-- 
2.24.3 (Apple Git-128)



^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2020-12-04 20:54 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-03 23:48 [PATCH v4 00/11] hvf: Implement Apple Silicon Support Alexander Graf
2020-12-03 23:48 ` [PATCH v4 01/11] hvf: Add hypervisor entitlement to output binaries Alexander Graf
2020-12-04 14:50   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 02/11] hvf: x86: Remove unused definitions Alexander Graf
2020-12-04 14:51   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 03/11] hvf: Move common code out Alexander Graf
2020-12-04 14:55   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 04/11] hvf: Introduce hvf vcpu struct Alexander Graf
2020-12-04 16:15   ` Alex Bennée
2020-12-03 23:48 ` [PATCH v4 05/11] arm: Set PSCI to 0.2 for HVF Alexander Graf
2020-12-04 14:56   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 06/11] hvf: Simplify post reset/init/loadvm hooks Alexander Graf
2020-12-04 16:07   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 07/11] hvf: Add Apple Silicon support Alexander Graf
2020-12-04 16:41   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 08/11] arm: Add Hypervisor.framework build target Alexander Graf
2020-12-04 16:25   ` Alex Bennée
2020-12-04 16:44   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 09/11] arm/hvf: Add a WFI handler Alexander Graf
2020-12-04 16:45   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 10/11] hvf: arm: Add support for GICv3 Alexander Graf
2020-12-04 16:46   ` Roman Bolshakov
2020-12-03 23:48 ` [PATCH v4 11/11] hvf: arm: Implement -cpu host Alexander Graf
2020-12-04 16:47   ` Roman Bolshakov
2020-12-04  0:03 ` [PATCH v4 00/11] hvf: Implement Apple Silicon Support no-reply
2020-12-04 16:55 ` Roman Bolshakov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).