[RFC 00/14] Add PXP HWDRM support
Souza, Jose
jose.souza at intel.com
Tue Jul 16 20:39:22 UTC 2024
On Fri, 2024-07-12 at 14:28 -0700, Daniele Ceraolo Spurio wrote:
> 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 and that the encryption is
> valid and that no execution happens with an outdated encryption.
>
> RFC: The series is in a decent state and all my local tests are working
> on MTL, but I'm seeing failures on LNL; those are currently trending to
> being issues with the contents of the test batch, but I didn't want to
> hold the series back until I was sure of that because there are a couple
> of choices I made where I'd like feedback, so sending it as a RFC so I
> can get that feedback while I complete the debug. The 2 areas in which
> I'd like feedback are:
>
> 1) VM/BO changes:
> - PXP requires PPGTT submissions from inside the driver, which isn't
> currently supported. I've hooked it up (patch 3), but I'd like an
> expert eye to confirm I didn't do anything stupid.
> - We need to reject submissions using VMs with mapped invalid BOs.
> I've done this by checking all mapped BOs for PXP submissions
> (patch 11), but I'm open to ideas on how to do this differently.
>
> 2) API: as mentioned above, I've kept this flexible. Just wanted to
> confirm no one had anything against the approach. See patches 9-11.
Other then the comment in patch 10 uAPI looks good.
>
> 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>
>
> Daniele Ceraolo Spurio (14):
> drm/xe: Make exec_queue_kill safe to call twice
> 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 hooks to mark an exec queue as using PXP
> drm/xe/pxp: Add API to mark a queue as using PXP
> 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
>
> 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 | 48 +-
> drivers/gpu/drm/xe/xe_exec_queue.h | 5 +
> drivers/gpu/drm/xe/xe_exec_queue_types.h | 7 +
> drivers/gpu/drm/xe/xe_hw_engine.c | 2 +-
> drivers/gpu/drm/xe/xe_irq.c | 20 +-
> drivers/gpu/drm/xe/xe_lrc.c | 14 +-
> drivers/gpu/drm/xe/xe_lrc.h | 7 +-
> drivers/gpu/drm/xe/xe_pci.c | 3 +
> drivers/gpu/drm/xe/xe_pm.c | 42 +-
> drivers/gpu/drm/xe/xe_pxp.c | 713 ++++++++++++++++++
> drivers/gpu/drm/xe/xe_pxp.h | 32 +
> 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 | 549 ++++++++++++++
> drivers/gpu/drm/xe/xe_pxp_submit.h | 20 +
> drivers/gpu/drm/xe/xe_pxp_types.h | 103 +++
> drivers/gpu/drm/xe/xe_query.c | 33 +
> drivers/gpu/drm/xe/xe_ring_ops.c | 4 +-
> drivers/gpu/drm/xe/xe_vm.c | 148 +++-
> drivers/gpu/drm/xe/xe_vm.h | 8 +
> drivers/gpu/drm/xe/xe_vm_types.h | 1 +
> include/uapi/drm/xe_drm.h | 83 +-
> 38 files changed, 2190 insertions(+), 40 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
>
More information about the Intel-xe
mailing list