linux_dsm_epyc7002/arch/powerpc/include/asm
Alexey Kardashevskiy 4793d65d1a vfio: powerpc/spapr: powerpc/powernv/ioda: Define and implement DMA windows API
This extends iommu_table_group_ops by a set of callbacks to support
dynamic DMA windows management.

create_table() creates a TCE table with specific parameters.
it receives iommu_table_group to know nodeid in order to allocate
TCE table memory closer to the PHB. The exact format of allocated
multi-level table might be also specific to the PHB model (not
the case now though).
This callback calculated the DMA window offset on a PCI bus from @num
and stores it in a just created table.

set_window() sets the window at specified TVT index + @num on PHB.

unset_window() unsets the window from specified TVT.

This adds a free() callback to iommu_table_ops to free the memory
(potentially a tree of tables) allocated for the TCE table.

create_table() and free() are supposed to be called once per
VFIO container and set_window()/unset_window() are supposed to be
called for every group in a container.

This adds IOMMU capabilities to iommu_table_group such as default
32bit window parameters and others. This makes use of new values in
vfio_iommu_spapr_tce. IODA1/P5IOC2 do not support DDW so they do not
advertise pagemasks to the userspace.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-06-11 15:16:52 +10:00
..
8xx_immap.h
agp.h
archrandom.h KVM: PPC: Book3S HV: Add fast real-mode H_RANDOM implementation. 2015-04-21 15:21:29 +02:00
asm-compat.h ppc: bpf: add required compatibility macros for jit 2015-02-20 15:19:43 -05:00
asm-offsets.h
async_tx.h
atomic.h
backlight.h
barrier.h
bitops.h
bootx.h
btext.h
bug.h
bugs.h
cache.h powerpc: Remove duplicate cacheable_memcpy/memzero functions 2015-03-17 11:25:50 +11:00
cacheflush.h mm/debug_pagealloc: fix build failure on ppc and some other archs 2015-02-05 13:35:30 -08:00
cell-pmu.h
cell-regs.h
checksum.h
cmpxchg.h
code-patching.h
compat.h
context_tracking.h
copro.h
cpm1.h
cpm2.h
cpm.h
cpuidle.h powernv/cpuidle: Redesign idle states management 2014-12-15 10:46:40 +11:00
cputable.h powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument. 2015-03-17 07:52:48 +11:00
cputhreads.h powerpc: Fix cpu_online_cores_map to return only online threads mask 2015-05-22 15:12:30 +10:00
cputime.h
current.h
dbdma.h powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h powerpc: Use bool function return values of true/false not 1/0 2015-03-31 14:19:47 +11:00
dcr-regs.h
dcr.h
debug.h
delay.h
device.h powerpc: Add cxl context to device archdata 2015-06-03 13:27:16 +10:00
disassemble.h
dma-mapping.h powerpc: Use bool function return values of true/false not 1/0 2015-03-31 14:19:47 +11:00
dma.h
edac.h
eeh_event.h
eeh.h powerpc/eeh: Introduce eeh_pe_inject_err() 2015-05-12 20:33:35 +10:00
ehv_pic.h
elf.h mm: fold arch_randomize_brk into ARCH_HAS_ELF_RANDOMIZE 2015-04-14 16:49:05 -07:00
emergency-restart.h
emulated_ops.h
epapr_hcalls.h
exception-64e.h
exception-64s.h
exec.h
fadump.h
fb.h
feature-fixups.h
firmware.h powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
fixmap.h
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_guts.h
fsl_hcalls.h
fsl_lbc.h uio: uio_fsl_elbc_gpcm: new driver 2015-01-12 05:04:13 -08:00
fsl_pamu_stash.h iommu/fsl: Various cleanups 2015-02-03 18:47:18 +01:00
ftrace.h
futex.h
gpio.h
grackle.h
hardirq.h
heathrow.h
highmem.h
hugetlb.h
hvcall.h
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h
hw_irq.h
hydra.h
i8259.h
ibmebus.h
ide.h
immap_cpm2.h
immap_qe.h
io_event_irq.h
io-defs.h
io-workarounds.h
io.h
iommu.h vfio: powerpc/spapr: powerpc/powernv/ioda: Define and implement DMA windows API 2015-06-11 15:16:52 +10:00
ipic.h
irq_work.h powerpc: Re-enable dynticks 2015-02-23 14:52:04 +11:00
irq.h
irqflags.h
jump_label.h
Kbuild powerpc: use kbuild generic-y where possible 2015-03-23 15:09:44 +11:00
kdebug.h
kdump.h
kexec.h powerpc/kdump: Ignore failure in enabling big endian exception during crash 2014-12-29 15:44:53 +11:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h powerpc/kprobes: Fix kallsyms lookup across powerpc ABIv1 and ABIv2 2015-01-23 14:02:51 +11:00
kvm_asm.h
kvm_book3s_32.h
kvm_book3s_64.h powerpc fixes for 4.1 2015-04-26 13:23:15 -07:00
kvm_book3s_asm.h
kvm_book3s.h This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
kvm_booke_hv_asm.h
kvm_booke.h
kvm_fpu.h
kvm_host.h This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
kvm_para.h
kvm_ppc.h KVM: PPC: Book3S HV: Add fast real-mode H_RANDOM implementation. 2015-04-21 15:21:29 +02:00
libata-portmap.h
linkage.h
local.h
lppaca.h
lv1call.h
machdep.h powerpc/iommu: Move tce_xxx callbacks from ppc_md to iommu_table 2015-06-11 15:14:56 +10:00
macio.h
mc146818rtc.h
mce.h
mediabay.h
mman.h
mmu_context.h
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-book3e.h
mmu-hash32.h
mmu-hash64.h powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument. 2015-03-17 07:52:48 +11:00
mmu.h
mmzone.h
module.h
mpc5xxx.h
mpc6xx.h
mpc52xx_psc.h
mpc52xx.h
mpc85xx.h powerpc/fsl-booke: Add T4080 SVR value 2015-03-31 22:23:17 -05:00
mpc5121.h
mpc8260.h
mpic_msgr.h
mpic_timer.h
mpic.h powerpc/mpic: Add get_version API both for internal and external use 2015-03-23 19:51:17 -05:00
msi_bitmap.h
mutex.h
nmi.h powerpc: Add ppc64 hard lockup detector support 2015-04-11 20:49:27 +10:00
nvram.h powerpc/nvram: Move generic code for nvram and pstore 2015-03-23 14:05:49 +11:00
ohare.h
opal-api.h powerpc/powernv: Add opal-prd channel 2015-06-05 08:32:21 +10:00
opal.h powerpc/powernv: Add opal-prd channel 2015-06-05 08:32:21 +10:00
oprofile_impl.h
paca.h powerpc: book3e_64: fix the align size for paca_struct 2015-03-31 22:23:17 -05:00
page_32.h
page_64.h
page.h powerpc: Make STRICT_MM_TYPECHECKS a config option 2015-05-11 19:53:59 +10:00
parport.h
pasemi_dma.h
pci-bridge.h powerpc/spapr: vfio: Replace iommu_table with iommu_table_group 2015-06-11 15:14:57 +10:00
pci.h powerpc: Remove shims for pci_controller_ops operations 2015-04-11 20:49:18 +10:00
percpu.h
perf_event_fsl_emb.h
perf_event_server.h
perf_event.h
pgalloc-32.h
pgalloc-64.h
pgalloc.h
pgtable-ppc32.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pgtable-ppc64-4k.h
pgtable-ppc64-64k.h
pgtable-ppc64.h powerpc: Make STRICT_MM_TYPECHECKS a config option 2015-05-11 19:53:59 +10:00
pgtable.h powerpc/mm/thp: Make page table walk safe against thp split/collapse 2015-04-17 11:23:39 +10:00
plpar_wrappers.h
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
pnv-pci.h cxl: Move include file cxl.h -> cxl-base.h 2015-06-03 13:27:19 +10:00
ppc4xx_ocm.h
ppc4xx.h
ppc_asm.h powerpc: Change vsrX register defines to vsX to match gcc and glibc 2015-03-16 18:32:11 +11:00
ppc-opcode.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-02 16:16:53 -04:00
ppc-pci.h powerpc: move find_and_init_phbs() to pSeries specific code 2015-04-11 20:49:09 +10:00
probes.h
processor.h powerpc/dscr: Add some in-code documentation 2015-06-07 19:29:15 +10:00
prom.h
ps3.h
ps3av.h
ps3gpu.h
ps3stor.h
pte-8xx.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-40x.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-44x.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-book3e.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-common.h mm: remove remaining references to NUMA hinting bits and helpers 2015-02-12 18:54:08 -08:00
pte-fsl-booke.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-hash32.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-hash64-4k.h
pte-hash64-64k.h
pte-hash64.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
ptrace.h
qe_ic.h
qe.h
reg_8xx.h
reg_a2.h
reg_booke.h
reg_fsl_emb.h
reg.h powerpc/powernv: Fixes for hypervisor doorbell handling 2015-03-20 14:51:53 +11:00
rheap.h
rio.h
rtas.h Merge branch 'next-dlpar' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc into next 2015-04-13 15:30:21 +10:00
rtc.h
runlatch.h
scom.h
seccomp.h powerpc: switch to using asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
sections.h
serial.h
setjmp.h
setup.h powerpc: Replace mem_init_done with slab_is_available() 2015-04-10 20:02:48 +10:00
sfp-machine.h
shmparam.h
signal.h
smp.h powerpc: Drop return value of smp_ops->probe() 2015-04-10 20:02:49 +10:00
smu.h powerpc: Fix comment in smu.h 2015-03-06 23:21:07 +01:00
sparsemem.h
spinlock_types.h
spinlock.h
spu_csa.h
spu_info.h
spu_priv1.h
spu.h
sstep.h
string.h
swab.h powerpc: Remove unused st_le*() and ld_le* functions 2015-03-24 13:33:52 +11:00
swiotlb.h
switch_to.h
synch.h
syscall.h
syscalls.h
systbl.h powerpc: Enable sys_kcmp() for CRIU 2015-05-20 10:42:05 +10:00
tce.h
termios.h
thread_info.h arch: Remove exec_domain from remaining archs 2015-04-12 21:03:30 +02:00
time.h KVM: PPC: Book3S HV: Accumulate timing information for real-mode code 2015-04-21 15:21:31 +02:00
timex.h
tlb.h
tlbflush.h
tm.h
topology.h
trace.h powerpc/mm: Add trace point for tracking hash pte fault 2015-06-10 14:06:29 +10:00
tsi108_irq.h
tsi108_pci.h
tsi108.h
types.h
uaccess.h powerpc/uaccess: Allow get_user() with bitwise types 2014-12-18 19:11:09 +11:00
ucc_fast.h
ucc_slow.h powerpc/qe: drop unused ucc_slow_poll_transmitter_now 2015-03-16 18:50:17 +11:00
ucc.h
udbg.h
uic.h
unaligned.h
uninorth.h
unistd.h powerpc: Add a proper syscall for switching endianness 2015-03-28 22:03:40 +11:00
uprobes.h
user.h
vdso_datapage.h
vdso.h
vga.h powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
vio.h
word-at-a-time.h
xics.h powerpc: Drop return value of smp_ops->probe() 2015-04-10 20:02:49 +10:00
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h