[PATCH v2 00/12] Add PXP HWDRM support
Daniele Ceraolo Spurio
daniele.ceraolospurio at intel.com
Fri Aug 16 19:00:09 UTC 2024
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.
v2: code cleaned up and fixed while coming out of RFC, addressed review
feedback in regards to the interface.
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 (12):
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 spport for PXP-using queues
drm/xe/pxp: add a query for PXP status
drm/xe/pxp: 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 | 40 +
.../xe/compat-i915-headers/pxp/intel_pxp.h | 14 +-
.../gpu/drm/xe/instructions/xe_instr_defs.h | 1 +
.../gpu/drm/xe/instructions/xe_mfx_commands.h | 29 +
.../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_gt_regs.h | 8 +
drivers/gpu/drm/xe/regs/xe_pxp_regs.h | 23 +
drivers/gpu/drm/xe/xe_bo.c | 100 ++-
drivers/gpu/drm/xe/xe_bo.h | 5 +
drivers/gpu/drm/xe/xe_bo_types.h | 3 +
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 | 61 +-
drivers/gpu/drm/xe/xe_exec_queue.h | 5 +
drivers/gpu/drm/xe/xe_exec_queue_types.h | 8 +
drivers/gpu/drm/xe/xe_hw_engine.c | 2 +-
drivers/gpu/drm/xe/xe_irq.c | 20 +-
drivers/gpu/drm/xe/xe_lrc.c | 16 +-
drivers/gpu/drm/xe/xe_lrc.h | 7 +-
drivers/gpu/drm/xe/xe_pci.c | 4 +
drivers/gpu/drm/xe/xe_pm.c | 42 +-
drivers/gpu/drm/xe/xe_pxp.c | 738 ++++++++++++++++++
drivers/gpu/drm/xe/xe_pxp.h | 33 +
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 | 572 ++++++++++++++
drivers/gpu/drm/xe/xe_pxp_submit.h | 22 +
drivers/gpu/drm/xe/xe_pxp_types.h | 123 +++
drivers/gpu/drm/xe/xe_query.c | 32 +
drivers/gpu/drm/xe/xe_ring_ops.c | 4 +-
drivers/gpu/drm/xe/xe_vm.c | 170 +++-
drivers/gpu/drm/xe/xe_vm.h | 8 +
drivers/gpu/drm/xe/xe_vm_types.h | 1 +
include/uapi/drm/xe_drm.h | 94 ++-
38 files changed, 2307 insertions(+), 43 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