[Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO

Lucas De Marchi lucas.demarchi at intel.com
Mon Nov 20 20:04:46 UTC 2023


On Tue, Nov 14, 2023 at 02:02:26PM +0100, Michał Winiarski wrote:
>The firmware loading for GuC is about to be moved, and will happen much
>earlier in the probe process, when local-memory is not yet available.
>While this has the potential to make the firmware loading process
>slower, this is only happening during probe and full device reset.
>Since both are not hot-paths - store all UC-like firmware in system
>memory.

is this really possible? AFAIR we needed it to be in vram for DG2.
Or maybe it was a WA that is not needed anymore?

+Daniele. Do you remember any limitation here?

Lucas De Marchi

>
>Signed-off-by: Michał Winiarski <michal.winiarski at intel.com>
>---
> drivers/gpu/drm/xe/xe_uc_fw.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c b/drivers/gpu/drm/xe/xe_uc_fw.c
>index df46751fb5959..b04dd7d034d83 100644
>--- a/drivers/gpu/drm/xe/xe_uc_fw.c
>+++ b/drivers/gpu/drm/xe/xe_uc_fw.c
>@@ -636,8 +636,6 @@ static int uc_fw_copy(struct xe_uc_fw *uc_fw, const void *data, size_t size, u32
> int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
> {
> 	const struct firmware *fw = NULL;
>-	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
>-	struct xe_tile *tile = gt_to_tile(gt);
> 	int err;
>
> 	err = uc_fw_request(uc_fw, &fw);
>@@ -649,7 +647,7 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
> 		return 0;
>
> 	err = uc_fw_copy(uc_fw, fw->data, fw->size,
>-			 XE_BO_CREATE_VRAM_IF_DGFX(tile) | XE_BO_CREATE_GGTT_BIT);
>+			 XE_BO_CREATE_SYSTEM_BIT | XE_BO_CREATE_GGTT_BIT);
>
> 	uc_fw_release(fw);
>
>-- 
>2.42.1
>


More information about the Intel-xe mailing list