[PATCH v4 00/15] drm/i915: HuC loading for DG2
Winkler, Tomas
tomas.winkler at intel.com
Fri Sep 9 06:01:29 UTC 2022
> On DG2, HuC loading is performed by the GSC, via a PXP command. The load
> operation itself is relatively simple (just send a message to the GSC with the
> physical address of the HuC in LMEM), but there are timing changes that
> requires special attention. In particular, to send a PXP command we need to
> first export the GSC as an aux device and then wait for the mei-gsc and mei-
> pxp modules to start, which means that HuC load will complete after i915
> load is complete. This means that there is a small window of time after i915 is
> registered and before HuC is loaded during which userspace could submit
> and/or check the HuC load status, although this is quite unlikely to happen
> (HuC is usually loaded before kernel init/resume completes).
> We've consulted with the media team in regards to how to handle this and
> they've asked us to stall all userspace VCS submission until HuC is loaded.
> Stalls are expected to be very rare (if any), due to the fact that HuC is usually
> loaded before kernel init/resume is completed.
>
> Timeouts are in place to ensure all submissions are unlocked in case
> something goes wrong. Since we need to monitor the status of the mei
> driver to know what's happening and when to time out, a notifier has been
> added so we get a callback when the status of the mei driver changes.
>
> Note that this series includes several mei patches that add support for
> sending the HuC loading command via mei-gsc. We plan to merge those
> patches through the drm tree because i915 is the sole user.
>
> v2: address review comments, Reporting HuC loading still in progress while
> we wait for mei-gsc init to complete, rebase on latest mei-gsc series.
>
> v3: fix cc list in mei patches.
>
> v4: update mei patches, fix includes, rebase on new FW fetch logic and
> merged mei-gsc support.
>
> Test-with: 20220818224216.3920822-1-daniele.ceraolospurio at intel.com
> Cc: Alan Previn <alan.previn.teres.alexis at intel.com>
> Cc: Tony Ye <tony.ye at intel.com>
> Cc: Alexander Usyskin <alexander.usyskin at intel.com>
> Cc: Tomas Winkler <tomas.winkler at intel.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
>
> Daniele Ceraolo Spurio (7):
> drm/i915/pxp: load the pxp module when we have a gsc-loaded huc
> drm/i915/dg2: setup HuC loading via GSC
> drm/i915/huc: track delayed HuC load with a fence
> drm/i915/huc: stall media submission until HuC is loaded
> drm/i915/huc: better define HuC status getparam possible return
> values.
> drm/i915/huc: define gsc-compatible HuC fw for DG2
> HAX: drm/i915: force INTEL_MEI_GSC and INTEL_MEI_PXP on for CI
>
> Tomas Winkler (5):
> mei: add support to GSC extended header
> mei: bus: enable sending gsc commands
> mei: adjust extended header kdocs
> mei: pxp: support matching with a gfx discrete card
> drm/i915/pxp: add huc authentication and loading command
>
> Vitaly Lubart (3):
> mei: bus: extend bus API to support command streamer API
> mei: pxp: add command streamer API to the PXP driver
> drm/i915/pxp: implement function for sending tee stream command
>
> drivers/gpu/drm/i915/Kconfig.debug | 2 +
> drivers/gpu/drm/i915/Makefile | 11 +-
> drivers/gpu/drm/i915/gt/intel_gsc.c | 22 +-
> drivers/gpu/drm/i915/gt/uc/intel_guc.c | 1 +
> drivers/gpu/drm/i915/gt/uc/intel_huc.c | 254 ++++++++++++++++--
> drivers/gpu/drm/i915/gt/uc/intel_huc.h | 31 +++
> drivers/gpu/drm/i915/gt/uc/intel_huc_fw.c | 34 +++
> drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h | 1 +
> drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 24 +-
> drivers/gpu/drm/i915/i915_request.c | 24 ++
> drivers/gpu/drm/i915/pxp/intel_pxp.c | 32 ++-
> drivers/gpu/drm/i915/pxp/intel_pxp.h | 32 ---
> drivers/gpu/drm/i915/pxp/intel_pxp_huc.c | 69 +++++
> drivers/gpu/drm/i915/pxp/intel_pxp_huc.h | 13 +
> drivers/gpu/drm/i915/pxp/intel_pxp_irq.h | 8 +
> drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 8 +-
> drivers/gpu/drm/i915/pxp/intel_pxp_session.h | 11 +-
> drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 138 +++++++++-
> drivers/gpu/drm/i915/pxp/intel_pxp_tee.h | 5 +
> .../drm/i915/pxp/intel_pxp_tee_interface.h | 23 +-
> drivers/gpu/drm/i915/pxp/intel_pxp_types.h | 6 +
> drivers/misc/mei/bus.c | 145 +++++++++-
> drivers/misc/mei/client.c | 55 ++--
> drivers/misc/mei/hbm.c | 13 +
> drivers/misc/mei/hw-me.c | 7 +-
> drivers/misc/mei/hw.h | 65 ++++-
> drivers/misc/mei/interrupt.c | 47 +++-
> drivers/misc/mei/mei_dev.h | 8 +
> drivers/misc/mei/pxp/mei_pxp.c | 41 ++-
> include/drm/i915_pxp_tee_interface.h | 5 +
> include/linux/mei_cl_bus.h | 6 +
> include/uapi/drm/i915_drm.h | 16 ++
> 32 files changed, 1035 insertions(+), 122 deletions(-) create mode 100644
> drivers/gpu/drm/i915/pxp/intel_pxp_huc.c
> create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_huc.h
>
Greg, can we have you review for the mei part of the series.
I've addressed your comments ' mei: add support to GSC extended header' patch.
Thanks
Tomas
> --
> 2.37.2
More information about the dri-devel
mailing list