Terminology

The following terms are used throughout the SMMUMAN documentation.

DMA
Direct Memory Access
Guest
A guest is an OS running in a QNX Hypervisor qvm process; this process presents the virtual machine (VM) in which the guest runs.
Guest-physical address
A memory address in guest-physical memory (see “Guest-physical memory” below).
Guest-physical memory
The memory assembled for a VM by the qvm process that creates and configures the VM. ARM calls this assembled memory intermediate physical memory; Intel calls it guest physical memory. For simplicity, regardless of the platform, we will use the term Bugnion, Nieh and Tsafrir use in Hardware and Software Support for Virtualization (Morgan & Claypool, 2017): “guest-physical memory”, and the corresponding term: “guest-physical address”.
Host
Either the development host (the desktop or laptop, which you can connect to your target system to load a new image or debug), or the hypervisor host domain.
Host-physical address
A memory address in host-physical memory (see “Host-physical memory” below).
Host-physical memory
The physical memory; this is the memory seen by the hypervisor host, or any other entity running in a non-virtualized environment. (see Guest-physical memory above).
Hypervisor
A microkernel that includes virtualization extensions. In a QNX environment, these extensions are enabled by adding the module=qvm directive in a QNX buildfile.
IOMMU
Input/Output Memory Management Unit. A memory management unit (MMU) that connects a DMA–capable I/O bus to the main memory. Like a traditional MMU, which translates CPU-visible intermediate addresses to physical addresses, an IOMMU maps device-visible intermediate addresses (also called device addresses or I/O addresses in this context) to physical addresses. This mapping ensures that DMA devices cannot interact with memory outside their bounded areas.
IPMMU
Intellectual Property MMU. IOMMU on Renesas R-Car platforms.
QNX Hypervisor
The running instance of a QNX hypervisor.
Reserved memory region
A reserved memory region is a region in memory required by the specification for a particular device, typically to hold some information such as tables the device needs in order to operate. Unless you specify otherwise, the smmuman service looks after these regions (see smmu_obj_create_flags in the SMMUMAN Client API Reference chapter).
Note: A reserved memory region is not the same as a memory area you map to a SMMU object.
SMMU
System Memory Management Unit. An ARM implementation of an IOMMU.
VT-d
Intel Virtualization Technology for Directed I/O (VT-d) is an Intel implementation of an IOMMU.