• Grant Grundler's avatar
    [PARISC] Update sba_iommu from parisc tree · 64908ad9
    Grant Grundler authored
    revert use of %%sr0 in fdc asm.
    Thanks to Joel Soete for pointing out this oversight.
    Signed-off-by: default avatarGrant Grundler <grundler@parisc-linux.org>
    
    2.6.14-rc2-pa3 move "sync" outside the main loop that fills IO Pdir.
    Signed-off-by: default avatarGrant Grundler <grundler@parisc-linux.org>
    
    remove explicit use of sr0 in fdc ops.
    Thanks to Joel Soete for reminding me were I added those...
    Signed-off-by: default avatarGrant Grundler <grundler@parisc-linux.org>
    
    2.6.14-rc2-pa2 - make SBA more anal about invalidating pdir entries
    
    Previous code cleared the valid flag a pdir entry but it did NOT
    guarantee this change was visible to the PDIR before writing
    the PCOM register. Ie the SBA could pick up a stale entry if
    the write happened to hit the SBA before the cacheline was flushed
    from the cache.
    
    Long term, I think I want to make this a compile time flag.
    Developement tree should enable anal pdir checking by default
    and Debian can disable it with either a CONFIG option
    or one-line patch. fdc/sync options can only negatively affect
    performance though I haven't measure how much yet.
    If someone can run netperf TCP_RR across gige and compare
    -pa1 and -pa2, that would be sufficient.
    
    Cleaned up the use of "fdc" to make sure it's using "kernel"
    space id (specify sr0 but maps to sr4-7). It seems a bit fragile
    to assume "sr1" gets loaded with KERNEL_SPACE which is how the
    code works today.
    
    Tested on 32 and 64-bit SMP kernels on j6k.
    Signed-off-by: default avatarGrant Grundler <grundler@parisc-linux.org>
    
    remove PDC_NARROW from SBA and document history of PDC_NARROW a bit.
    It will still show up in an older kernel's .config file.
    Signed-off-by: default avatarGrant Grundler <grundler@parisc-linux.org>
    
    if/ifdef cleanups from Joel Soete.
    Signed-off-by: default avatarGrant Grundler <grundler@parisc-linux.org>
    
    2.6.12-rc4-pa2  fix 32-bit support for Astro platforms
    o Since my last SBA code change, SBA could allocate more than 1GB of IOVA
      space on Astro boxes with more than 1GB of RAM when running 32-bit kernel.
      This is bad since IOMMU can only talk to the first 1GB at most.
      Kudos to jejb for quickly spotting that bug.
    
    o jejb also noted SBA should *always* reject DMA masks > 32-bits since
      DMA-mapping.txt indicates caller should try again with 32-bits.
    
    o off-by-one error when comparing the mask to IOVA space size.
    Signed-off-by: default avatarGrant Grundler <grundler@parisc-linux.org>
    Signed-off-by: default avatarKyle McMartin <kyle@parisc-linux.org>
    64908ad9
sba_iommu.c 62.3 KB