ENUM RISCV_IOMMU_FQ_TTYPES(9)
π enum riscv_iommu_fq_ttypes(9) β Fault/event transaction types
okay so bestie, welcome to the Kernel API Manual β¨ this one's a little enum from the RISC-V IOMMU corner of the kernel, and honestly? it's giving "labels for why your transaction got cancelled" π let's get into it.
β¨ NAME β¨
enum riscv_iommu_fq_ttypes β Fault/event transaction types π
πΈ SYNOPSIS πΈ
enum riscv_iommu_fq_ttypes {
RISCV_IOMMU_FQ_TTYP_NONE ,
RISCV_IOMMU_FQ_TTYP_UADDR_INST_FETCH ,
RISCV_IOMMU_FQ_TTYP_UADDR_RD ,
RISCV_IOMMU_FQ_TTYP_UADDR_WR ,
RISCV_IOMMU_FQ_TTYP_TADDR_INST_FETCH ,
RISCV_IOMMU_FQ_TTYP_TADDR_RD ,
RISCV_IOMMU_FQ_TTYP_TADDR_WR ,
RISCV_IOMMU_FQ_TTYP_PCIE_ATS_REQ ,
RISCV_IOMMU_FQ_TTYP_PCIE_MSG_REQ
};
π¦ Constants π¦
bestie these are the members, one by one, no skips, we love a complete list π
RISCV_IOMMU_FQ_TTYP_NONEβ None, periodt. This fault was not caused by an inbound transaction πRISCV_IOMMU_FQ_TTYP_UADDR_INST_FETCHβ Instruction fetch from an untranslated address πRISCV_IOMMU_FQ_TTYP_UADDR_RDβ Read from an untranslated address πRISCV_IOMMU_FQ_TTYP_UADDR_WRβ Write/AMO to an untranslated address βοΈRISCV_IOMMU_FQ_TTYP_TADDR_INST_FETCHβ Instruction fetch from a translated address π§RISCV_IOMMU_FQ_TTYP_TADDR_RDβ Read from a translated address πRISCV_IOMMU_FQ_TTYP_TADDR_WRβ Write/AMO to a translated address π₯RISCV_IOMMU_FQ_TTYP_PCIE_ATS_REQβ PCIe ATS translation request βRISCV_IOMMU_FQ_TTYP_PCIE_MSG_REQβ PCIe message request π
π Description π
so these values live on table 12 of the spec β iconic behavior ngl. heads up tho: type 4 and 10 - 31 are reserved for standard use, and 31 - 63 for custom use π«Ά
lowkey important: those reserved ranges are exactly as written in the spec, so don't go inventing your own numbers in there, bestie π
π SEE ALSO π
the kernel file is ./drivers/iommu/riscv/iommu-bits.h β that's the enum's home, go say hi πΈ
and the whole friend group π«Ά: 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_command(9), struct riscv_iommu_fq_record(9), enum riscv_iommu_fq_causes(9), struct riscv_iommu_pq_record(9), struct riscv_iommu_msipte(9)
and that's the page, mwah π this lil cutie came from ./drivers/iommu/riscv, dated October 2026, and it's filed under enum riscv_iommu_fq_ttypes(9) β go read the other ones too, iykyk π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms