PXP (Protected Xe Path) is an i915 componment, 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. [commit #1 - #13] 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 Mesa can allocate the protected buffer, which is encrypted with the leverage of the arbitrary hardware session. [commit #14 - #21] This patch series exposes ioctl so allow userspace to create, set, and destroy one or multiple sessions. It will also provide the communication chanel to TEE (Trusted Execution Environment) for the protected hardware session creation. v2: - modification based on code reivew feedbacks received - passing pxp instead of i915 as funciton argument - remove dead code only for multi-session - move the pxp init call from i915_drv.c to intel_gt.c - reove 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. 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 (17): 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 drm/i915/pxp: Implement ioctl action to reserve session slots drm/i915/pxp: Implement ioctl action to set session in play drm/i915/pxp: Implement ioctl action to terminate the session drm/i915/pxp: Implement ioctl action to send TEE commands drm/i915/pxp: Implement ioctl action to query PXP tag drm/i915/pxp: Termiante the session upon app crash drm/i915/pxp: Add PXP-related registers into allowlist drm/i915/pxp: Enable the PXP ioctl for protected session Vitaly Lubart (1): mei: pxp: export pavp client to me client bus drivers/gpu/drm/i915/Kconfig | 19 + drivers/gpu/drm/i915/Makefile | 10 + 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 | 10 + .../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 | 7 + 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 | 11 +- drivers/gpu/drm/i915/i915_drv.h | 6 + drivers/gpu/drm/i915/i915_gem.c | 63 ++- drivers/gpu/drm/i915/i915_reg.h | 10 +- drivers/gpu/drm/i915/intel_uncore.c | 50 +- drivers/gpu/drm/i915/pxp/intel_pxp.c | 284 ++++++++++ drivers/gpu/drm/i915/pxp/intel_pxp.h | 107 ++++ drivers/gpu/drm/i915/pxp/intel_pxp_arb.c | 226 ++++++++ drivers/gpu/drm/i915/pxp/intel_pxp_arb.h | 37 ++ drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c | 328 ++++++++++++ drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h | 22 + drivers/gpu/drm/i915/pxp/intel_pxp_context.c | 32 ++ drivers/gpu/drm/i915/pxp/intel_pxp_context.h | 41 ++ drivers/gpu/drm/i915/pxp/intel_pxp_pm.c | 72 +++ drivers/gpu/drm/i915/pxp/intel_pxp_pm.h | 31 ++ drivers/gpu/drm/i915/pxp/intel_pxp_sm.c | 487 ++++++++++++++++++ drivers/gpu/drm/i915/pxp/intel_pxp_sm.h | 54 ++ drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 227 ++++++++ drivers/gpu/drm/i915/pxp/intel_pxp_tee.h | 25 + 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 | 138 +++++ 39 files changed, 2641 insertions(+), 27 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_sm.c create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_sm.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/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 -- 2.17.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx