All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: "Michael J. Ruhl" <michael.j.ruhl@intel.com>
Cc: <platform-driver-x86@vger.kernel.org>,
	<intel-xe@lists.freedesktop.org>, <hansg@kernel.org>,
	<ilpo.jarvinen@linux.intel.com>, <matthew.brost@intel.com>,
	<thomas.hellstrom@linux.intel.com>, <airlied@gmail.com>,
	<simona@ffwll.ch>, <david.e.box@linux.intel.com>,
	<anoop.c.vijay@intel.com>, <badal.nilawar@intel.com>,
	<matthew.d.roper@intel.com>, <james.ausmus@intel.com>,
	<karthik.poosa@intel.com>
Subject: Re: [PATCH v12 21/21] drm/xe/vsec: Support survivability mode for CRI
Date: Wed, 14 Oct 2026 13:28:10 -0400	[thread overview]
Message-ID: <as-7qpao6I_xfW6e@intel.com> (raw)
In-Reply-To: <20261013214655.3502964-44-michael.j.ruhl@intel.com>

On Tue, Oct 13, 2026 at 02:47:14PM -0700, Michael J. Ruhl wrote:
> For survivability mode, CRI can only support access to the
> PUNIT CRASHLOG PMT function.
> 
> Create a special config to support survivability mode.
> 


Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

but let's refrain for further submissions and wait the base pmt patches
to be merged to Linus tree and propagated to drm-next and drm-xe-next,
then we rebase and resubmit.

Thanks,
Rodrigo.

> Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_survivability_mode.c |  2 ++
>  drivers/gpu/drm/xe/xe_vsec.c               | 34 +++++++++++++++++++++-
>  2 files changed, 35 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c
> index 45d44ebe288b..f08e76d02054 100644
> --- a/drivers/gpu/drm/xe/xe_survivability_mode.c
> +++ b/drivers/gpu/drm/xe/xe_survivability_mode.c
> @@ -19,6 +19,7 @@
>  #include "xe_nvm.h"
>  #include "xe_pcode_api.h"
>  #include "xe_printk.h"
> +#include "xe_soc_remapper.h"
>  #include "xe_vsec.h"
>  
>  /**
> @@ -351,6 +352,7 @@ static int enable_boot_survivability_mode(struct pci_dev *pdev)
>  
>  	xe_heci_gsc_init(xe);
>  
> +	xe_soc_remapper_init(xe);
>  	xe_vsec_init(xe);
>  
>  	if (survivability->fdo_mode) {
> diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
> index 1ed904ec1496..6d4ef9cb9f60 100644
> --- a/drivers/gpu/drm/xe/xe_vsec.c
> +++ b/drivers/gpu/drm/xe/xe_vsec.c
> @@ -101,10 +101,26 @@ static struct intel_vsec_header *cri_capabilities[] = {
>  	NULL
>  };
>  
> +static struct intel_vsec_header cri_survivability_crashlog = {
> +	.rev = 1,
> +	.length = SZ_16,
> +	.id = VSEC_ID_CRASHLOG,
> +	.num_entries = 1,
> +	.entry_size = 6,
> +	.tbir = 0,
> +	.offset = CRI_PMT_OFFSET + CRI_CRASHLOG_PUNIT_DISC_OFFSET,
> +};
> +
> +static struct intel_vsec_header *cri_survivability_capabilities[] = {
> +	&cri_survivability_crashlog,
> +	NULL
> +};
> +
>  enum xe_vsec {
>  	XE_VSEC_UNKNOWN = 0,
>  	XE_VSEC_BMG,
>  	XE_VSEC_CRI,
> +	XE_VSEC_CRI_SURVIVABILITY,
>  };
>  
>  static struct intel_vsec_platform_info xe_vsec_info[] = {
> @@ -116,6 +132,10 @@ static struct intel_vsec_platform_info xe_vsec_info[] = {
>  		.caps = VSEC_CAP_TELEMETRY | VSEC_CAP_CRASHLOG,
>  		.headers = cri_capabilities,
>  	},
> +	[XE_VSEC_CRI_SURVIVABILITY] = {
> +		.caps = VSEC_CAP_CRASHLOG,
> +		.headers = cri_survivability_capabilities,
> +	},
>  	{ }
>  };
>  
> @@ -316,9 +336,10 @@ static void cri_late_bind_probe_work(struct work_struct *work)
>  
>  static bool wait_for_fw(struct xe_device *xe)
>  {
> +	struct xe_survivability *survivability = &xe->survivability;
>  	int retries = VSEC_LATE_BIND_RETRY;  /* wait up to 20 secs */
>  
> -	if (xe->info.platform != XE_CRESCENTISLAND)
> +	if (xe->info.platform != XE_CRESCENTISLAND || survivability->mode)
>  		return true;
>  
>  	while (retries--) {
> @@ -534,6 +555,8 @@ static const int vsec_platforms[] = {
>  
>  static enum xe_vsec get_platform_info(struct xe_device *xe)
>  {
> +	struct xe_survivability *survivability = &xe->survivability;
> +
>  	if (xe->info.platform > XE_CRESCENTISLAND)
>  		return XE_VSEC_UNKNOWN;
>  
> @@ -542,6 +565,9 @@ static enum xe_vsec get_platform_info(struct xe_device *xe)
>  	     xe->info.platform == XE_CRESCENTISLAND))
>  		return XE_VSEC_UNKNOWN;
>  
> +	if (survivability->mode && xe->info.platform == XE_CRESCENTISLAND)
> +		return XE_VSEC_CRI_SURVIVABILITY;
> +
>  	return vsec_platforms[xe->info.platform];
>  }
>  
> @@ -668,6 +694,12 @@ int xe_vsec_init(struct xe_device *xe)
>  		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
>  		break;
>  
> +	case XE_VSEC_CRI_SURVIVABILITY:
> +		xe->pmt.base_offset = CRI_PMT_OFFSET;
> +		info->priv_data = &xe_cri_pmt_cb;
> +		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
> +		break;
> +
>  	default:
>  		drm_err(&xe->drm, "Unsupported platform: %u\n", platform);
>  		return 0;
> -- 
> 2.43.0
> 

  reply	other threads:[~2026-10-14 17:28 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-13 21:46 [PATCH v12 00/21] Crescent Island PMT support Michael J. Ruhl
2026-10-13 21:46 ` [PATCH v12 01/21] platform/x86/intel/pmt: complete pcidev to device update Michael J. Ruhl
2026-10-14 22:34   ` David Box
2026-10-15  8:42     ` Ilpo Järvinen
2026-10-13 21:46 ` [PATCH v12 02/21] platform/x86/intel/pmt: refactor rmw with a return value Michael J. Ruhl
2026-10-13 21:46 ` [PATCH v12 03/21] platform/x86/intel/pmt: refactor rc " Michael J. Ruhl
2026-10-13 21:46 ` [PATCH v12 04/21] platform/x86/intel/pmt: Add register access callbacks Michael J. Ruhl
2026-10-13 21:46 ` [PATCH v12 05/21] platform/x86/intel/pmt: Do not remap when using callbacks Michael J. Ruhl
2026-10-13 21:46 ` [PATCH v12 06/21] drm/xe/vsec: Do not register BMG PMT for VF Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 07/21] drm/xe/vsec: Correct locking order Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 08/21] drm/xe/vsec: Use correct pm state get Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 09/21] drm/xe/vsec: Add DOC text for VSEC Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 10/21] drm/xe/vsec: Support possible hotplug exit Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 11/21] drm/xe/vsec: Refactor BattleMage PMT defines Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 12/21] drm/xe/vsec: Update VSEC probe order Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 13/21] drm/xe/vsec: Add base_offset to allow for more flexibilty Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 14/21] drm/xe/vsec: Support Crescent Island PMT Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 15/21] drm/xe/vsec: Crescent Island PMT decode Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 16/21] drm/xe/vsec: Crescent Island PMT callbacks Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 17/21] drm/xe/vsec: Support late bind fw information Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 18/21] drm/xe/vsec: Add PMT GUID internal access Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 19/21] drm/xe/vsec: Update PMT " Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 20/21] drm/xe/vsec: Refactor platform check Michael J. Ruhl
2026-10-13 21:47 ` [PATCH v12 21/21] drm/xe/vsec: Support survivability mode for CRI Michael J. Ruhl
2026-10-14 17:28   ` Rodrigo Vivi [this message]
2026-10-14 18:09     ` Ruhl, Michael J
2026-10-13 22:50 ` ✗ CI.checkpatch: warning for Crescent Island PMT support (rev14) Patchwork
2026-10-13 22:52 ` ✓ CI.KUnit: success " Patchwork
2026-10-14  3:52 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-14 16:51 ` ✗ Xe.CI.FULL: failure " Patchwork

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=as-7qpao6I_xfW6e@intel.com \
    --to=rodrigo.vivi@intel.com \
    --cc=airlied@gmail.com \
    --cc=anoop.c.vijay@intel.com \
    --cc=badal.nilawar@intel.com \
    --cc=david.e.box@linux.intel.com \
    --cc=hansg@kernel.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=james.ausmus@intel.com \
    --cc=karthik.poosa@intel.com \
    --cc=matthew.brost@intel.com \
    --cc=matthew.d.roper@intel.com \
    --cc=michael.j.ruhl@intel.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=simona@ffwll.ch \
    --cc=thomas.hellstrom@linux.intel.com \
    /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.