• Tushar Dave's avatar
    sparc64: Add ATU (new IOMMU) support · f0248c15
    Tushar Dave authored
    ATU (Address Translation Unit) is a new IOMMU in SPARC supported with
    Hypervisor IOMMU v2 APIs.
    
    Current SPARC IOMMU supports only 32bit address ranges and one TSB
    per PCIe root complex that has a 2GB per root complex DVMA space
    limit. The limit has become a scalability bottleneck nowadays that
    a typical 10G/40G NIC can consume 300MB-500MB DVMA space per
    instance. When DVMA resource is exhausted, devices will not be usable
    since the driver can't allocate DVMA.
    
    ATU removes bottleneck by allowing guest os to create IOTSB of size
    32G (or more) with 64bit address ranges available in ATU HW. 32G is
    more than enough DVMA space to be shared by all PCIe devices under
    root complex contrast to 2G space provided by legacy IOMMU.
    
    ATU allows PCIe devices to use 64bit DMA addressing. Devices
    which choose to use 32bit DMA mask will continue to work with the
    existing legacy IOMMU.
    Signed-off-by: default avatarTushar Dave <tushar.n.dave@oracle.com>
    Reviewed-by: default avatarchris hyser <chris.hyser@oracle.com>
    Acked-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f0248c15
pci_sun4v_asm.S 6.52 KB