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 provides the following services:
- IOMMU/SMMU services
- The vdev 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
- The vdev 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 access to host-physical memory by pass-through
DMA devices.
CAUTION:
On ARM platforms, to run the smmuman service, a hypervisor
guest must load libfdt.so, so make sure you include this
shared object in the guest's buildfile. Note, though, that the
libfdt library is certified for internal use only.
You must use this library only 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 OS documentation.