From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5CAC76E869 for ; Tue, 18 May 2021 10:33:48 +0000 (UTC) From: Alan Previn Date: Tue, 18 May 2021 03:33:29 -0700 Message-Id: <20210518103344.2264397-3-alan.previn.teres.alexis@intel.com> In-Reply-To: <20210518103344.2264397-1-alan.previn.teres.alexis@intel.com> References: <20210518103344.2264397-1-alan.previn.teres.alexis@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 02/17] Add PXP UAPI support in i915_drm.h List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Alan Previn List-ID: At the time of this commit, PXP hasnt been merged into upstream kernel so this has no kernel tag reference yet Signed-off-by: Alan Previn --- include/drm-uapi/i915_drm.h | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h index d9fbf218..e67e3e5c 100644 --- a/include/drm-uapi/i915_drm.h +++ b/include/drm-uapi/i915_drm.h @@ -1743,6 +1743,26 @@ struct drm_i915_gem_context_param { * Default is 16 KiB. */ #define I915_CONTEXT_PARAM_RINGSIZE 0xc + +/* + * I915_CONTEXT_PARAM_PROTECTED_CONTENT: + * + * Mark that the context makes use of protected content, which will result + * in the context being invalidated when the protected content session is. + * This flag can only be set at context creation time and, when set to true, + * must be preceded by an explicit setting of I915_CONTEXT_PARAM_RECOVERABLE + * to false. This flag can't be set to true in conjunction with setting the + * I915_CONTEXT_PARAM_BANNABLE flag to false. + * + * Given the numerous restriction on this flag, there are several unique + * failure cases: + * + * -ENODEV: feature not available + * -EEXIST: trying to modify an existing context + * -EPERM: trying to mark a recoverable or not bannable context as protected + * -EACCES: submitting an invalidated context for execution + */ +#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd /* Must be kept compact -- no holes and well documented */ __u64 value; @@ -1973,6 +1993,12 @@ struct drm_i915_reg_read { struct drm_i915_reset_stats { __u32 ctx_id; __u32 flags; + /* + * contexts marked as using protected content are invalidated when the + * protected content session dies. Submission of invalidated contexts + * is rejected with -EACCES. + */ +#define I915_CONTEXT_INVALIDATED 0x1 /* All resets since boot/module reload, for all contexts */ __u32 reset_count; @@ -2645,6 +2671,7 @@ struct drm_i915_gem_create_ext { * struct drm_i915_gem_create_ext_memory_regions. */ #define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0 +#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1 __u64 extensions; }; @@ -2702,6 +2729,31 @@ struct drm_i915_gem_create_ext_memory_regions { __u64 regions; }; +/* + * I915_OBJECT_PARAM_PROTECTED_CONTENT: + * + * If set to true, buffer contents is expected to be protected by PXP + * encryption and requires decryption for scan out and processing. This is + * only possible on platforms that have PXP enabled, on all other scenarios + * setting this flag will cause the ioctl to fail and return -ENODEV. + * + * The buffer contents are considered invalid after a PXP session teardown. + * It is recommended to use protected buffers only with contexts created + * using the I915_CONTEXT_PARAM_PROTECTED_CONTENT flag, as that will enable + * extra checks at submission time on the validity of the objects involved, + * which can lead to the following errors: + * + * -ENODEV: PXP session not currently active + * -EIO: buffer has become invalid after a teardown event + */ +struct drm_i915_gem_create_ext_protected_content { + struct i915_user_extension base; + __u32 flags; +}; + +/* ID of the protected content session managed by i915 when PXP is active */ +#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf + #if defined(__cplusplus) } #endif -- 2.25.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev