Quoting Daniele Ceraolo Spurio (2021-02-06 02:09:18) > From: "Huang, Sean Z" <sean.z.huang@xxxxxxxxx> > > Create the arbitrary session, with the fixed session id 0xf, after > system boot, for the case that application allocates the protected > buffer without establishing any protection session. Because the > hardware requires at least one alive session for protected buffer > creation. This arbitrary session will need to be re-created after > teardown or power event because hardware encryption key won't be > valid after such cases. > > The session ID is exposed as part of the uapi so it can be used as part > of userspace commands. > > Signed-off-by: Huang, Sean Z <sean.z.huang@xxxxxxxxx> > Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> > --- > drivers/gpu/drm/i915/Makefile | 1 + > drivers/gpu/drm/i915/pxp/intel_pxp.c | 2 + > drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 82 +++++++++++++++ > drivers/gpu/drm/i915/pxp/intel_pxp_session.h | 16 +++ > drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 104 +++++++++++++++++++ > drivers/gpu/drm/i915/pxp/intel_pxp_tee.h | 3 + > drivers/gpu/drm/i915/pxp/intel_pxp_types.h | 6 ++ > include/uapi/drm/i915_drm.h | 4 + > 8 files changed, 218 insertions(+) > create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c > create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index f0ba95a2e4fc..8519abcf6515 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -271,6 +271,7 @@ i915-y += i915_perf.o > # Protected execution platform (PXP) support > i915-$(CONFIG_DRM_I915_PXP) += \ > pxp/intel_pxp.o \ > + pxp/intel_pxp_session.o \ > pxp/intel_pxp_tee.o > > # Post-mortem debug and GPU hang state capture > diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c > index 3f3eeadb7931..916187a0e566 100644 > --- a/drivers/gpu/drm/i915/pxp/intel_pxp.c > +++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c > @@ -62,6 +62,8 @@ void intel_pxp_init(struct intel_pxp *pxp) > if (!HAS_PXP(gt->i915)) > return; > > + mutex_init(&pxp->mutex); > + > kcr_pxp_enable(gt); > > ret = create_vcs_context(pxp); > diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_session.c b/drivers/gpu/drm/i915/pxp/intel_pxp_session.c > new file mode 100644 > index 000000000000..1ee608341b7a > --- /dev/null > +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_session.c > @@ -0,0 +1,82 @@ > +// SPDX-License-Identifier: MIT > +/* > + * Copyright(c) 2020, Intel Corporation. All rights reserved. > + */ > + > +#include "drm/i915_drm.h" > +#include "i915_drv.h" > + > +#include "intel_pxp.h" > +#include "intel_pxp_session.h" > +#include "intel_pxp_tee.h" > +#include "intel_pxp_types.h" > + > +#define ARB_SESSION I915_PROTECTED_CONTENT_DEFAULT_SESSION /* shorter define */ > + > +#define GEN12_KCR_SIP _MMIO(0x32260) /* KCR hwdrm session in play 0-31 */ > + > +static bool intel_pxp_session_is_in_play(struct intel_pxp *pxp, u32 id) > +{ > + struct intel_gt *gt = pxp_to_gt(pxp); > + intel_wakeref_t wakeref; > + u32 sip = 0; > + > + with_intel_runtime_pm(>->i915->runtime_pm, wakeref) gt->uncore->rpm -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx