STRUCT IOMMU_HW_INFO_TEGRA241_CMDQV(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– NAME ๐Ÿ’–

okay bestie, welcome to the Kernel API Manual page for struct iommu_hw_info_tegra241_cmdqv โ€” NVIDIA Tegra241 CMDQV Hardware Information (IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV). yes, the whole name is a mouthful, and no, we are not abbreviating it. periodt. ๐Ÿ’…

โœจ SYNOPSIS โœจ

struct iommu_hw_info_tegra241_cmdqv {
    __u32 flags;
    __u8 version;
    __u8 log2vcmdqs;
    __u8 log2vsids;
    __u8 __reserved;
};

๐ŸŽ€ MEMBERS ๐ŸŽ€

  • flags โ€” must be 0. not optional-zero, not "eh close enough" zero. literally 0. no cap.
  • version โ€” the version number for the CMDQ-V HW, for PARAM bits[03:00]. it's giving "tiny field, important job" energy.
  • log2vcmdqs โ€” log2 of the total number of VCMDQs, for PARAM bits[07:04]. yes bestie, log2. math said pull up. ๐Ÿงฎโœจ
  • log2vsids โ€” log2 of the total number of SID replacements, for PARAM bits[15:12]. iconic little byte, honestly.
  • __reserved โ€” must be 0 too. don't try to be cute with it. ๐Ÿ™ˆ

๐Ÿ’… DESCRIPTION ๐Ÿ’…

so here's the tea: a VMM can use these fields directly in its emulated global PARAM register. main character struct behavior, fr fr. ๐ŸŒŸ

and note this, bestie: only one Virtual Interface (VINTF) should be exposed to a VM. i.e. PARAM bits[11:08] should be set to 0 for log2 of the total number of VINTFs. that's the vibe check. don't overexpose the VINTFs. ๐Ÿ’€

๐ŸŒˆ SEE ALSO ๐ŸŒˆ

the Kernel file is ./include/uapi/linux/iommufd.h, and the whole IOMMU bestie cluster is right here โ€” all of it, no skips, no crumbs:

  • General ioctl format(9)
  • struct iommu_destroy(9)
  • struct iommu_ioas_alloc(9)
  • struct iommu_iova_range(9)
  • struct iommu_ioas_iova_ranges(9)
  • struct iommu_ioas_allow_iovas(9)
  • enum iommufd_ioas_map_flags(9)
  • struct iommu_ioas_map(9)
  • struct iommu_ioas_noiommu_get_pa(9)
  • struct iommu_ioas_map_file(9)
  • struct iommu_ioas_copy(9)
  • struct iommu_ioas_unmap(9)
  • enum iommufd_option(9)
  • enum iommufd_option_ops(9)
  • struct iommu_option(9)
  • enum iommufd_vfio_ioas_op(9)
  • struct iommu_vfio_ioas(9)
  • enum iommufd_hwpt_alloc_flags(9)
  • enum iommu_hwpt_vtd_s1_flags(9)
  • struct iommu_hwpt_vtd_s1(9)
  • struct iommu_hwpt_arm_smmuv3(9)
  • struct iommu_hwpt_amd_guest(9)
  • enum iommu_hwpt_data_type(9)
  • struct iommu_hwpt_alloc(9)
  • enum iommu_hw_info_vtd_flags(9)
  • struct iommu_hw_info_vtd(9)
  • enum iommu_hw_info_arm_smmuv3_flags(9)
  • struct iommu_hw_info_arm_smmuv3(9)
  • struct iommu_hw_info_amd(9)
  • enum iommu_hw_info_type(9)
  • enum iommufd_hw_capabilities(9)
  • enum iommufd_hw_info_flags(9)
  • struct iommu_hw_info(9)
  • struct iommu_hwpt_set_dirty_tracking(9)
  • enum iommufd_hwpt_get_dirty_bitmap_flags(9)
  • struct iommu_hwpt_get_dirty_bitmap(9)
  • enum iommu_hwpt_invalidate_data_type(9)
  • enum iommu_hwpt_vtd_s1_invalidate_flags(9)
  • struct iommu_hwpt_vtd_s1_invalidate(9)
  • struct iommu_viommu_arm_smmuv3_invalidate(9)
  • struct iommu_hwpt_invalidate(9)
  • enum iommu_hwpt_pgfault_flags(9)
  • enum iommu_hwpt_pgfault_perm(9)
  • struct iommu_hwpt_pgfault(9)
  • enum iommufd_page_response_code(9)
  • struct iommu_hwpt_page_response(9)
  • struct iommu_fault_alloc(9)
  • enum iommu_viommu_type(9)
  • struct iommu_viommu_tegra241_cmdqv(9)
  • struct iommu_viommu_alloc(9)
  • struct iommu_vdevice_alloc(9)
  • struct iommu_ioas_change_process(9)
  • enum iommu_veventq_flag(9)
  • struct iommufd_vevent_header(9)
  • enum iommu_veventq_type(9)
  • struct iommu_vevent_arm_smmuv3(9)
  • struct iommu_vevent_tegra241_cmdqv(9)
  • struct iommu_veventq_alloc(9)
  • enum iommu_hw_queue_type(9)
  • struct iommu_hw_queue_alloc(9)

mwah ๐Ÿ’‹ โ€” source ./include/uapi/linux, page version struct iomm...gra241_cmdqv(9), date October 2026. that's the whole Kernel API Manual moment, bestie. ๐Ÿซถโœจ

๐Ÿ“ฆ where this page comes from