ae209cf100
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: Arnd Bergmann <arndb@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> |
||
---|---|---|
.. | ||
vdso32 | ||
vdso64 | ||
align.c | ||
asm-offsets.c | ||
binfmt_elf32.c | ||
bitops.c | ||
bpa_iic.c | ||
bpa_iic.h | ||
bpa_iommu.c | ||
bpa_iommu.h | ||
bpa_nvram.c | ||
bpa_setup.c | ||
btext.c | ||
cpu_setup_power4.S | ||
cputable.c | ||
dma.c | ||
eeh.c | ||
entry.S | ||
head.S | ||
HvCall.c | ||
hvCall.S | ||
hvconsole.c | ||
hvcserver.c | ||
HvLpConfig.c | ||
HvLpEvent.c | ||
i8259.c | ||
i8259.h | ||
idle.c | ||
idle_power4.S | ||
init_task.c | ||
ioctl32.c | ||
iomap.c | ||
iommu.c | ||
irq.c | ||
iSeries_htab.c | ||
iSeries_iommu.c | ||
iSeries_irq.c | ||
iSeries_pci.c | ||
iSeries_proc.c | ||
iSeries_setup.c | ||
iSeries_setup.h | ||
iSeries_smp.c | ||
iSeries_VpdInfo.c | ||
ItLpQueue.c | ||
kprobes.c | ||
lmb.c | ||
lparcfg.c | ||
LparData.c | ||
Makefile | ||
maple_pci.c | ||
maple_setup.c | ||
maple_time.c | ||
mf.c | ||
misc.S | ||
module.c | ||
mpic.c | ||
mpic.h | ||
nvram.c | ||
of_device.c | ||
pacaData.c | ||
pci.c | ||
pci.h | ||
pci_direct_iommu.c | ||
pci_dn.c | ||
pci_iommu.c | ||
pmac.h | ||
pmac_feature.c | ||
pmac_low_i2c.c | ||
pmac_nvram.c | ||
pmac_pci.c | ||
pmac_setup.c | ||
pmac_smp.c | ||
pmac_time.c | ||
pmc.c | ||
ppc_ksyms.c | ||
proc_ppc64.c | ||
process.c | ||
prom.c | ||
prom_init.c | ||
pSeries_hvCall.S | ||
pSeries_iommu.c | ||
pSeries_lpar.c | ||
pSeries_nvram.c | ||
pSeries_pci.c | ||
pSeries_reconfig.c | ||
pSeries_setup.c | ||
pSeries_smp.c | ||
ptrace.c | ||
ptrace32.c | ||
ras.c | ||
rtas-proc.c | ||
rtas.c | ||
rtas_flash.c | ||
rtas_pci.c | ||
rtasd.c | ||
rtc.c | ||
scanlog.c | ||
semaphore.c | ||
setup.c | ||
signal.c | ||
signal32.c | ||
smp-tbsync.c | ||
smp.c | ||
spider-pic.c | ||
sys_ppc32.c | ||
syscalls.c | ||
sysfs.c | ||
time.c | ||
traps.c | ||
u3_iommu.c | ||
udbg.c | ||
vdso.c | ||
vecemu.c | ||
vector.S | ||
vio.c | ||
viopath.c | ||
vmlinux.lds.S | ||
xics.c |