<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt;"><div>Thank you for the fix! This worked around the issue and disabled PXP,<br>which allowed our virtual machine to boot.<br><br>Tested-by: Valentine Burley <<a target="_blank" href="mailto:valentine.burley@collabora.com">valentine.burley@collabora.com</a>><br></div><div><br></div><div class="zmail_extra_hr" style="border-top: 1px solid rgb(204, 204, 204); height: 0px; margin-top: 10px; margin-bottom: 10px; line-height: 0px;"><br></div><div class="zmail_extra" data-zbluepencil-ignore="true"><div><br></div><div id="Zm-_Id_-Sgn1">---- On Wed, 16 Jul 2025 01:00:02 +0200 <b>Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com></b> wrote ---<br></div><div><br></div><blockquote id="blockquote_zmail" style="margin: 0px;"><div>The PXP flow requires us to communicate with CSME, which we do via a <br>mei component. Since the mei component binding is async and can take <br>a bit to complete, we don't wait for it during i915 load. If userspace <br>queries the state before the async binding is complete, we return an <br>"init in progress" state, with the expectation that it will eventually <br>transition to "init complete" if the CSME device is functional. <br> <br>Mesa CI is flashing a custom coreboot on their Chromebooks that hides <br>the CSME device, which means that we never transition to the "init <br>complete" state. While from an interface POV it is not incorrect to not <br>end up in "init complete" if the CSME is missing, we can mitigate the <br>impact of this by simply checking if the CSME device is available at <br>all before attempting to initialize PXP. <br> <br>Reported-by: Valentine Burley <<a target="_blank" href="mailto:valentine.burley@collabora.com">valentine.burley@collabora.com</a>> <br>Closes: <a target="_blank" href="https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14516">https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14516</a> <br>Signed-off-by: Daniele Ceraolo Spurio <<a target="_blank" href="mailto:daniele.ceraolospurio@intel.com">daniele.ceraolospurio@intel.com</a>> <br>Cc: Rodrigo Vivi <<a target="_blank" href="mailto:rodrigo.vivi@intel.com">rodrigo.vivi@intel.com</a>> <br>Cc: Alexander Usyskin <<a target="_blank" href="mailto:alexander.usyskin@intel.com">alexander.usyskin@intel.com</a>> <br>Cc: Alan Previn <<a target="_blank" href="mailto:alan.previn.teres.alexis@intel.com">alan.previn.teres.alexis@intel.com</a>> <br>--- <br> drivers/gpu/drm/i915/i915_module.c | 1 + <br> drivers/gpu/drm/i915/pxp/intel_pxp.c | 5 +++++ <br> 2 files changed, 6 insertions(+) <br> <br>diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c <br>index 5862754c662c..07118a1ea14d 100644 <br>--- a/drivers/gpu/drm/i915/i915_module.c <br>+++ b/drivers/gpu/drm/i915/i915_module.c <br>@@ -126,3 +126,4 @@ MODULE_AUTHOR("Intel Corporation"); <br> <br> MODULE_DESCRIPTION(DRIVER_DESC); <br> MODULE_LICENSE("GPL and additional rights"); <br>+ <br>diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c <br>index c077a1c464cf..e476c1d82c2f 100644 <br>--- a/drivers/gpu/drm/i915/pxp/intel_pxp.c <br>+++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c <br>@@ -2,6 +2,7 @@ <br> /* <br> * Copyright(c) 2020 Intel Corporation. <br> */ <br>+#include <linux/mei_me.h> <br> #include <linux/workqueue.h> <br> <br> #include "gem/i915_gem_context.h" <br>@@ -203,6 +204,10 @@ int intel_pxp_init(struct drm_i915_private *i915) <br> if (intel_gt_is_wedged(to_gt(i915))) <br> return -ENOTCONN; <br> <br>+ /* iGPUs require CSME to be available to use PXP */ <br>+ if (!IS_DGFX(i915) && !mei_me_device_present()) <br>+ return -ENODEV; <br>+ <br> /* <br> * NOTE: Get the ctrl_gt before checking intel_pxp_is_supported since <br> * we still need it if PXP's backend tee transport is needed. <br>-- <br>2.43.0 <br> <br></div></blockquote></div><div><br></div></div><br></body></html>