• Alexandre Courbot's avatar
    drm/nouveau/core: add falcon library functions · 31214108
    Alexandre Courbot authored
    Falcon processors are used in various places of GPU chips. Although there
    exist different versions of the falcon, and some variants exist, the
    base set of actions performed on them is the same, which results in lots
    of duplicated code.
    
    This patch consolidates the current nvkm_falcon structure and extends it
    with the following features:
    
    * Ability for an engine to obtain and later release a given falcon,
    * Abstractions for basic operations (IMEM/DMEM access, start, etc)
    * Abstractions for secure operations if a falcon is secure
    
    Abstractions make it easy to e.g. start a falcon, without having to care
    about its details. For instance, falcons in secure mode need to be
    started by writing to a different register.
    
    Right now the abstractions variants only cover secure vs. non-secure
    falcon, but more will come as e.g. SEC2 support is added.
    
    This is still a WIP as other functions previously done by
    engine/falcon.c need to be reimplemented. However this first step allows
    to keep things simple and to discuss basic design.
    Signed-off-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    31214108
base.c 4.72 KB