Skip to content

ARM SMMU v3 event queue interrupt storm causes system freezes on Orange Pi 6 Plus (CIX Sky1) #129

Description

@ErcinDedeoglu

Summary

The Orange Pi 6 Plus (CIX Sky1/CD8180) suffers from an ARM SMMU v3 interrupt storm that causes system freezes, SSH hangs, and network unresponsiveness — requiring hard power cycles to recover.

Root Cause

The UEFI firmware's ACPI IORT tables define a 2-level stream table for SMMU instance 0 (0x0b010000) that only covers 25 of 32 bits of the Stream ID space. Every PCIe DMA transaction generates a spurious event 0x07 (C_BAD_STREAMID), producing ~130 IRQs/sec on CPU0. This eventually starves the network stack.

All PCIe devices are affected:

  • 0x0100 — Intel BE200 Wi-Fi 7
  • 0x3100 / 0x6100 — Realtek RTL8126 5GbE Ethernet
  • 0x9100 / 0xC100 — NVMe SSDs

Tested on BIOS v1.3 and v1.4 — both affected.

Workaround

We developed a fix that disables the SMMU event queue (clearing EVTQEN bit in CR0 register at 0x0b010020) via devmem2, applied at boot via a systemd service. All PCIe devices and DMA continue working normally.

Firmware Fix Needed

The IORT tables need to be corrected to either expand the stream table to cover the full Stream ID range, add proper STE mappings for all PCIe root ports, or configure identity mapping for PCIe devices at the firmware level.

Full Details & Fix

Complete diagnosis, technical analysis, and installable fix:
https://github.com/ErcinDedeoglu/orangepi-6plus-cix-sky1-smmu-fix

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions