[PATCH v4 5/8] drm/xe/guc: Bump minimum required GuC version to v70.36.0
John Harrison
john.c.harrison at intel.com
Thu Jan 30 20:04:07 UTC 2025
On 1/29/2025 02:16, Riana Tauro wrote:
> The VF API version for this release is 1.17.1
>
> Bump the minimum required version to v70.36.0 to support
> engine activity.
We can only bump the minimum recommended version, not the required version.
>
> Suggested-by: John Harrison <John.C.Harrison at Intel.com>
> Signed-off-by: Riana Tauro <riana.tauro at intel.com>
> ---
> drivers/gpu/drm/xe/xe_uc_fw.c | 28 ++++++++++++++--------------
> 1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c b/drivers/gpu/drm/xe/xe_uc_fw.c
> index 18e06ee9e23f..d9ff285c5d1d 100644
> --- a/drivers/gpu/drm/xe/xe_uc_fw.c
> +++ b/drivers/gpu/drm/xe/xe_uc_fw.c
> @@ -108,17 +108,17 @@ struct fw_blobs_by_type {
>
> #define XE_GUC_FIRMWARE_DEFS(fw_def, mmp_ver, major_ver) \
> fw_def(PANTHERLAKE, mmp_ver(xe, guc, ptl, 70, 38, 1)) \
> - fw_def(BATTLEMAGE, major_ver(xe, guc, bmg, 70, 29, 2)) \
> - fw_def(LUNARLAKE, major_ver(xe, guc, lnl, 70, 29, 2)) \
> - fw_def(METEORLAKE, major_ver(i915, guc, mtl, 70, 29, 2)) \
> - fw_def(PVC, mmp_ver(xe, guc, pvc, 70, 29, 2)) \
> - fw_def(DG2, major_ver(i915, guc, dg2, 70, 29, 2)) \
> - fw_def(DG1, major_ver(i915, guc, dg1, 70, 29, 2)) \
> - fw_def(ALDERLAKE_N, major_ver(i915, guc, tgl, 70, 29, 2)) \
> - fw_def(ALDERLAKE_P, major_ver(i915, guc, adlp, 70, 29, 2)) \
> - fw_def(ALDERLAKE_S, major_ver(i915, guc, tgl, 70, 29, 2)) \
> - fw_def(ROCKETLAKE, major_ver(i915, guc, tgl, 70, 29, 2)) \
> - fw_def(TIGERLAKE, major_ver(i915, guc, tgl, 70, 29, 2))
> + fw_def(BATTLEMAGE, major_ver(xe, guc, bmg, 70, 36, 0)) \
> + fw_def(LUNARLAKE, major_ver(xe, guc, lnl, 70, 36, 0)) \
> + fw_def(METEORLAKE, major_ver(i915, guc, mtl, 70, 36, 0)) \
> + fw_def(PVC, mmp_ver(xe, guc, pvc, 70, 36, 0)) \
> + fw_def(DG2, major_ver(i915, guc, dg2, 70, 36, 0)) \
> + fw_def(DG1, major_ver(i915, guc, dg1, 70, 36, 0)) \
> + fw_def(ALDERLAKE_N, major_ver(i915, guc, tgl, 70, 36, 0)) \
> + fw_def(ALDERLAKE_P, major_ver(i915, guc, adlp, 70, 36, 0)) \
> + fw_def(ALDERLAKE_S, major_ver(i915, guc, tgl, 70, 36, 0)) \
> + fw_def(ROCKETLAKE, major_ver(i915, guc, tgl, 70, 36, 0)) \
> + fw_def(TIGERLAKE, major_ver(i915, guc, tgl, 70, 36, 0))
This part is technically fine, but note that we have just discovered an
issue with recent GuC releases which means we need to wait for a bug fix
before updating.
Also note that the purpose of the minor/patch version numbers in this
table is just to provide a notice to the user that they should update.
So after the update to 70.36.0, if a user boots a LNL with 70.29.2, they
will get a line in dmesg saying "please update". But the driver will
still load and run with no negative effects.
>
> #define XE_HUC_FIRMWARE_DEFS(fw_def, mmp_ver, no_ver) \
> fw_def(PANTHERLAKE, mmp_ver(xe, huc, ptl, 10, 2, 1)) \
> @@ -320,9 +320,9 @@ static int guc_read_css_info(struct xe_uc_fw *uc_fw, struct uc_css_header *css)
>
> xe_gt_assert(gt, uc_fw->type == XE_UC_FW_TYPE_GUC);
>
> - /* We don't support GuC releases older than 70.29.2 */
> - if (MAKE_GUC_VER_STRUCT(*release) < MAKE_GUC_VER(70, 29, 2)) {
> - xe_gt_err(gt, "Unsupported GuC v%u.%u.%u! v70.29.2 or newer is required\n",
> + /* We don't support GuC releases older than 70.36.0 */
> + if (MAKE_GUC_VER_STRUCT(*release) < MAKE_GUC_VER(70, 36, 0)) {
> + xe_gt_err(gt, "Unsupported GuC v%u.%u.%u! v70.36.0 or newer is required\n",
This is definitely not allowed.
Once a GuC has been released for a given platform, it must be supported
forever on that platform. Which means that LNL and BMG must forever be
able to run on 70.29.2.
If we really need to, we can add a per platform variant of this check
for new platforms. E.g. PTL must be at least 70.39.42 or whatever. But
we can't ever change the Xe global base line version. And there isn't
much point in adding a new platform baseline because we just don't push
the firmware upstream for new platforms until we are ready to do an
official release. So there simply aren't any other versions available to
warrant a baseline version check.
Rather than bumping the baseline here, individual features must check
for a suitable GuC version. Which is what you have in patch #3 - the
check for GUC_VER(1.14.1). That ensures that the new feature will not
try to run if a new enough GuC is not available on the user's system.
John.
> release->major, release->minor, release->patch);
> return -EINVAL;
> }
More information about the Intel-xe
mailing list