All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Huang, Sean Z" <sean.z.huang@intel.com>
To: Intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [RFC-v2 01/26] drm/i915/pxp: Introduce Intel PXP component
Date: Fri, 20 Nov 2020 16:35:15 -0800	[thread overview]
Message-ID: <20201121003540.24980-2-sean.z.huang@intel.com> (raw)
In-Reply-To: <20201121003540.24980-1-sean.z.huang@intel.com>

PXP (Protected Xe Path) is an i915 componment, that
helps user space to establish the hardware protected session and
manage the status of each alive software session, as well as
the life cycle of each session.

By design PXP will expose ioctl so allow user space to create, set,
and destroy each session. It will also provide the communication
chanel to TEE (Trusted Execution Environment) for the protected
hardware session creation.

Signed-off-by: Huang, Sean Z <sean.z.huang@intel.com>
---
 drivers/gpu/drm/i915/Makefile        |  4 ++++
 drivers/gpu/drm/i915/i915_drv.c      |  4 ++++
 drivers/gpu/drm/i915/i915_drv.h      |  4 ++++
 drivers/gpu/drm/i915/pxp/intel_pxp.c | 18 ++++++++++++++++++
 drivers/gpu/drm/i915/pxp/intel_pxp.h | 22 ++++++++++++++++++++++
 5 files changed, 52 insertions(+)
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index e5574e506a5c..8274fea96009 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -254,6 +254,10 @@ i915-y += \
 
 i915-y += i915_perf.o
 
+# Protected execution platform (PXP) support
+i915-y += \
+	pxp/intel_pxp.o
+
 # Post-mortem debug and GPU hang state capture
 i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
 i915-$(CONFIG_DRM_I915_SELFTEST) += \
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index f2389ba49c69..c8b9c42fcbd6 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -889,6 +889,8 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (ret)
 		goto out_cleanup_gem;
 
+	intel_pxp_init(i915);
+
 	i915_driver_register(i915);
 
 	enable_rpm_wakeref_asserts(&i915->runtime_pm);
@@ -938,6 +940,8 @@ void i915_driver_remove(struct drm_i915_private *i915)
 	/* Flush any external code that still may be under the RCU lock */
 	synchronize_rcu();
 
+	intel_pxp_uninit(i915);
+
 	i915_gem_suspend(i915);
 
 	drm_atomic_helper_shutdown(&i915->drm);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 15be8debae54..f34ed07a68ee 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -105,6 +105,8 @@
 
 #include "intel_region_lmem.h"
 
+#include "pxp/intel_pxp.h"
+
 /* General customization:
  */
 
@@ -1215,6 +1217,8 @@ struct drm_i915_private {
 	/* Mutex to protect the above hdcp component related values. */
 	struct mutex hdcp_comp_mutex;
 
+	struct intel_pxp pxp;
+
 	I915_SELFTEST_DECLARE(struct i915_selftest_stash selftest;)
 
 	/*
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c
new file mode 100644
index 000000000000..bc19024e43f0
--- /dev/null
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright(c) 2020 Intel Corporation.
+ */
+
+#include "i915_drv.h"
+#include "intel_pxp.h"
+
+int intel_pxp_init(struct drm_i915_private *i915)
+{
+	drm_info(&i915->drm, "i915 PXP is inited with i915=[%p]\n", i915);
+
+	return 0;
+}
+
+void intel_pxp_uninit(struct drm_i915_private *i915)
+{
+}
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.h b/drivers/gpu/drm/i915/pxp/intel_pxp.h
new file mode 100644
index 000000000000..d92b9bbcef2e
--- /dev/null
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright(c) 2020, Intel Corporation. All rights reserved.
+ */
+
+#ifndef __INTEL_PXP_H__
+#define __INTEL_PXP_H__
+
+#include <drm/drm_file.h>
+
+struct pxp_context;
+
+struct intel_pxp {
+	struct pxp_context *ctx;
+};
+
+struct drm_i915_private;
+
+int intel_pxp_init(struct drm_i915_private *i915);
+void intel_pxp_uninit(struct drm_i915_private *i915);
+
+#endif
-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2020-11-21  0:35 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-21  0:35 [Intel-gfx] [RFC-v2 00/26] Introduce Intel PXP component Huang, Sean Z
2020-11-21  0:35 ` Huang, Sean Z [this message]
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 02/26] drm/i915/pxp: Enable PXP irq worker and callback stub Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 03/26] drm/i915/pxp: Add PXP context for logical hardware states Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 04/26] drm/i915/pxp: set KCR reg init during the boot time Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 05/26] drm/i915/pxp: Implement ioctl action to set the user space context Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 06/26] drm/i915/pxp: Add PXP-related registers into allowlist Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 07/26] drm/i915/pxp: Read register to check hardware session state Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 08/26] drm/i915/pxp: Implement funcs to get/set PXP tag Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 09/26] drm/i915/pxp: Implement ioctl action to reserve session slot Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 10/26] drm/i915/pxp: Implement ioctl action to set session in play Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 11/26] drm/i915/pxp: Func to send hardware session termination Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 12/26] drm/i915/pxp: Implement ioctl action to terminate the session Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 13/26] drm/i915/pxp: Enable ioctl action to query PXP tag Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 14/26] drm/i915/pxp: Destroy all type0 sessions upon teardown Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 15/26] drm/i915/pxp: Termiante the session upon app crash Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 16/26] drm/i915/pxp: Enable PXP power management Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 17/26] drm/i915/pxp: Implement funcs to create the TEE channel Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 18/26] drm/i915/pxp: Implement ioctl action to send TEE commands Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 19/26] drm/i915/pxp: Create the arbitrary session after boot Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 20/26] drm/i915/pxp: Add i915 trace logs for PXP operations Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 21/26] drm/i915/pxp: Expose session state for display protection flip Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 22/26] mei: pxp: export pavp client to me client bus Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 23/26] drm/i915/uapi: introduce drm_i915_gem_create_ext Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 24/26] drm/i915/pxp: User interface for Protected buffer Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 25/26] drm/i915/pxp: Add plane decryption support Huang, Sean Z
2020-11-21  0:35 ` [Intel-gfx] [RFC-v2 26/26] drm/i915/pxp: Enable the PXP ioctl for protected session Huang, Sean Z
2020-11-21  0:55 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Introduce Intel PXP component Patchwork
2020-11-21  1:25 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2020-11-23 16:20 ` [Intel-gfx] [RFC-v2 00/26] " Jani Nikula

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201121003540.24980-2-sean.z.huang@intel.com \
    --to=sean.z.huang@intel.com \
    --cc=Intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.