SMMUMAN Architecture
This chapter presents the architecture of the SMMUMAN, and its responsibilities and behavior.
The QNX System Memory Management Unit Manager (SMMUMAN) is a system memory management unit (IOMMU/SMMU) manager that runs on the ARM and x86 board architectures. This manager makes use of the DMA containment and memory-management features when they're available on supported boards.
On ARM platforms, IOMMU/SMMU components are usually called System Memory
Management Units
(SMMUs); on Intel x86 platforms, this technology is
usually called Virtualization Technology for Directed I/O
(VT-d).
In this document we use IOMMU/SMMU
to refer to the component on any
supported hardware platform, unless referring to a component for a specific
architecture or board, exclusive of other architectures or boards. In this case,
we use the architecture-specific or board-specific acronym (e.g., VT-d
(Intel x86), SMMU
(ARM), IPMMU
(ARM: Renesas R-Car boards)).
Supported board architectures and required hardware
The SMMUMAN can run on ARM or x86 platforms. If it is running in a guest in a hypervisor VM, that VM must be configured to present the functional equivalent of the underlying hardware platform to its guest.
ARM
- System Memory Management Unit (SMMU), or equivalent (e.g., IPMMU on Renesas R-Car boards)
x86
- Virtualization Technology for Directed I/O (VT-d)
Supported OSs
- the QNX OS running directly on hardware
- the QNX OS with the virtualization extension, running directly on hardware as a hypervisor host (QNX Hypervisor)
- the QNX OS running as a guest in a QNX Hypervisor VM
- the QNX OS for Safety running directly on hardware
- the QNX OS for Safety with the virtualization extension, running directly on hardware as a hypervisor host (QNX Hypervisor for Safety (QHS))
- the QNX OS running as a guest in QHS VM
- the QNX OS for Safety running as a guest in a QHS VM
Design Safe State (DSS)
When the SMMUMAN or any of its components meets an unknown or undefined condition, it attempts to enter its Design Safe State (DSS). This DSS is to exit.