[Intel-gfx] [RFC-v19 00/13] Introduce Intel PXP component - Mesa single session

Vivi, Rodrigo rodrigo.vivi at intel.com
Thu Jan 7 15:42:12 UTC 2021


On Wed, 2021-01-06 at 15:12 -0800, Huang, Sean Z wrote:
> PXP (Protected Xe Path) is an i915 component, available on
> GEN12+ that helps to establish the hardware protected session
> and manage the status of the alive software session, as well
> as its life cycle.
> 
> This patch series is to allow the kernel space to create and
> manage a single hardware session (a.k.a. default session or
> arbitrary session). So user can allocate the protected buffer,
> which is encrypted with the leverage of the arbitrary hardware
> session.
> 
> v2:
>     - modification based on code review feedbacks received
>     - passing pxp instead of i915 as function argument
>     - remove dead code only for multi-session
>     - move the pxp init call from i915_drv.c to intel_gt.c
>     - remove the tautology naming
> 
> v3:
>     - rebase to latest drm-tip
> 
> v4:
>     - Append the split non-mesa patch sereis (commit #14 - #21) into
>       this patch series
> 
> v5:
>     - include "intel_pxp.h" in intel_pxp_sm.h at commit #14 to fix
>       the build problem.
> 
> v6:
>     - Fix the null pointer arb_session access bug in intel_pxp_arb.c
> in
>       "04 [RFC-v5] drm/i915/pxp: Create the arbitrary session after
>       boot"
> 
> v7:
>     - Use list_for_each_entry_safe instead of list_for_each_entry
> 
> v8:
>     - Add MEI vtag support for PXP multi-session usage
> 
> v9:
>     - Fix error handling bug in commit #5 "Func to send hardware
> session
>       termination". In intel_pxp_cmd.c, we should properly assign
>       "err = PTR_ERR(x)" if hitting the error case "IS_ERR(x)", this
> is
>       the only change in v9.
> 
> v10
>     - Remove the multi session commits #14-#21, for now we would like
> to
>       keep the multi session patches as downstream.
>     - Adopt the code review suggestion from Wilson in commit #1
> 
> v11
>     - In commit #05 "drm/i915/pxp: Func to send hardware session
>       termination", we should not assume VCS0 is always on.
>       Instead we use available VCS#, could be VCS0, VCS2, etc.
> 
> v12
>     - Add "#include <linux/mutex.h> in #1 intel_pxp_types.h
> 
> v13
>     - Add "#include <linux/mutex.h> in #1 intel_pxp_types.h (#v12
> didn't
>       actually update the _types.h file...)
> 
> v14
>     - Add "if (INTEL_GEN(gt->i915) < 12) return;" in #1
>       intel_pxp_fini(), just skip for non gen12+ sku
> 
> v15
>     In #04:
>     - Make intel_pxp_arb_reserve_session() as static function to fix
> the
>       sparse warning
>     - Update value of PXP_TEE_ARB_CMD_BIN 
> 
> v16
>     In #04:
>     - Remove the binary from source code via defining the TEE command
>       header
> 
> v17
>     - In #04, directly return intel_pxp_tee_component_fini() if
>       pxp_tee_comp_added is off
> 
> v18
>     - In #09, Add intel_pxp_gem_context_set_protected() to check the
> arb
>       session before setting protected flag for gem context
> 
>     - In #12, Replace i915_gem_context_set_protected() with
>       intel_pxp_gem_context_set_protected() to check whether the
> arbitrary
>       session is alive
> 
> v19
>     - In #01, put intel_pxp_fini() in intel_gt_driver_remove()
> instead of
>       intel_gt_driver_release() since intel_gt_driver_release() is
> the last
>       stage of i915 unbind and we shouldn't call the component_del
> here.
> 
>     - In #04, check if arbitrary session is alive before
>       intel_pxp_arb_create_session()

Please reduce the amount of series revision and start using --in-reply-
to so we can easily see what was addressed from the previous comments
versus what is open.

