Skip to main content

Module scalable

Module scalable 

Source
Expand description

Scalable translation structures (VT-d Rev 4.1, §§3.4.3, 9.2, 9.4-9.6).

These are formats, not a scalable-mode lookup implementation. The validators describe the second-stage-only profile: 39/48-bit walks, pass-through, 16-bit domain IDs, CM=0, RID_PASID, second-stage A/D, page-walk snooping and snoop control. First-stage/nested translation, memory types, explicit PASID, ATS, PRI and supervisor requests are unsupported. Defining this profile does not advertise or enable any of its capabilities.

Validate only entries used by a request. Not-present entries ignore all fields except FPD (where defined). Callers must retain the original request’s IOVA/source ID, accumulate context/directory/table FPD even on not-present entries, and apply it only to qualified faults (Table 26, §7.1.3). Format errors alone do not determine fault qualification.

Structs§

PasidDirectoryEntry
Scalable PASID-directory entry (§9.5), 64 bits.
PasidTableEntry
Scalable PASID-table entry (§9.6), 512 bits.
PasidTableEntryFirstStage
PASID-table bits 191:128.
PasidTableEntryHi
PASID-table bits 127:64.
PasidTableEntryLo
PASID-table bits 63:0.
PasidTranslationType
PASID granular translation type (PGTT, §9.6).
ScalableContextEntry
Scalable context entry (§9.4), 256 bits.
ScalableContextEntryHi
Scalable context bits 127:64.
ScalableContextEntryLo
Scalable context bits 63:0.
ScalableRootEntry
Scalable root entry (§9.2), indexed by the bus number.
ScalableRootEntryHalf
One 64-bit half of a scalable root entry (§9.2).

Enums§

ScalableValidationError
Validation failure in a scalable translation structure.

Constants§

PASID_TABLE_ENTRIES
Entries in each 4KB PASID table.
SCALABLE_CONTEXT_TABLE_ENTRIES
Entries in each 4KB lower/upper context table.

Functions§

pasid_directory_entries
Decode PDTS without truncating or shifting by an unchecked guest value.