• Aravind Iddamsetty's avatar
    drm/i915/mtl: enable local stolen memory · dbb2ffbf
    Aravind Iddamsetty authored
    As an integrated GPU, MTL does not have local memory and HAS_LMEM()
    returns false.  However the platform's stolen memory is presented via
    BAR2 (i.e., the BAR we traditionally consider to be the GMADR on IGFX)
    and should be managed by the driver the same way that local memory is
    on dgpu platforms (which includes setting the "lmem" bit on page table
    entries).  We use the term "local stolen memory" to refer to this
    model.
    
    The major difference from the traditional BAR2 (GMADR) is that
    the stolen area is mapped via the BAR2 while in the former BAR2 is an
    aperture into the GTT VA through which access are made into stolen area.
    
    BSPEC: 53098, 63830
    
    v2:
    1. dropped is_dsm_invalid, updated valid_stolen_size check from Lucas
    (Jani, Lucas)
    2. drop lmembar_is_igpu_stolen
    3. revert to referring GFXMEM_BAR as GEN12_LMEM_BAR (Lucas)
    
    v3:(Jani)
    1. rename get_mtl_gms_size to mtl_get_gms_size
    2. define register for MMIO address
    
    v4:(Matt)
    1. Use REG_FIELD_GET to read GMS value
    2. replace the calculations with SZ_256M/SZ_8M
    
    v5: Include more details to commit message on how it is different from
    earlier platforms (Anshuman)
    
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Signed-off-by: default avatarCQ Tang <cq.tang@intel.com>
    Signed-off-by: default avatarAravind Iddamsetty <aravind.iddamsetty@intel.com>
    Original-author: CQ Tang
    Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220929114658.145287-1-aravind.iddamsetty@intel.com
    dbb2ffbf
intel_ggtt.c 33.1 KB