• Arnd Bergmann's avatar
    [PATCH] ppc64: Add driver for BPA iommu · ae209cf1
    Arnd Bergmann authored
    Implementation of software load support for the BE iommu. This is very
    different from other iommu code on ppc64, since we only do a static mapping.
    The mapping is currently hardcoded but should really be read from the
    firmware, but they don't set up the device nodes yet. There is a single
    512MB DMA window for PCI, USB and ethernet at 0x20000000 for our RAM.
    
    The Cell processor can put the I/O page table either in memory like
    the hashed page table (hardware load) or have the operating system
    write the entries into memory mapped CPU registers (software load).
    
    I use the software load mechanism because I know that all I/O page
    table entries for the amount of installed physical memory fit into
    the IO TLB cache. At the point when we get machines with more than
    4GB of installed memory, we can either use hardware I/O page table
    access like the other platforms do or dynamically update the I/O
    TLB entries when a page fault occurs in the I/O subsystem.
    
    The software load can then use the macros that I have implemented
    for the static mapping in order to do the TLB cache updates.
    Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    ae209cf1
bpa_iommu.h 1.73 KB