STRUCT DRM_XE_QUERY_UC_FW_VERSION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct drm_xe_query_uc_fw_version β€” NAME ✨

okay so bestie, this is struct drm_xe_query_uc_fw_version from the Kernel API Manual (the manual name is right there in the header, we're not copying that whole line, we're better than that πŸ’–) β€” and it does exactly one iconic thing: query a micro-controller firmware version. that's it. that's the whole job. and it ate. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole struct, character for character, no cap:

struct drm_xe_query_uc_fw_version {
  #define XE_QUERY_UC_TYPE_GUC_SUBMISSION 0;
  #define XE_QUERY_UC_TYPE_HUC 1;
    __u16 uc_type;
    __u16 pad;
    __u32 branch_ver;
    __u32 major_ver;
    __u32 minor_ver;
    __u32 patch_ver;
    __u32 pad2;
    __u64 reserved;
 };

🌸 Members 🌸

okay let's meet the cast, because every single one of these field names is a whole personality:

  • uc_type β€” the micro-controller type you wanna query the firmware version for πŸ‘‘ (this is the main character of the struct, honestly)
  • pad β€” MBZ. that's it. MBZ. (you know what MBZ means, bestie β€” must be zero, do not touch, it's giving "reserved parking spot" πŸš—)
  • branch_ver β€” the branch uc fw version 🌿
  • major_ver β€” the major uc fw version ⭐
  • minor_ver β€” the minor uc fw version πŸ¦‹
  • patch_ver β€” the patch uc fw version 🩹
  • pad2 β€” MBZ again. also must be zero. also do not touch. twice the padding, twice the discipline πŸ’…
  • reserved β€” Reserved. literally its whole job is to sit there and be reserved πŸ™ˆ

✨ Description ✨

so the way this works: you hand it a uc_type, and it hands you back the branch, major, minor and patch version of the micro-controller firmware. that's the whole flow. very "give me one thing, get four things" of it. πŸ”₯

fr fr though β€” this is the classic "you ask politely with one field, it answers with the receipts" situation, and honestly? iconic.

πŸ’œ SEE ALSO πŸ’œ

grab a snack, because this list is LONG and we are NOT skipping a single one of these, bestie. every single reference, in order, exactly as it appears:

Kernel file ./include/uapi/drm/xe_drm.h β€” and then: Xe Device Block Diagram(9), Xe uAPI Overview(9), Xe IOCTL Extensions(9), struct drm_xe_user_extension(9), struct drm_xe_ext_set_property(9), struct drm_xe_engine_class_instance(9), struct drm_xe_engine(9), struct drm_xe_query_engines(9), enum drm_xe_memory_class(9), struct drm_xe_mem_region(9), struct drm_xe_query_mem_regions(9), struct drm_xe_query_config(9), struct drm_xe_gt(9), struct drm_xe_query_gt_list(9), struct drm_xe_query_topology_mask(9), struct drm_xe_query_engine_cycles(9), struct drm_xe_query_pxp_status(9), struct drm_xe_device_query(9), struct drm_xe_gem_create(9), struct drm_xe_gem_mmap_offset(9), struct drm_xe_vm_create(9), struct drm_xe_vm_destroy(9), struct drm_xe_vm_bind_op(9), struct drm_xe_vm_bind(9), struct drm_xe_vm_get_property(9), struct drm_xe_exec_queue_create(9), struct drm_xe_exec_queue_destroy(9), struct drm_xe_exec_queue_get_property(9), struct drm_xe_sync(9), struct drm_xe_exec(9), struct drm_xe_wait_user_fence(9), enum drm_xe_observation_type(9), enum drm_xe_observation_op(9), struct drm_xe_observation_param(9), enum drm_xe_observation_ioctls(9), enum drm_xe_oa_unit_type(9), struct drm_xe_oa_unit(9), struct drm_xe_query_oa_units(9), enum drm_xe_oa_format_type(9), enum drm_xe_oa_property_id(9), struct drm_xe_oa_config(9), struct drm_xe_oa_stream_status(9), struct drm_xe_oa_stream_info(9), enum drm_xe_pxp_session_type(9), enum drm_xe_eu_stall_property_id(9), struct drm_xe_query_eu_stall(9), struct drm_xe_madvise(9), struct drm_xe_mem_range_attr(9), struct drm_xe_vm_query_mem_range_attr(9), struct drm_xe_exec_queue_set_property(9), Xe DRM RAS(9), enum drm_xe_ras_error_severity(9), enum drm_xe_ras_error_component(9).

like I said. LONG. but we read all of them. we're thorough like that. 🫢


ok and that's the whole page, bestie!! this one lives at ./include/uapi/drm and the source date on it is October 2026 β€” so yeah, shoutout to ./include/uapi/drm, October 2026, and the struct drm_...c_fw_version(9) footer energy that brought us here. mwah πŸ’‹ go query some firmware versions responsibly πŸ’–βœ¨πŸŽ€
πŸ“¦ where this page comes from