[Intel-xe] [PATCH 2/2] drm/xe/huc: Macro support for loading unversiond HuC
Srivatsa, Anusha
anusha.srivatsa at intel.com
Tue Mar 21 17:57:54 UTC 2023
> -----Original Message-----
> From: Roper, Matthew D <matthew.d.roper at intel.com>
> Sent: Tuesday, March 21, 2023 8:51 AM
> To: Srivatsa, Anusha <anusha.srivatsa at intel.com>
> Cc: intel-xe at lists.freedesktop.org; De Marchi, Lucas
> <lucas.demarchi at intel.com>
> Subject: Re: [Intel-xe] [PATCH 2/2] drm/xe/huc: Macro support for loading
> unversiond HuC
>
> On Mon, Mar 20, 2023 at 04:52:54PM -0700, Anusha Srivatsa wrote:
> > Follow the new direction of firmware and add macro support for loading
> > unversioned HuC.
> >
> > Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> > Signed-off-by: Anusha Srivatsa <anusha.srivatsa at intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_uc_fw.c | 16 +++++++++++++---
> > 1 file changed, 13 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c
> > b/drivers/gpu/drm/xe/xe_uc_fw.c index e2e5f7fbe9db..3c522d970228
> > 100644
> > --- a/drivers/gpu/drm/xe/xe_uc_fw.c
> > +++ b/drivers/gpu/drm/xe/xe_uc_fw.c
> > @@ -50,7 +50,7 @@ static struct xe_device *uc_fw_to_xe(struct xe_uc_fw
> *uc_fw)
> > fw_def(DG1, 0, guc_def(dg1, 70, 5, 2)) \
> > fw_def(TIGERLAKE, 0, guc_def(tgl, 70, 5, 2))
> >
> > -#define XE_HUC_FIRMWARE_DEFS(fw_def, huc_def) \
> > +#define XE_HUC_FIRMWARE_DEFS(fw_def, huc_raw, huc_def) \
>
> Why do we still need the old versioned filename? Can't we get rid of it
> completely? There's no backwards compatibility necessary on Xe yet so this is
> our chance to eliminate the version numbers on HuC completely.
> It's not clear to me why we're still using huc_def instead of huc_raw below
> either.
Yes makes sense. Will remove the versioned support.
> > fw_def(DG1, 0, huc_def(dg1, 7, 9, 3)) \
> > fw_def(TIGERLAKE, 0, huc_def(tgl, 7, 9, 3))
> >
> > @@ -59,6 +59,10 @@ static struct xe_device *uc_fw_to_xe(struct xe_uc_fw
> *uc_fw)
> > __stringify(prefix_) "_" name_ "_" \
> > __stringify(major_) ".bin"
> >
> > +#define __MAKE_UC_FW_BLANK_PATH(prefix_, name_) \
>
> Nit: "UNVERSIONED" may be better than "BLANK."
Hmmm, if that is going to the norm anyway then just MAKE_UC_FW_PATH should suffice?
Anusha
>
> Matt
>
> > + "i915/" \
> > + __stringify(prefix_) "_" name_ ".bin"
> > +
> > #define __MAKE_UC_FW_PATH(prefix_, name_, major_, minor_, patch_) \
> > "i915/" \
> > __stringify(prefix_) name_ \
> > @@ -72,12 +76,15 @@ static struct xe_device *uc_fw_to_xe(struct
> > xe_uc_fw *uc_fw) #define MAKE_HUC_FW_PATH(prefix_, major_, minor_,
> bld_num_) \
> > __MAKE_UC_FW_PATH(prefix_, "_huc_", major_, minor_, bld_num_)
> >
> > +#define MAKE_HUC_FW_BLANK_PATH(prefix_) \
> > + __MAKE_UC_FW_BLANK_PATH(prefix_, "huc")
> > +
> > /* All blobs need to be declared via MODULE_FIRMWARE() */ #define
> > XE_UC_MODULE_FW(platform_, revid_, uc_) \
> > MODULE_FIRMWARE(uc_);
> >
> > XE_GUC_FIRMWARE_DEFS(XE_UC_MODULE_FW, MAKE_GUC_FW_PATH)
> > -XE_HUC_FIRMWARE_DEFS(XE_UC_MODULE_FW, MAKE_HUC_FW_PATH)
> > +XE_HUC_FIRMWARE_DEFS(XE_UC_MODULE_FW,
> MAKE_HUC_FW_BLANK_PATH,
> > +MAKE_HUC_FW_PATH)
> >
> > /* The below structs and macros are used to iterate across the list
> > of blobs */ struct __packed uc_fw_blob { @@ -93,6 +100,9 @@ struct
> > __packed uc_fw_blob {
> > UC_FW_BLOB(major_, minor_, \
> > MAKE_GUC_FW_PATH(prefix_, major_, minor_, patch_))
> >
> > +#define HUC_FW_BLOB_BLANK(prefix_) \
> > + UC_FW_BLOB(0, 0, MAKE_HUC_FW_BLANK_PATH(prefix_))
> > +
> > #define HUC_FW_BLOB(prefix_, major_, minor_, bld_num_) \
> > UC_FW_BLOB(major_, minor_, \
> > MAKE_HUC_FW_PATH(prefix_, major_, minor_, bld_num_))
> @@ -122,7
> > +132,7 @@ uc_fw_auto_select(struct xe_device *xe, struct xe_uc_fw *uc_fw)
> > XE_GUC_FIRMWARE_DEFS(MAKE_FW_LIST, GUC_FW_BLOB)
> > };
> > static const struct uc_fw_platform_requirement blobs_huc[] = {
> > - XE_HUC_FIRMWARE_DEFS(MAKE_FW_LIST, HUC_FW_BLOB)
> > + XE_HUC_FIRMWARE_DEFS(MAKE_FW_LIST,
> HUC_FW_BLOB_BLANK, HUC_FW_BLOB)
> > };
> > static const struct fw_blobs_by_type
> blobs_all[XE_UC_FW_NUM_TYPES] = {
> > [XE_UC_FW_TYPE_GUC] = { blobs_guc, ARRAY_SIZE(blobs_guc)
> },
> > --
> > 2.25.1
> >
>
> --
> Matt Roper
> Graphics Software Engineer
> Linux GPU Platform Enablement
> Intel Corporation
More information about the Intel-xe
mailing list