> 
> 
> Anshuman Gupta (1):
>   drm/i915/pxp: Add plane decryption support
> 
> Bommu Krishnaiah (2):
>   drm/i915/uapi: introduce drm_i915_gem_create_ext
>   drm/i915/pxp: User interface for Protected buffer
> 
> Huang, Sean Z (9):
>   drm/i915/pxp: Introduce Intel PXP component
>   drm/i915/pxp: set KCR reg init during the boot time
>   drm/i915/pxp: Implement funcs to create the TEE channel
>   drm/i915/pxp: Create the arbitrary session after boot
>   drm/i915/pxp: Func to send hardware session termination
>   drm/i915/pxp: Enable PXP irq worker and callback stub
>   drm/i915/pxp: Destroy arb session upon teardown
>   drm/i915/pxp: Enable PXP power management
>   drm/i915/pxp: Expose session state for display protection flip
> 
> Vitaly Lubart (1):
>   mei: pxp: export pavp client to me client bus
> 
>  drivers/gpu/drm/i915/Kconfig                  |  22 ++
>  drivers/gpu/drm/i915/Makefile                 |   9 +
>  drivers/gpu/drm/i915/display/intel_sprite.c   |  21 +-
>  drivers/gpu/drm/i915/gem/i915_gem_context.c   |  19 +-
>  drivers/gpu/drm/i915/gem/i915_gem_context.h   |   5 +
>  .../gpu/drm/i915/gem/i915_gem_context_types.h |   2 +-
>  .../gpu/drm/i915/gem/i915_gem_object_types.h  |   5 +
>  drivers/gpu/drm/i915/gt/intel_gt.c            |   5 +
>  drivers/gpu/drm/i915/gt/intel_gt_irq.c        |   4 +
>  drivers/gpu/drm/i915/gt/intel_gt_pm.c         |   4 +
>  drivers/gpu/drm/i915/gt/intel_gt_types.h      |   3 +
>  drivers/gpu/drm/i915/i915_drv.c               |   7 +-
>  drivers/gpu/drm/i915/i915_drv.h               |   6 +
>  drivers/gpu/drm/i915/i915_gem.c               |  63 +++-
>  drivers/gpu/drm/i915/i915_reg.h               |   4 +-
>  drivers/gpu/drm/i915/pxp/intel_pxp.c          | 181 ++++++++++++
>  drivers/gpu/drm/i915/pxp/intel_pxp.h          |  81 +++++
>  drivers/gpu/drm/i915/pxp/intel_pxp_arb.c      | 207 +++++++++++++
>  drivers/gpu/drm/i915/pxp/intel_pxp_arb.h      |  17 ++
>  drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c      | 278
> ++++++++++++++++++
>  drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h      |  20 ++
>  drivers/gpu/drm/i915/pxp/intel_pxp_context.c  |  28 ++
>  drivers/gpu/drm/i915/pxp/intel_pxp_context.h  |  15 +
>  drivers/gpu/drm/i915/pxp/intel_pxp_pm.c       |  65 ++++
>  drivers/gpu/drm/i915/pxp/intel_pxp_pm.h       |  31 ++
>  drivers/gpu/drm/i915/pxp/intel_pxp_tee.c      | 210 +++++++++++++
>  drivers/gpu/drm/i915/pxp/intel_pxp_tee.h      |  17 ++
>  drivers/gpu/drm/i915/pxp/intel_pxp_types.h    |  60 ++++
>  drivers/misc/mei/Kconfig                      |   2 +
>  drivers/misc/mei/Makefile                     |   1 +
>  drivers/misc/mei/pxp/Kconfig                  |  13 +
>  drivers/misc/mei/pxp/Makefile                 |   7 +
>  drivers/misc/mei/pxp/mei_pxp.c                | 230 +++++++++++++++
>  drivers/misc/mei/pxp/mei_pxp.h                |  18 ++
>  include/drm/i915_component.h                  |   1 +
>  include/drm/i915_pxp_tee_interface.h          |  45 +++
>  include/uapi/drm/i915_drm.h                   |  66 +++++
>  37 files changed, 1760 insertions(+), 12 deletions(-)
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_arb.c
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_arb.h
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_context.c
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_context.h
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
>  create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
>  create mode 100644 drivers/misc/mei/pxp/Kconfig
>  create mode 100644 drivers/misc/mei/pxp/Makefile
>  create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
>  create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
>  create mode 100644 include/drm/i915_pxp_tee_interface.h
> 



More information about the Intel-gfx mailing list