[CI 00/13] Add PXP HWDRM support
Daniele Ceraolo Spurio
daniele.ceraolospurio at intel.com
Wed Jan 29 17:41:24 UTC 2025
PXP (Protected Xe Path) allows execution and flip to display of protected
(i.e. encrypted) objects. The HW supports multiple types of PXP, but
this series only introduces support for PXP HWDRM, which is mainly
targeted at encrypting data that is going to be displayed.
Even though we only plan to support 1 type of PXP for now, the interface
has been designed to allow support for other PXP types to be added at a
later point in time.
A user is expected to mark both BO and exec_queues as using PXP and the
driver will make sure that PXP is running, that the encryption is
valid and that no execution happens with an outdated encryption.
The mesa implementation of the new interfaces is in review here:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723
The IGT tests for PXP are in review here:
https://patchwork.freedesktop.org/series/142450/
v2: code cleaned up and fixed while coming out of RFC, addressed review
feedback in regards to the interface.
v3: code and documentation improvements following review feedback
v4: Major rework of the internal status tracking to avoid doing
submissions under lock. Split the exec queue patch into 2 for ease of
review.
v5: minor fixes to comment and logs. Since the patches have grown, it
makes more sense to keep them split instead of squashing them, so
reworded some of the commit messages accordingly.
All patches reviewed. Re-sending for a last run of CI before merging.
Cc: José Roberto de Souza <jose.souza at intel.com>
Cc: Alan Previn <alan.previn.teres.alexis at intel.com>
Cc: Matthew Brost <matthew.brost at intel.com>
Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
Cc: John Harrison <John.C.Harrison at Intel.com>
Daniele Ceraolo Spurio (13):
drm/xe/pxp: Initialize PXP structure and KCR reg
drm/xe/pxp: Allocate PXP execution resources
drm/xe/pxp: Add VCS inline termination support
drm/xe/pxp: Add GSC session invalidation support
drm/xe/pxp: Handle the PXP termination interrupt
drm/xe/pxp: Add GSC session initialization support
drm/xe/pxp: Add PXP queue tracking and session start
drm/xe/pxp/uapi: Add userspace and LRC support for PXP-using queues
drm/xe/pxp/uapi: Add a query for PXP status
drm/xe/pxp/uapi: Add API to mark a BO as using PXP
drm/xe/pxp: add PXP PM support
drm/xe/pxp: Add PXP debugfs support
drm/xe/pxp: Enable PXP for MTL and LNL
drivers/gpu/drm/xe/Makefile | 3 +
drivers/gpu/drm/xe/abi/gsc_pxp_commands_abi.h | 41 +
.../xe/compat-i915-headers/pxp/intel_pxp.h | 16 +-
drivers/gpu/drm/xe/display/intel_bo.c | 2 +-
.../gpu/drm/xe/instructions/xe_instr_defs.h | 1 +
.../gpu/drm/xe/instructions/xe_mfx_commands.h | 28 +
.../gpu/drm/xe/instructions/xe_mi_commands.h | 5 +
drivers/gpu/drm/xe/regs/xe_engine_regs.h | 1 +
drivers/gpu/drm/xe/regs/xe_irq_regs.h | 8 +
drivers/gpu/drm/xe/regs/xe_pxp_regs.h | 23 +
drivers/gpu/drm/xe/xe_bo.c | 98 +-
drivers/gpu/drm/xe/xe_bo.h | 5 +
drivers/gpu/drm/xe/xe_bo_types.h | 6 +
drivers/gpu/drm/xe/xe_debugfs.c | 3 +
drivers/gpu/drm/xe/xe_device.c | 6 +
drivers/gpu/drm/xe/xe_device_types.h | 8 +-
drivers/gpu/drm/xe/xe_exec.c | 6 +
drivers/gpu/drm/xe/xe_exec_queue.c | 60 +-
drivers/gpu/drm/xe/xe_exec_queue.h | 5 +
drivers/gpu/drm/xe/xe_exec_queue_types.h | 8 +
drivers/gpu/drm/xe/xe_execlist.c | 2 +-
drivers/gpu/drm/xe/xe_irq.c | 20 +-
drivers/gpu/drm/xe/xe_lrc.c | 18 +-
drivers/gpu/drm/xe/xe_lrc.h | 7 +-
drivers/gpu/drm/xe/xe_pci.c | 4 +
drivers/gpu/drm/xe/xe_pm.c | 39 +-
drivers/gpu/drm/xe/xe_pxp.c | 902 ++++++++++++++++++
drivers/gpu/drm/xe/xe_pxp.h | 35 +
drivers/gpu/drm/xe/xe_pxp_debugfs.c | 120 +++
drivers/gpu/drm/xe/xe_pxp_debugfs.h | 13 +
drivers/gpu/drm/xe/xe_pxp_submit.c | 588 ++++++++++++
drivers/gpu/drm/xe/xe_pxp_submit.h | 22 +
drivers/gpu/drm/xe/xe_pxp_types.h | 135 +++
drivers/gpu/drm/xe/xe_query.c | 29 +
drivers/gpu/drm/xe/xe_ring_ops.c | 4 +-
drivers/gpu/drm/xe/xe_vm.c | 165 +++-
drivers/gpu/drm/xe/xe_vm.h | 8 +
drivers/gpu/drm/xe/xe_vm_types.h | 1 +
include/uapi/drm/xe_drm.h | 94 +-
39 files changed, 2497 insertions(+), 42 deletions(-)
create mode 100644 drivers/gpu/drm/xe/instructions/xe_mfx_commands.h
create mode 100644 drivers/gpu/drm/xe/regs/xe_pxp_regs.h
create mode 100644 drivers/gpu/drm/xe/xe_pxp.c
create mode 100644 drivers/gpu/drm/xe/xe_pxp.h
create mode 100644 drivers/gpu/drm/xe/xe_pxp_debugfs.c
create mode 100644 drivers/gpu/drm/xe/xe_pxp_debugfs.h
create mode 100644 drivers/gpu/drm/xe/xe_pxp_submit.c
create mode 100644 drivers/gpu/drm/xe/xe_pxp_submit.h
create mode 100644 drivers/gpu/drm/xe/xe_pxp_types.h
--
2.43.0
More information about the Intel-xe
mailing list