SMMU
System Memory Management Unit (SMMU) is a hardware component that provides address translation and memory protection for devices that perform direct memory access (DMA). In ARM-based systems, the SMMU is a form of an I/O memory management unit (IOMMU), responsible for translating device-visible addresses to physical memory addresses and enforcing access permissions.
An SMMU sits between I/O devices and system memory and uses translation tables to map addresses. It
In ARM architectures, the SMMU commonly implements Stage 1 and Stage 2 translations. Stage 1 translates the
Use cases include enabling DMA for PCIe endpoints, graphics processing units, and network interfaces while maintaining
Relation to CPUs and other IOMMUs: the SMMU is distinct from the CPU’s MMU, operating specifically on