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

2023-04-28 Thread Ceraolo Spurio, Daniele




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

Hi,


-Original Message-
From: Intel-gfx  On Behalf Of Ye, Tony
Sent: perjantai 28. huhtikuuta 2023 6.11
To: Ceraolo Spurio, Daniele ; intel-
g...@lists.freedesktop.org
Cc: Teres Alexis, Alan Previn ; dri-
de...@lists.freedesktop.org; Zhang, Carl 
Subject: Re: [Intel-gfx] [PATCH 0/8] drm/i915: HuC loading and authentication 
for
MTL

Acked-by: Tony Ye 

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
Cc: Tony Ye

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 

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

2023-04-27 Thread Saarinen, Jani
Hi, 

> -Original Message-
> From: Intel-gfx  On Behalf Of Ye, 
> Tony
> Sent: perjantai 28. huhtikuuta 2023 6.11
> To: Ceraolo Spurio, Daniele ; intel-
> g...@lists.freedesktop.org
> Cc: Teres Alexis, Alan Previn ; dri-
> de...@lists.freedesktop.org; Zhang, Carl 
> Subject: Re: [Intel-gfx] [PATCH 0/8] drm/i915: HuC loading and authentication 
> for
> MTL
> 
> Acked-by: Tony Ye 
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...

> 
> 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
> > Cc: Tony Ye
> >
> > 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   |   

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

2023-04-27 Thread Ye, Tony

Acked-by: Tony Ye 

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
Cc: Tony Ye

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



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

2023-04-27 Thread Daniele Ceraolo Spurio
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 
Cc: Tony Ye 

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

-- 
2.40.0