[Intel-xe] [PATCH v2 08/10] drm/xe: Fix MTL+ stolen memory mapping
Matt Roper
matthew.d.roper at intel.com
Wed Jul 26 17:01:37 UTC 2023
On Wed, Jul 26, 2023 at 09:07:06AM -0700, Lucas De Marchi wrote:
> Based on commit 8d8d062be6b9 ("drm/i915/mtl: Fix MTL stolen memory GGTT
> mapping"). For stolen on MTL and beyond, the address in the PTE is the
> offset from DSM base. While at it, update the comments explaining each
> part of the calculation.
>
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> index 21ecc734f10a..271b3fba4129 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> @@ -94,11 +94,22 @@ static u32 detect_bar2_integrated(struct xe_device *xe, struct xe_ttm_stolen_mgr
>
> ggc = xe_mmio_read32(xe_root_mmio_gt(xe), GGC);
>
> - /* check GGMS, should be fixed 0x3 (8MB) */
> + /*
> + * Check GGMS: it should be fixed 0x3 (8MB), which corresponds to the
> + * GTT size
> + */
> if (drm_WARN_ON(&xe->drm, (ggc & GGMS_MASK) != GGMS_MASK))
> return 0;
>
> - mgr->stolen_base = mgr->io_base = pci_resource_start(pdev, 2) + SZ_8M;
> + /*
> + * Graphics >= 1270 uses the offset to the GSMBASE as address in the
> + * PTEs, together with the DM flag being set. Previously there was no
> + * such flag so the address was the io_base.
> + *
> + * DSMBASE = GSMBASE + 8MB
> + */
> + mgr->stolen_base = SZ_8M;
> + mgr->io_base = pci_resource_start(pdev, 2) + mgr->stolen_base;
>
> /* return valid GMS value, -EIO if invalid */
> gms = REG_FIELD_GET(GMS_MASK, ggc);
> --
> 2.40.1
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the Intel-xe
mailing list