[Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
Rodrigo Vivi
rodrigo.vivi at intel.com
Wed Sep 27 17:04:55 UTC 2023
On Tue, Sep 26, 2023 at 04:46:36PM +0000, Souza, Jose wrote:
> On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> > The infrastructure to query GuC firmware version is already in place. It
> > is extended with a new micro-controller type to query the HuC firmware
> > version. It can be used from user space to know if HuC is running.
> >
> > Signed-off-by: Francois Dugast <francois.dugast at intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
> > include/uapi/drm/xe_drm.h | 1 +
> > 2 files changed, 10 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> > index 7a0ffd9a654a..c250ca534bb9 100644
> > --- a/drivers/gpu/drm/xe/xe_query.c
> > +++ b/drivers/gpu/drm/xe/xe_query.c
> > @@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
> > resp.branch_ver = 0;
> > break;
> > }
> > + case XE_QUERY_UC_TYPE_HUC: {
> > + struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
> > +
> > + resp.major_ver = huc->fw.major_ver_found;
> > + resp.minor_ver = huc->fw.minor_ver_found;
> > + resp.patch_ver = huc->fw.patch_ver_found;
>
> Have you confirmed that HuC will not have something like submission version like GuC have?
Nah... GuC is the only complicated fw in our set of fw...
> At least in GuC, when running in SRIOV mode the VFs will not have access to the actual GuC version, that is why it have submission version.
>
> Not sure if providing a complete different firmware version from one kernel version to other would be considered a uAPI break...
hmmm... but now what I'm asking myself is if we shouldn't move the guc one to
have the current loaded firmware and create a special category for the
submission version:
XE_QUERY_UC_TYPE_GUC
XE_QUERY_UC_TYPE_GUC_SUBMISSION
XE_QUERY_UC_TYPE_HUC
But to be really really honest, there's something really fishy on this
submission version. Why the VF cannot read the running firmware and
get the submission version from there?
>
> > + resp.branch_ver = 0;
> > + break;
> > + }
> > default:
> > return -EINVAL;
> > }
> > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > index 84091860c7d2..fe7e83a5bd3e 100644
> > --- a/include/uapi/drm/xe_drm.h
> > +++ b/include/uapi/drm/xe_drm.h
> > @@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
> > struct drm_xe_query_uc_fw_version {
> > /** @uc: The micro-controller type to query firmware version */
> > #define XE_QUERY_UC_TYPE_GUC 0
> > +#define XE_QUERY_UC_TYPE_HUC 1
> > __u16 uc_type;
> >
> > /** @pad: MBZ */
>
More information about the Intel-xe
mailing list