ASAravind Sivakumaran
Theme

Theme and appearance

Appearance
Palette

Pick any colour. The displayed accent adjusts for readable contrast in light or dark mode.

← IOMMU star map

ARCHITECTURE / ENGINEERING WORKBENCH

From raw bits to a checked path.

Decode the evidence. Change the state. Check what the device was actually allowed to do.

AMD 48882 rev 3.11 and Arm IHI 0070 H.a are separate architectural baselines. These browser models explain selected rules.

What claims does this page make? 3 points
Packed codec · semantic effects explained

1 / Read the sixteen bytes

All ten AMD command headers and fourteen event families, including enhanced invalid-device and PPR response variants. Bytes are shown in memory order, least significant byte first. This inspector does not submit commands to hardware.

Named fields

    
              

    Reserved-bit rejection, unsupported capability, ignored field and software protocol restriction are different diagnoses. A decoded event is evidence, not a command to repair or retry the request. Use the semantic command and halt/restart lab.

    Publish → fetch → complete

    Queues the raw command edited above into the existing serial buffer model. The decoded range and identifiers remain visible; effects use one selected synthetic cache scope. This does not claim range-expansion, physical completion stores or a real PCIe fabric.

    
            

    Publication, local invalidation, remote acknowledgment and completion are separate observations. This fixture withholds the acknowledgment indefinitely: the wait stays pending and page reuse stays unsafe. It does not model the configured InvTimeOut recovery path (IOTLB_INV_TIMEOUT); the virtual-IOMMU chapter models that one. A finished command never counts as a verified endpoint invalidation. Completion wait supplies no missing invalidation; its f bit controls subsequent command launch. Use the Faults & recovery chapter for halt/disable/repair/restart. RESET_VMMIO marks the guest context for reconfiguration.

    PASID capability versus missing context

    
          
    Executable semantic backend · Arm H.a

    2 / Walk an independent Arm path

    Stall mode represents an on-chip client. PCIe streams must use Terminate; PRI is a separate endpoint request/response protocol. This profile assumes event recording is enabled.

    Linear StreamID selection, one CD per configured stream, non-secure 48-bit addresses and 4 KiB granule. Stage-1 pages and stage-2 blocks retain offsets. STE/CD words and 32-byte EVTQ records are semantic here; advanced memory attributes, HTTU and security extensions remain reference-only.

      Translate a request to begin.

      Commands finish in explicit steps

      CFGI updates configuration visibility; TLBI invalidates translations; CMD_SYNC establishes the modelled completion point. Repairing backing alone changes neither cache.

      CMD_RESUME uses the oldest pending StreamID/STAG in this fixture. CMD_PRI_RESP uses the consumed PRI group instead. Neither is interchangeable.

      
              
      Export or replay this scenario

      The JSON includes the initial fixture, ordered actions and observed evidence. Import validates and replays in an isolated model before replacing the current lab.

      3 / Registers and dual logs

      Selected register semantics

      Acknowledge is not repair

      
                  

      RO writes retain state. RW1C clears only written ones. PCI capability Enable is RW1S and locks the base until reset. Unimplemented fields are rejected by a software guard, not a fabricated hardware event.

      One engine · two banks

      Follow an actual autoswap

      
                  

      Eight slots per bank illustrate pointer ownership; these are not legal hardware allocation sizes. A full old bank gets its overflow bit when the next record spills into the alternate bank. Drain and clear it before reuse. PPR auto-response and early warning are unavailable in autoswap mode.

      Choose an operation.

      Program the queue, respect its owner

      Focused register programming with legal geometry. AMD pointers are byte offsets; Arm pointers combine entry index and wrap. Unsafe software writes are rejected by this teaching guard without fabricating an architectural event.

      
              

      Arm CR0 writes and CR0ACK observations are separate. Direct enable/disable buttons perform both steps. GERRORN must match GERROR; repairing the offending command remains a separate action in the Arm execution lab. AMD HEAD/TAIL are RW registers with state-dependent ownership, not universally RO. This panel has no real memory backing; record contents and overflow recovery live in the adjacent queue labs.

      32 / 128-bit codecs · x2APIC · semantic delivery

      4 / An interrupt is a different request

      
              

      Vector 81 → destination 2 is the default basic remap.

      Editing fields prepares an entry; publish it to change backing memory, then deliver to inspect caching. For x2APIC, destination bits 23:0 occupy IRTE bits 31:8 and destination bits 31:24 occupy bits 127:120. GAEn is required even with GuestMode=0. Guest IsRun, destination, GALogIntr, GAPPIDis and GATag are not cached. The vector and backing-page root require invalidation.

      Try RemapEn=0, index 8, an unaligned guest root, or disabled x2APIC prerequisites. In guest mode a pending virtual IRR bit survives GA-log overflow and draining. Three GA records is a teaching capacity. Reset recovers this fixture’s overflow; the Command & event buffers chapter shows the full halt/restart sequence. GAPPIDis is reserved in this selected profile. APIC bus delivery, EOI, GAPPI and SNP AVIC are reference-only. Arm GIC/ITS interrupt translation is separate from SMMUv3.

      Synthetic topology · no hardware probe

      5 / Did this traffic cross your protection unit?

        Every path uses the same intended deny policy. The selected routing assumptions determine whether that policy is reached. Peer routing, requester aliases and ACS depend on the platform (see IOMMU groups & ACS); they are not universal bypass claims.

        Software lifecycle · Lenovo 2021 context

        6 / From driver mapping to hardware DMA

          Drivers use the DMA API; the hardware does not call Linux functions. CPU/device cache ownership is distinct from IOMMU translation invalidation. The layer boundaries are illustrated by Lenovo LP1467; exact kernel helper names and call chains vary by release.

          Coverage you can inspect

          Scope labels distinguish a packed codec, executable semantic state, reference-only features and hardware evidence. A current specification baseline does not imply every optional capability exists.

          Feature Capability / source Coverage

          H.a §2.10 permits constrained adoption of next-version features. This selector shows when features were introduced, not a substitute for reading implemented IDR capabilities.

          AMD 3.10 → 3.11

          3.11 adds or clarifies conditional CXL fields, secure device-table fetch evidence, enhanced invalid-device records, RMP evidence, virtual-IOMMU recovery and SEV-TIO. Read the detailed revision comparison. Historical 3.10 execution is not emulated.

          H.a §§4.1.3/4.1.5 permit unspecified command RES0 fields to be ignored or detected. The RES0 selector represents that implementation policy; unknown opcodes remain illegal. Scenario JSON accepts expected or allowed_outcomes, with outcome_sources documenting the relevant clauses.

          Inspect an Arm event record

          Exact 32-byte layouts for ten H.a event types, using a non-secure base-feature profile. Unknown values and unsupported advanced fields remain visible. RnW=1 means read; this is different from AMD RW=1 meaning write.

          
                  

          Implementation coverage

          Download machine-readable coverage and source registry. Executable codec means packed bytes can be encoded/decoded; semantic means a bounded teaching state machine.

          Feature Status Scope Source

          References and limits

          No real MMIO, device DMA, memory poison, firmware security flow or CPU memory-barrier timing is exercised. The C++ download remains the existing AMD DMA model; these new JavaScript scenarios are not claimed as C++ features.