[igt-dev] [PATCH i-g-t 02/17] Add PXP UAPI support in i915_drm.h

Teres Alexis, Alan Previn alan.previn.teres.alexis at intel.com
Thu Jun 3 00:50:59 UTC 2021


Okay - will do. 

On Wed, 2021-06-02 at 16:10 -0400, Rodrigo Vivi wrote:
> On Tue, May 18, 2021 at 03:33:29AM -0700, Alan Previn wrote:
> > At the time of this commit, PXP hasnt been merged into
> > upstream kernel so this has no kernel tag reference yet
> 
> chicken egg issue right, but probably better to kill this patch
> and sync directly when merging, right after the kernel merged.
> 
> > Signed-off-by: Alan Previn <alan.previn.teres.alexis at intel.com>
> > ---
> >  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 at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list