vdev smmu

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.