Skip to main content

Module ivrs

Module ivrs 

Source
Expand description

IVRS (I/O Virtualization Reporting Structure) : AMD IOMMU ACPI table.

Defines the structures and parser for the ACPI IVRS table (signature IVRS), which describes AMD IOMMU hardware units, their capabilities, and which PCI devices they serve.

Reference: AMD I/O Virtualization Technology (IOMMU) Specification, revisions 3.00+ (sections 3.1–3.4). https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/specifications/48882_IOMMU.pdf

§Table layout

┌──────────────────────────────┐
│  SDT header ("IVRS")         │ 48 B (standard ACPI)
├──────────────────────────────┤
│  IVInfo (u16)                │
│  Reserved (u8)               │
│  Flags (u8)                  │
│  Total length (u16)          │
│  Device entry count (u16)    │
│  Entry offset (u16)          │
├──────────────────────────────┤
│  IVHD block (Type 0x10/11)   │ variable
│  ├── header                  │
│  ├── device entries ...      │
│  └── padding                 │
├──────────────────────────────┤
│  IVMD block (Type 0x20/22)   │ variable
└──────────────────────────────┘

Structs§

IvhdBlock
Parsed IVHD (I/O Virtualization Hardware Definition) block.
IvhdDevEntryIter
Iterator over device entries inside an IVHD block.
IvhdDeviceEntry
A device entry inside an IVHD block.
IvhdFlags
IVHD block flags.
IvmdBlock
IVMD (I/O Virtualisation Memory Definition) block.
Ivrs
Top-level IVRS table wrapper.
IvrsEntryIter
Iterator over IVHD/IVMD blocks and device entries therein.
IvrsHeader
Fixed header of the IVRS ACPI table (AMD IOMMU).
RawDevEntryHdr 🔒
Raw header common to all device entry types.
RawIvhdCommon 🔒
Common prefix of all IVHD headers (20 bytes, shared by type 0x10 and 0x11).
RawIvhdTail11 🔒
Raw IVHD type 0x11 (extended) appends an MMIO base after the common prefix.
RawIvmd 🔒
Raw IVMD block header : 24 bytes.

Enums§

IvhdType
IVHD (I/O Virtualization Hardware Definition) block type.
IvrsBlock
A block inside the IVRS table: either an IVHD (IOMMU definition) or an IVMD (reserved memory definition).

Constants§

IVRS_SIGNATURE
ACPI signature for the IVRS table.

Functions§

decode_dev_entry_type 🔒
Decode a device entry type to determine size, range-ness, and ext data.