linux/arch/tile/kernel
Chris Metcalf 41bb38fc53 tile pci: enable IOMMU to support DMA for legacy devices
This change uses the TRIO IOMMU to map the PCI DMA space and physical
memory at different addresses.  We also now use the dma_mapping_ops
to provide support for non-PCI DMA, PCIe DMA (64-bit) and legacy PCI
DMA (32-bit).  We use the kernel's software I/O TLB framework
(i.e. bounce buffers) for the legacy 32-bit PCI device support since
there are a limited number of TLB entries in the IOMMU and it is
non-trivial to handle indexing, searching, matching, etc.  For 32-bit
devices the performance impact of bounce buffers should not be a concern.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2012-07-18 16:40:17 -04:00
..
asm-offsets.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
backtrace.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
compat_signal.c most of set_current_blocked() callers want SIGKILL/SIGSTOP removed from set 2012-06-01 12:58:51 -04:00
compat.c [PATCH v3] ipc: provide generic compat versions of IPC syscalls 2012-03-15 13:13:38 -04:00
early_printk.c Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
entry.S tile: remove cpu_idle_on_new_stack 2012-06-06 11:29:31 -04:00
futex_64.S arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
hardwall.c arch/tile: fix hardwall for tilegx and generalize for idn and ipi 2012-05-25 12:48:27 -04:00
head_32.S arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
head_64.S arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
hvglue.lds arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
intvec_32.S arch/tile: fix up some issues in calling do_work_pending() 2012-05-16 16:01:16 -04:00
intvec_64.S arch/tile: fix hardwall for tilegx and generalize for idn and ipi 2012-05-25 12:48:27 -04:00
irq.c arch/tile: use new generic {enable,disable}_percpu_irq() routines 2011-12-03 15:31:49 -05:00
machine_kexec.c arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
Makefile arch/tile: tilegx PCI root complex support 2012-07-18 16:39:11 -04:00
messaging.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
module.c arch/tile: support building big-endian kernel 2012-05-25 12:48:22 -04:00
pci_gx.c tile pci: enable IOMMU to support DMA for legacy devices 2012-07-18 16:40:17 -04:00
pci-dma.c tile pci: enable IOMMU to support DMA for legacy devices 2012-07-18 16:40:17 -04:00
pci.c arch/tile: fix a couple of functions that should be __init 2012-04-25 12:45:26 -04:00
proc.c arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
process.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-05-31 18:47:30 -07:00
ptrace.c arch/tile: don't allow user code to set the PL via ptrace or signal return 2010-11-01 15:31:17 -04:00
reboot.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
regs_32.S Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
regs_64.S Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
relocate_kernel_32.S arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
relocate_kernel_64.S arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
setup.c tile pci: enable IOMMU to support DMA for legacy devices 2012-07-18 16:40:17 -04:00
signal.c new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
single_step.c arch/tile: support building big-endian kernel 2012-05-25 12:48:22 -04:00
smp.c arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
smpboot.c smp: Add task_struct argument to __cpu_up() 2012-04-26 12:06:09 +02:00
stack.c arch/tile: various bugs in stack backtracer 2012-04-02 12:12:45 -04:00
sys.c arch/tile: support <asm/cachectl.h> header for cacheflush() syscall 2012-05-25 12:48:24 -04:00
sysfs.c arch/tile: allow querying cpu module information from the hypervisor 2012-05-25 12:48:28 -04:00
tile-desc_32.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc_64.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
time.c clocksource: tile: convert to use clocksource_register_hz 2011-06-03 17:26:21 -04:00
tlb.c arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
traps.c arch/tile: add descriptive text if the kernel reports a bad trap 2012-05-25 12:48:28 -04:00
vmlinux.lds.S percpu: Always align percpu output section to PAGE_SIZE 2011-03-24 18:50:09 +01:00