Provide the required subset of smmu-*.so library
functionality needed by a smmuman service running in a QNX
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
automatically assigns 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 automatically assigns a
base address.
For a list of options available to all vdevs, see Common vdev options earlier in this chapter.
Description:
The smmu vdev:
- 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
hardware. These services are: accepting configuration information passed in
by the guest’s smmuman service, denying DMA device
attempts to access memory outside the permitted regions, communicating
these denials back to the devices, recording 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. This
ensures that the host smmuman service and the board
IOMMU/SMMUs can 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 automatically assigns 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.
The libfdt library is certified for internal use only.
You must not use this library except where directed by QNX and only in context of that
direction.
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.