KVM is the kernel virtualization module on Linux, QEMU handles the userland side support, all device emulation. The kvm binary on Linux is equivalent to running qemu-system-* with -enable-kvm. Newer versions of QEMU also support the '-accel kvm' argument but also adds other acceleration backends, such as '-accel tcg' (slower), '-accel haxm' (Intel/Windows), and finally '-accel hvf' for Apple's Hypervisor.Framework. This work here is extending that existing support from only Intel VT-x to also cover ARM Silicon, factoring out common code and API differences made by Apple.