• B
    spapr: Add "memop" hypercall · c73e3771
    Benjamin Herrenschmidt 提交于
    This adds a qemu-specific hypervisor call to the pseries machine
    which allows to do what amounts to memmove, memcpy and xor over
    regions of physical memory such as the framebuffer.
    
    This is the simplest way to get usable framebuffer speed from
    SLOF since the framebuffer isn't mapped in the VRMA and so would
    otherwise require an hcall per 8 bytes access.
    
    The performance is still not great but usable, and can be improved
    with a more complex implementation of the hcall itself if needed.
    
    This also adds some documentation for the qemu-specific hypercalls
    that we add to PAPR along with a new qemu,hypertas-functions property
    that mirrors ibm,hypertas-functions and provides some discoverability
    for the new calls.
    
    Note: I chose note to advertise H_RTAS to the guest via that mechanism.
    This is done on purpose, the guest uses the normal RTAS interfaces
    provided by qemu (including SLOF) which internally calls H_RTAS.
    
    We might in the future implement part (or even all) of RTAS inside the
    guest like IBM's firmware does and replace H_RTAS with some finer grained
    set of private hypercalls.
    Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: NAlexander Graf <agraf@suse.de>
    c73e3771
spapr.h 12.3 KB