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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 4/27/2023 10:25 PM, Saarinen, Jani wrote:
Hi,

-----Original Message-----
From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Ye, Tony
Sent: perjantai 28. huhtikuuta 2023 6.11
To: Ceraolo Spurio, Daniele <daniele.ceraolospurio@xxxxxxxxx>; intel-
gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Teres Alexis, Alan Previn <alan.previn.teres.alexis@xxxxxxxxx>; dri-
devel@xxxxxxxxxxxxxxxxxxxxx; Zhang, Carl <carl.zhang@xxxxxxxxx>
Subject: Re: [Intel-gfx] [PATCH 0/8] drm/i915: HuC loading and authentication for
MTL

Acked-by: Tony Ye <tony.ye@xxxxxxxxx>
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@xxxxxxxxx>
Cc: Tony Ye<tony.ye@xxxxxxxxx>

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





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux