• Lucas Stach's avatar
    drm/etnaviv: implement softpin · 088880dd
    Lucas Stach authored
    With softpin we allow the userspace to take control over the GPU virtual
    address space. The new capability is relected by a bump of the minor DRM
    version. There are a few restrictions for userspace to take into
    account:
    
    1. The kernel reserves a bit of the address space to implement zero page
    faulting and mapping of the kernel internal ring buffer. Userspace can
    query the kernel for the first usable GPU VM address via
    ETNAVIV_PARAM_SOFTPIN_START_ADDR.
    
    2. We only allow softpin on GPUs, which implement proper process
    separation via PPAS. If softpin is not available the softpin start
    address will be set to ~0.
    
    3. Softpin is all or nothing. A submit using softpin must not use any
    address fixups via relocs.
    Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
    Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
    Reviewed-by: default avatarGuido Günther <agx@sigxcpu.org>
    088880dd
etnaviv_gpu.c 47.6 KB