Skip to content
  • Alexey Kardashevskiy's avatar
    spapr: Implement Open Firmware client interface · fc8c745d
    Alexey Kardashevskiy authored
    The PAPR platform describes an OS environment that's presented by
    a combination of a hypervisor and firmware. The features it specifies
    require collaboration between the firmware and the hypervisor.
    
    Since the beginning, the runtime component of the firmware (RTAS) has
    been implemented as a 20 byte shim which simply forwards it to
    a hypercall implemented in qemu. The boot time firmware component is
    SLOF - but a build that's specific to qemu, and has always needed to be
    updated in sync with it. Even though we've managed to limit the amount
    of runtime communication we need between qemu and SLOF, there's some,
    and it has become increasingly awkward to handle as we've implemented
    new features.
    
    This implements a boot time OF client interface (CI) which is
    enabled by a new "x-vof" pseries machine option (stands for "Virtual Open
    Firmware). When enabled, QEMU implements the custom H_OF_CLIENT hcall
    which implements Open Firmware Client Interface (OF CI). This allo...
    fc8c745d