Message ID | 20230428023416.4051910-1-daniele.ceraolospurio@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | drm/i915: HuC loading and authentication for MTL | expand |
Acked-by: Tony Ye <tony.ye@intel.com> 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@intel.com> > Cc: Tony Ye<tony.ye@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 >
Hi, > -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ye, Tony > Sent: perjantai 28. huhtikuuta 2023 6.11 > To: Ceraolo Spurio, Daniele <daniele.ceraolospurio@intel.com>; intel- > gfx@lists.freedesktop.org > Cc: Teres Alexis, Alan Previn <alan.previn.teres.alexis@intel.com>; dri- > devel@lists.freedesktop.org; Zhang, Carl <carl.zhang@intel.com> > Subject: Re: [Intel-gfx] [PATCH 0/8] drm/i915: HuC loading and authentication for > MTL > > Acked-by: Tony Ye <tony.ye@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... > > 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@intel.com> > > Cc: Tony Ye<tony.ye@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 > >
On 4/27/2023 10:25 PM, Saarinen, Jani wrote: > Hi, > >> -----Original Message----- >> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ye, Tony >> Sent: perjantai 28. huhtikuuta 2023 6.11 >> To: Ceraolo Spurio, Daniele <daniele.ceraolospurio@intel.com>; intel- >> gfx@lists.freedesktop.org >> Cc: Teres Alexis, Alan Previn <alan.previn.teres.alexis@intel.com>; dri- >> devel@lists.freedesktop.org; Zhang, Carl <carl.zhang@intel.com> >> Subject: Re: [Intel-gfx] [PATCH 0/8] drm/i915: HuC loading and authentication for >> MTL >> >> Acked-by: Tony Ye <tony.ye@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@intel.com> >>> Cc: Tony Ye<tony.ye@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 >>>