[Intel-gfx] [PATCH 0/8] drm/i915: HuC loading and authentication for MTL

Ceraolo Spurio, Daniele daniele.ceraolospurio at intel.com
Fri Apr 28 14:25:49 UTC 2023



On 4/27/2023 10:25 PM, Saarinen, Jani wrote:
> Hi,
>
>> -----Original Message-----
>> From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf Of Ye, Tony
>> Sent: perjantai 28. huhtikuuta 2023 6.11
>> To: Ceraolo Spurio, Daniele <daniele.ceraolospurio at intel.com>; intel-
>> gfx at lists.freedesktop.org
>> Cc: Teres Alexis, Alan Previn <alan.previn.teres.alexis at intel.com>; dri-
>> devel at lists.freedesktop.org; Zhang, Carl <carl.zhang at intel.com>
>> Subject: Re: [Intel-gfx] [PATCH 0/8] drm/i915: HuC loading and authentication for
>> MTL
>>
>> Acked-by: Tony Ye <tony.ye at intel.com>
> CI results would be also good to look at before... https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_117080v1/index.html?
> For some reason no single MTL tests and many aborts...

Is there any way to know if the MTLs where just offline or if they 
failed driver load? This is working fine in my local MTL testing, so not 
sure what might be broken.
Regarding the aborts, looks like I have broken DG2 reset. I tested a 
previous local version of this on DG2 but not the latest, so I must've 
broken something when refactoring the code. I'll figure it out and fix 
it up.

Daniele

>
>> Thanks,
>>
>> Tony
>>
>> On 4/27/2023 7:34 PM, Daniele Ceraolo Spurio wrote:
>>> The HuC loading and authentication flow is once again changing and a
>>> new "clear-media only" authentication step is introduced. The flow is
>>> as
>>> follows:
>>>
>>> 1) The HuC is loaded via DMA - same as all non-GSC HuC binaries.
>>>
>>> 2) The HuC is authenticated by the GuC - this is the same step as
>>> performed for all non-GSC HuC binaries and re-uses the same code, but
>>> it is now resulting in a partial authentication that only allows
>>> clear-media workloads.
>>>
>>> 3) The HuC is fully authenticated for all workloads by the GSC - this
>>> is done via a new PXP command, submitted via the GSCCS.
>>>
>>> The advantage of this new flow is that we can start processing
>>> clear-media workloads without having to wait for the GSC to be ready,
>>> which can take several seconds.
>>>
>>> As part of this change, the HuC status getparam has been updated with
>>> a new value to indicate a partial authentication. Note tha the media
>>> driver is checking for value > 0 for clear media workloads, so no
>>> changes are required in userspace for that to work.
>>>
>>> The SW proxy series [1] has been included, squashed in a single patch,
>>> as some of some of the patches in this series depend on it. This is
>>> not a functional dependencies, the patches just touch the same code;
>>> the proxy patches are planned to be merged first, so it is easier to
>>> base the new patches on top of it to avoid having to rebase them later.
>>>
>>> [1]https://patchwork.freedesktop.org/series/115806/
>>> Cc: Alan Previn<alan.previn.teres.alexis at intel.com>
>>> Cc: Tony Ye<tony.ye at intel.com>
>>>
>>> Daniele Ceraolo Spurio (8):
>>>     DO NOT REVIEW: drm/i915: Add support for MTL GSC SW Proxy
>>>     drm/i915/uc: perma-pin firmwares
>>>     drm/i915/huc: Parse the GSC-enabled HuC binary
>>>     drm/i915/huc: Load GSC-enabled HuC via DMA xfer if the fuse says so
>>>     drm/i915/huc: differentiate the 2 steps of the MTL HuC auth flow
>>>     drm/i915/mtl/huc: auth HuC via GSC
>>>     drm/i915/mtl/huc: Use the media gt for the HuC getparam
>>>     drm/i915/huc: define HuC FW version for MTL
>>>
>>>    drivers/gpu/drm/i915/Makefile                 |   1 +
>>>    drivers/gpu/drm/i915/gt/intel_ggtt.c          |   3 +
>>>    drivers/gpu/drm/i915/gt/intel_gt_irq.c        |  22 +-
>>>    drivers/gpu/drm/i915/gt/intel_gt_regs.h       |   3 +
>>>    .../drm/i915/gt/uc/intel_gsc_meu_headers.h    |  74 +++
>>>    drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.c  | 424 ++++++++++++++++++
>>>    drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.h  |  18 +
>>>    drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c     |  89 +++-
>>>    drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.h     |  17 +-
>>>    .../i915/gt/uc/intel_gsc_uc_heci_cmd_submit.c |   2 +-
>>>    .../i915/gt/uc/intel_gsc_uc_heci_cmd_submit.h |   1 +
>>>    drivers/gpu/drm/i915/gt/uc/intel_guc.c        |   2 +-
>>>    drivers/gpu/drm/i915/gt/uc/intel_huc.c        | 182 +++++---
>>>    drivers/gpu/drm/i915/gt/uc/intel_huc.h        |  26 +-
>>>    drivers/gpu/drm/i915/gt/uc/intel_huc_fw.c     | 214 ++++++++-
>>>    drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h     |   6 +-
>>>    drivers/gpu/drm/i915/gt/uc/intel_huc_print.h  |  21 +
>>>    drivers/gpu/drm/i915/gt/uc/intel_uc.c         |  10 +-
>>>    drivers/gpu/drm/i915/gt/uc/intel_uc.h         |   2 +
>>>    drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c      | 120 ++---
>>>    drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h      |   9 +-
>>>    drivers/gpu/drm/i915/i915_getparam.c          |   6 +-
>>>    drivers/gpu/drm/i915/i915_reg.h               |   3 +
>>>    .../drm/i915/pxp/intel_pxp_cmd_interface_43.h |  14 +-
>>>    drivers/gpu/drm/i915/pxp/intel_pxp_huc.c      |   2 +-
>>>    drivers/misc/mei/Kconfig                      |   2 +-
>>>    drivers/misc/mei/Makefile                     |   1 +
>>>    drivers/misc/mei/gsc_proxy/Kconfig            |  14 +
>>>    drivers/misc/mei/gsc_proxy/Makefile           |   7 +
>>>    drivers/misc/mei/gsc_proxy/mei_gsc_proxy.c    | 208 +++++++++
>>>    include/drm/i915_component.h                  |   3 +-
>>>    include/drm/i915_gsc_proxy_mei_interface.h    |  53 +++
>>>    include/uapi/drm/i915_drm.h                   |   3 +-
>>>    33 files changed, 1428 insertions(+), 134 deletions(-)
>>>    create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_gsc_meu_headers.h
>>>    create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.c
>>>    create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.h
>>>    create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_huc_print.h
>>>    create mode 100644 drivers/misc/mei/gsc_proxy/Kconfig
>>>    create mode 100644 drivers/misc/mei/gsc_proxy/Makefile
>>>    create mode 100644 drivers/misc/mei/gsc_proxy/mei_gsc_proxy.c
>>>    create mode 100644 include/drm/i915_gsc_proxy_mei_interface.h
>>>



More information about the Intel-gfx mailing list