Provide the required subset of the smmu-*.so library
functionality needed by a smmuman service running in a QNX Neutrino
OS or QOS guest
Synopsis:
vdev smmu options
Options:
- intr num
- The interrupt number to use to inform the guest that the smmu vdev has
completed the task requested by the guest.
- If you don't specify this option, the qvm process will
automatically assign an interrupt number.
- loc
baddr
- The base address of the request page for this device. If you don't specify
this option, the qvm process will automatically assign a
base address.
For a list of options available to all vdevs, see Common vdev options at the beginning of this
chapter.
Description:
The smmu virtual device:
- IOMMU/SMMU services
- Provides for the guest in a hypervisor VM the same services for
guest-physical memory as an IOMMU/SMMU provides for an OS running on the
hardware: accept configuration information passed to it by the guest’s
smmuman service, deny DMA device attempts to access
memory outside their permitted regions, communicate these denials back to
the devices, record these attempts, etc.
- Memory mapping
- Shares memory mappings for DMA devices passed-through to the guest with the
smmuman service running in the hypervisor host to
ensure that the host smmuman service and the board
IOMMU/SMMUs are able to manage pass-through DMA devices' accesses to
host-physical memory.
Note:
If you don't specify a location or an interrupt number, the
qvm process will automatically assign one.
On ARM platforms, to run the smmuman service, a hypervisor
guest must load libfdt.so. Make sure you include this
shared object in the guest's buildfile.
For more information about the smmuman service and how to use it,
see the SMMUMAN User's Guide in the QNX SDP OS Core Components
documentation.