[PATCH 2/2] drm/xe/vf: Perform early GT MMIO initialization to read GMDID
Piotr Piórkowski
piotr.piorkowski at intel.com
Mon Dec 2 18:38:53 UTC 2024
Michal Wajdeczko <michal.wajdeczko at intel.com> wrote on czw [2024-lis-14 18:59:55 +0100]:
> VFs need to communicate with the GuC to obtain the GMDID value
> and existing GuC functions used for that assume that the GT has
> it's MMIO members already setup. However, due to recent refactoring
> the gt->mmio is initialized later, and any attempt by the VF to use
> xe_mmio_read|write() from GuC functions will lead to NPD crash due
> to unset MMIO register address:
>
> [] xe 0000:00:02.1: [drm] Running in SR-IOV VF mode
> [] xe 0000:00:02.1: [drm] GT0: sending H2G MMIO 0x5507
> [] BUG: unable to handle page fault for address: 0000000000190240
>
> Since we are already tweaking the id and type of the primary GT to
> mimic it's a Media GT before initializing the GuC communication,
> we can also call xe_gt_mmio_init() to perform early setup of the
> gt->mmio which will make those GuC functions work again.
>
> Fixes: 58548b91101f ("drm/xe: Defer gt->mmio initialization until after multi-tile setup")
> Fixes: 0afda5d7bba4 ("drm/xe/pci: Convert register access to use xe_mmio")
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Cc: Piotr Piórkowski <piotr.piorkowski at intel.com>
> ---
> drivers/gpu/drm/xe/xe_pci.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index 9b81e7d00a86..8388a92c8fc2 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -507,6 +507,7 @@ static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver,
> gt->info.type = XE_GT_TYPE_MAIN;
> }
>
> + xe_gt_mmio_init(gt);
> xe_guc_comm_init_early(>->uc.guc);
>
> /* Don't bother with GMDID if failed to negotiate the GuC ABI */
LGTM:
Reviewed-by: Piotr Piórkowski <piotr.piorkowski at intel.com>
> --
> 2.43.0
>
--
More information about the Intel-xe
mailing list