• Russell Currey's avatar
    powerpc/powernv/pci: Enable 64-bit devices to access >4GB DMA space · 8e3f1b1d
    Russell Currey authored
    On PHB3/POWER8 systems, devices can select between two different sections
    of address space, TVE#0 and TVE#1.  TVE#0 is intended for 32bit devices
    that aren't capable of addressing more than 4GB.  Selecting TVE#1 instead,
    with the capability of addressing over 4GB, is performed by setting bit 59
    of a PCI address.
    
    However, some devices aren't capable of addressing at least 59 bits, but
    still want more than 4GB of DMA space.  In order to enable this, reconfigure
    TVE#0 to be suitable for 64-bit devices by allocating memory past the
    initial 4GB that is inaccessible by 64-bit DMAs.
    
    This bypass mode is only enabled if a device requests 4GB or more of DMA
    address space, if the system has PHB3 (POWER8 systems), and if the device
    does not share a PE with any devices from different vendors.
    Signed-off-by: default avatarRussell Currey <ruscur@russell.cc>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    8e3f1b1d
pci-ioda.c 108 KB