Introduction
Embedded system designers are becoming intensely interested in virtualization for a variety of reasons, including security, reliability, licensing, legacy software support (especially related to multicore processors), and flexibility in resource provisioning. The most prominent examples of embedded virtualization today are the Xbox 360 and PlayStation 3 game consoles, both of which ship with a hypervisor.
(IBM's Power System servers, which use server-architecture PowerPC processors, already ship with an integrated enterprise-class hypervisor, and we are not targeting those systems.)
Technical Overview
Current development is aimed at running 440 Linux kernels as guests on 440 Linux host. Since the 440 processor does not implement virtualization hardware support, this is done via "trap and emulate" of privileged instructions executed inside the guest.
In the future, guests may be optionally modified to exploit a paravirtualized interface to improve performance.
Future Hardware Support
Power.org has announced that version 2.06 of the Book E ISA will define a hardware virtualization acceleration architecture.
Freescale announed in June 2008 that the e500mc core, which will be found in the P4 QorIQ processors (such as the P4080), will implement the Book E 2.06 hypervisor architecture.
Code
PowerPC_Source - how to obtain the source code
PowerPC_Run - some PowerPC-specific notes on running KVM
Design and Implementation notes
PowerPC_Book_E_MMU - a quick overview of the Book E MMU and how we virtualize it
PowerPC_Hypercall_ABI - the ABI we intend to use for hypercalls
Presentations
State of KVM in PowerPC (KVM Forum 2008)
Shadow TLB Management (KVM Forum 2008)
KVM for Embedded PowerPC (KVM Forum 2007)