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

Lionel Landwerlin lionel.g.landwerlin at intel.com
Mon Jan 18 13:17:24 UTC 2021


Hi Sean,

FYI, I updated our Mesa drivers with the new 
I915_CONTEXT_PARAM_PROTECTED_CONTENT requirement to be only at creation 
time [1] [2] and gave a try to this series.
It all works fine :

Tested-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

Cheers,

-Lionel

[1] : https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064
[2] : https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8092

On 18/01/2021 08:07, 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.
>
>
> rev21:
>          #01
>          - Remove the term "Mesa" from the help description of Kconfig
>          - Remove unnecessary "select INTEL_MEI_TXE" from DRM_I915_PXP
>            in Kconfig
>
>          #02
>          - Remove "#define KCR_INIT_MASK_SHIFT (16)", but still keep the
>            macro in this .c file
>          - Write KCR_INIT reg inly for gen12 during boot, not required
>            for gen13+
>
>          #03
>          - Remove debug print_hex_dump() from intel_pxp_tee_io_message()
>          - In struct i915_pxp_component_ops, change "receive" to "recv"
>
>          #04:
>          - Rename SESSION_TYPE_TYPE0, SESSION_TYPE_TYPE1 as
>            SESSION_TYPE_HWDRM,
>            SESSION_TYPE_NONHWDRM to have better meaning.
>          - Remove enum pxp_session_types and enum pxp_protection_modes
>            from
>            single session patch series.
>
>          #05
>          In intel_pxp_cmd.c:
>          - Remove the debug print as well as print_hex_dump()
>          - Should call i915_gem_object_flush_map() before unpin map
>          - Using "goto label" instead of bool such as is_engine_pm_get
>          - We should always return the error if any, instead of skip
>            with i915_request_set_error_once()
>
>          #06
>          - Fix bug, access i915 pointer before assigning the value at
>            intel_pxp_irq_handler()
>          - Writing register GEN11_CRYPTO_RSVD_INTR_ENABLE to enable the
>            PXP irq
>          - Remove the unnecessary comment for GEN11_CRYPTO_RSVD_INTR_MASK
>
>          #07
>          - Bug fixing, we need to set the PXP_GLOBAL_TERMINATE 0x320f8
>            register after arb session termination
>          - Remove enum pxp_session_types and enum pxp_protection_modes
>            from
>            single session patch series.
>
>          #11
>          - Fix "Fi.CI.CHECKPATCH" warnings
>
>          #12
>          - Only allow set I915_CONTEXT_PARAM_PROTECTED_CONTENT during
>            context
>            creation (i915_gem_context_create_ioctl), but not allow during
>            context set param (i915_gem_context_setparam_ioctl)
>
>
> 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                  |  21 ++
>   drivers/gpu/drm/i915/Makefile                 |   9 +
>   drivers/gpu/drm/i915/display/intel_sprite.c   |  21 +-
>   drivers/gpu/drm/i915/gem/i915_gem_context.c   |  15 +-
>   drivers/gpu/drm/i915/gem/i915_gem_context.h   |   5 +
>   .../gpu/drm/i915/gem/i915_gem_context_types.h |   1 +
>   drivers/gpu/drm/i915/gem/i915_gem_create.c    |  68 +++++-
>   .../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        |  14 ++
>   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_reg.h               |   2 +
>   drivers/gpu/drm/i915/pxp/intel_pxp.c          | 185 ++++++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp.h          |  64 +++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_arb.c      | 208 ++++++++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_arb.h      |  17 ++
>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c      | 223 +++++++++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h      |  19 ++
>   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      | 202 +++++++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.h      |  17 ++
>   drivers/gpu/drm/i915/pxp/intel_pxp_types.h    |  38 +++
>   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, 1671 insertions(+), 10 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