ENUM RISCV_IOMMU_DDTP_MODES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ enum riscv_iommu_ddtp_modes(9) ✨

okay bestie, welcome to the manpage for enum riscv_iommu_ddtp_modes(9) β€” that's the kernel API doc for this little enum that tells the RISC-V IOMMU how it should be translating stuff. It's giving "translation mode selector" energy and honestly it ate πŸ’…


πŸŽ€ NAME πŸŽ€

enum riscv_iommu_ddtp_modes β€” IOMMU translation modes. that's literally it. the vibes menu for how your IOMMU does its thing ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the shape of the whole enum, copied exactly so you can trust me fr fr:

enum riscv_iommu_ddtp_modes {
    RISCV_IOMMU_DDTP_IOMMU_MODE_OFF ,
    RISCV_IOMMU_DDTP_IOMMU_MODE_BARE ,
    RISCV_IOMMU_DDTP_IOMMU_MODE_1LVL ,
    RISCV_IOMMU_DDTP_IOMMU_MODE_2LVL ,
    RISCV_IOMMU_DDTP_IOMMU_MODE_3LVL ,
    RISCV_IOMMU_DDTP_IOMMU_MODE_MAX

};

like, look at her. six constants. main character lineup 🌈


πŸ’– Constants πŸ’–

okay so let's do a vibe check on each one, in order, no skipping (i would never πŸ™ˆ):

  • RISCV_IOMMU_DDTP_IOMMU_MODE_OFF β€” no inbound transactions allowed. that's it, doors closed, we're not accepting visitors 😭
  • RISCV_IOMMU_DDTP_IOMMU_MODE_BARE β€” pass-through mode. no translation, just vibes, come on through 🫢
  • RISCV_IOMMU_DDTP_IOMMU_MODE_1LVL β€” one-level DDT. single layer, lowkey simple ✨
  • RISCV_IOMMU_DDTP_IOMMU_MODE_2LVL β€” two-level DDT. now we're stacking πŸŽ€
  • RISCV_IOMMU_DDTP_IOMMU_MODE_3LVL β€” three-level DDT. three layers, highkey extra πŸ’…
  • RISCV_IOMMU_DDTP_IOMMU_MODE_MAX β€” the max value allowed by specification. the ceiling, the limit, the final boss πŸ‘‘

πŸ‘‘ SEE ALSO πŸ‘‘

bestie, there is SO much more lore where this came from. the kernel file is ./drivers/iommu/riscv/iommu-bits.h (that's the enum source, iykyk) and you're gonna want to go read these next:

  • enum riscv_iommu_igs_settings(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)
  • enum riscv_iommu_fq_ttypes(9)
  • struct riscv_iommu_pq_record(9)
  • struct riscv_iommu_msipte(9)

ngl, this page is short but it's iconic. six modes, one enum, zero notes. periodt πŸ’œ

and that's the whole thing, bestie β€” big slay, no cap 🌸

signing off from ./drivers/iommu/riscv, dated October 2026, brought to you by the enum riscv_iommu_ddtp_modes(9) manual page πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from