STRUCT RISCV_IOMMU_COMMAND(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct riscv_iommu_command(9) πŸ’…

okay bestie, welcome to the Kernel API Manual entry for struct riscv_iommu_command β€” yes that's the whole title, she's a long one, we love her anyway 🫢


✨ NAME ✨

struct riscv_iommu_command β€” the generic IOMMU command structure. that's it. that's the vibe. πŸŽ€


🌸 SYNOPSIS 🌸

here's the whole glow-up, literally the entire struct:

struct riscv_iommu_command {
    u64 dword0;
    u64 dword1;
 };

two u64s. that's the main character energy right there. no cap. πŸ’–


πŸ¦‹ Members πŸ¦‹

  • dword0 β€” this one's got the opcode AND the function identifier living inside it. she contains multitudes ✨
  • dword1 β€” and this one's the opcode specific data. whatever the opcode wants, she provides πŸŽ€

πŸ’€ Description πŸ’€

okay so here's the tea πŸ“ β€” these commands get interpreted as two 64bit fields. and the layout? iconic, honestly:

  • the first 7 bits of the first field are the opcode, and that opcode also defines the command's format (so like, the opcode is basically the vibe-setter for the whole thing πŸ‘‘)
  • then right after comes a 3bit field that specifies the function invoked by that command
  • and the rest? opcode-specific. mystery. intrigue. iykyk πŸ’…

so this is a generic struct β€” she's a blank canvas that gets populated differently according to each command. no two commands fill her in the same way fr fr 🌈

and if you want more infos on the commands and the command queue, go check section 3.1. that's where the lore lives πŸ“–βœ¨


🧚 SEE ALSO 🧚

the whole friend group, in order, no one left out 🫢:

  • Kernel file ./drivers/iommu/riscv/iommu-bits.h enum
  • riscv_iommu_igs_settings(9)
  • enum riscv_iommu_ddtp_modes(9)
  • enum riscv_iommu_hpmevent_id(9)
  • struct riscv_iommu_dc(9)
  • enum riscv_iommu_dc_iohgatp_modes(9)
  • enum riscv_iommu_dc_fsc_atp_modes(9)
  • struct riscv_iommu_pc(9)
  • struct riscv_iommu_fq_record(9)
  • enum riscv_iommu_fq_causes(9)
  • enum riscv_iommu_fq_ttypes(9)
  • struct riscv_iommu_pq_record(9)
  • struct riscv_iommu_msipte(9)

lowkey a reminder bestie: it's giving "generic," so don't go assuming she behaves the same for every command β€” the format is defined by the opcode, periodt πŸ’…

and that's the page!! 🌸 sourced from ./drivers/iommu/riscv, dated October 2026 β€” mwah, go read some more manpages, ily, bye πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from