linux_dsm_epyc7002/arch/powerpc/include/asm
Scott Wood 28efc35fe6 powerpc/e6500: TLB miss handler with hardware tablewalk support
There are a few things that make the existing hw tablewalk handlers
unsuitable for e6500:

 - Indirect entries go in TLB1 (though the resulting direct entries go in
   TLB0).

 - It has threads, but no "tlbsrx." -- so we need a spinlock and
   a normal "tlbsx".  Because we need this lock, hardware tablewalk
   is mandatory on e6500 unless we want to add spinlock+tlbsx to
   the normal bolted TLB miss handler.

 - TLB1 has no HES (nor next-victim hint) so we need software round robin
   (TODO: integrate this round robin data with hugetlb/KVM)

 - The existing tablewalk handlers map half of a page table at a time,
   because IBM hardware has a fixed 1MiB indirect page size.  e6500
   has variable size indirect entries, with a minimum of 2MiB.
   So we can't do the half-page indirect mapping, and even if we
   could it would be less efficient than mapping the full page.

 - Like on e5500, the linear mapping is bolted, so we don't need the
   overhead of supporting nested tlb misses.

Note that hardware tablewalk does not work in rev1 of e6500.
We do not expect to support e6500 rev1 in mainline Linux.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Cc: Mihai Caraman <mihai.caraman@freescale.com>
2014-01-09 17:52:19 -06:00
..
8xx_immap.h
agp.h
archrandom.h powerpc: Implement arch_get_random_long/int() for powernv 2013-10-11 16:50:19 +11:00
asm-compat.h powerpc: Fix little endian lppaca, slb_shadow and dtl_entry 2013-08-14 15:33:35 +10:00
asm-offsets.h
async_tx.h
atomic.h atomic: implement generic atomic_dec_if_positive() 2012-10-09 16:22:46 +09:00
backlight.h
barrier.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
bitops.h powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors on power7. 2013-12-05 16:04:39 +11:00
bootx.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
btext.h powerpc/pmac: Early debug output on screen on 64-bit macs 2013-08-14 14:57:40 +10:00
bug.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
bugs.h
cache.h powerpc: purge all the prefetched instructions for the coherent icache flush 2013-12-02 14:13:47 +11:00
cacheflush.h powerpc: Remove the symbol __flush_icache_range 2013-08-14 14:56:44 +10:00
cell-pmu.h
cell-regs.h
checksum.h powerpc: Use generic checksum code in little endian 2013-10-11 16:48:39 +11:00
clk_interface.h
cmpxchg.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
code-patching.h powerpc: Move the patch_exception to a common place 2013-12-02 14:06:54 +11:00
compat.h compat: move compat_siginfo_t definition to asm/compat.h 2012-10-06 03:05:16 +09:00
context_tracking.h powerpc: Use the new schedule_user API on userspace preemption 2013-05-14 16:00:20 +10:00
cpm1.h
cpm2.h
cpm.h
cputable.h powerpc/book3s: Add flush_tlb operation in cpu_spec. 2013-12-05 16:04:38 +11:00
cputhreads.h powerpc: Fixing a cputhread code documentation 2012-05-22 14:37:00 +10:00
cputime.h cputime: Generic on-demand virtual cputime accounting 2013-01-27 19:23:27 +01:00
current.h
dbdma.h
dbell.h powerpc: Select either privileged or hypervisor doorbell when sending 2013-01-10 15:09:06 +11:00
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
debug.h powerpc: Rename set_break to avoid naming conflict 2013-01-16 05:25:47 +11:00
delay.h
device.h powerpc: Add iommu domain pointer to device archdata 2013-08-14 11:38:34 +02:00
disassemble.h KVM: PPC: E500: exit to user space on "ehpriv 1" instruction 2013-10-17 14:49:39 +02:00
div64.h
dma-mapping.h powerpc: dma_debug: add debug_dma_mapping_error support 2012-11-28 15:28:59 +01:00
dma.h powerpc: remove PReP platform 2013-04-18 13:03:53 +10:00
edac.h
eeh_event.h powerpc/eeh: Allow to purge EEH events 2013-06-20 17:06:07 +10:00
eeh.h powerpc/eeh: Introdce flag to protect sysfs 2013-07-24 14:18:49 +10:00
ehv_pic.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
elf.h powerpc: Set eflags correctly for ELF ABIv2 core dumps. 2013-11-21 09:19:18 +11:00
emergency-restart.h
emulated_ops.h powerpc: Fix PPC_EMULATED_STATS build break with sync patch 2013-10-28 22:08:55 -05:00
epapr_hcalls.h powerpc/85xx: Move ePAPR paravirt initialization earlier 2013-08-07 18:38:06 -05:00
exception-64e.h powerpc/booke64: Use SPRG0/3 scratch for bolted TLB miss & crit int 2012-09-05 15:35:52 +10:00
exception-64s.h Merge branch 'merge' into next 2013-12-30 15:19:31 +11:00
exec.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
fadump.h fadump: Invalidate registration and release reserved memory for general use. 2012-02-23 10:50:02 +11:00
fb.h
feature-fixups.h
firmware.h powerpc/powernv: Detect OPAL v3 API version 2013-05-14 15:10:02 +10:00
fixmap.h
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
fsl_guts.h powerpc/iommu/fsl: Add PAMU bypass enable register to ccsr_guts struct 2012-11-25 07:19:39 -06:00
fsl_hcalls.h PPC: Don't use hardcoded opcode for ePAPR hcall invocation 2012-10-05 23:38:38 +02:00
fsl_ifc.h driver/mtd/IFC: Add support of 8K page size NAND flash 2013-11-06 23:33:00 -08:00
fsl_lbc.h powerpc/85xx: Add lbc suspend support for PM 2011-11-24 02:01:40 -06:00
fsl_pamu_stash.h iommu/fsl: Add additional iommu attributes required by the PAMU driver. 2013-08-14 11:38:34 +02:00
ftrace.h
futex.h
gpio.h gpiolib/arches: Centralise bolierplate asm/gpio.h 2012-05-11 18:00:14 -06:00
grackle.h
hardirq.h powerpc: Make irq_stat.timers_irqs counting more specific 2013-12-02 14:14:50 +11:00
heathrow.h
highmem.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
hugetlb.h powerpc: move find_linux_pte_or_hugepte and gup_hugepte to common code 2013-06-21 16:01:54 +10:00
hvcall.h pseries: Add H_SET_MODE to change exception endianness 2013-11-21 09:19:16 +11:00
hvconsole.h
hvcserver.h
hvsi.h powerpc/hvsi: Fix endian issues in HVSI driver 2013-10-11 16:48:53 +11:00
hw_breakpoint.h powerpc: Change hardware breakpoint to allow longer ranges 2013-01-29 11:35:08 +11:00
hw_irq.h powerpc: Access local paca after hard irq disabled 2013-07-24 14:18:44 +10:00
hydra.h
i8259.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
ibmebus.h ibmebus: convert of_platform_driver to platform_driver 2013-06-12 12:37:26 +01:00
ide.h
immap_cpm2.h
immap_qe.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
io_event_irq.h
io-defs.h
io-workarounds.h POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
io.h powerpc: Add real mode cache inhibited IO accessors 2013-12-05 16:08:21 +11:00
iommu.h powerpc/iommu: Update the generic code to use dynamic iommu page sizes 2013-12-30 14:17:19 +11:00
ipic.h
irq_regs.h
irq.h powerpc/irq: Run softirqs off the top of the irq stack 2013-09-25 14:15:36 +10:00
irqflags.h powerpc/ppc64: Rename SOFT_DISABLE_INTS with RECONCILE_IRQ_STATE 2013-08-14 14:57:47 +10:00
jump_label.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
Kbuild sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
kdebug.h
kdump.h powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE 2011-12-20 10:20:19 -05:00
kexec.h powerpc: Cleanup crash/kexec code 2011-12-08 14:02:23 +11:00
keylargo.h Typos: change aditional to additional. 2012-02-21 11:40:36 +01:00
kgdb.h
kmap_types.h powerpc: remove km_type definitions 2012-07-24 15:27:29 +08:00
kprobes.h powerpc/kprobes: Rename opcode_t in probes.h to ppc_opcode_t 2012-09-07 09:48:50 +10:00
kvm_44x.h
kvm_asm.h powerpc/booke64: Add LRAT error exception handler 2014-01-07 18:15:29 -06:00
kvm_book3s_32.h KVM: PPC: Book3S PR: Allocate kvm_vcpu structs from kvm_vcpu_cache 2013-10-17 14:45:05 +02:00
kvm_book3s_64.h kvm: powerpc: book3s: Add a new config variable CONFIG_KVM_BOOK3S_HV_POSSIBLE 2013-10-17 15:18:28 +02:00
kvm_book3s_asm.h kvm: powerpc: book3s: Add a new config variable CONFIG_KVM_BOOK3S_HV_POSSIBLE 2013-10-17 15:18:28 +02:00
kvm_book3s.h kvm: powerpc: book3s: Add is_hv_enabled to kvmppc_ops 2013-10-17 15:29:09 +02:00
kvm_booke_hv_asm.h KVM: PPC: bookehv64: Add support for interrupt handling 2012-12-06 01:34:11 +01:00
kvm_booke.h KVM: PPC: E500: exit to user space on "ehpriv 1" instruction 2013-10-17 14:49:39 +02:00
kvm_fpu.h
kvm_host.h kvm: powerpc: book3s: Allow the HV and PR selection per virtual machine 2013-10-17 18:42:36 +02:00
kvm_para.h Merge remote-tracking branch 'master' into queue 2012-10-29 19:15:32 -02:00
kvm_ppc.h kvm: powerpc: book3s: drop is_hv_enabled 2013-10-17 18:43:34 +02:00
libata-portmap.h
linkage.h consolidate cond_syscall and SYSCALL_ALIAS declarations 2013-03-03 22:55:19 -05:00
local64.h
local.h
lppaca.h powerpc: Make slb_shadow a local 2013-12-09 11:40:25 +11:00
lv1call.h powerpc/ps3: Correct lv1 repository routine names 2012-04-24 15:34:16 -07:00
machdep.h Merge branch 'for-kvm' into next 2013-10-11 18:23:53 +11:00
macio.h
mc146818rtc.h
mce.h powerpc/powernv: Machine check exception handling. 2013-12-05 16:06:06 +11:00
mediabay.h
mman.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
mmu_context.h sched: Rename sched.c as sched/core.c in comments and Documentation 2013-06-19 12:58:42 +02:00
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-book3e.h powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
mmu-hash32.h
mmu-hash64.h powerpc: Book 3S MMU little endian support 2013-10-11 16:48:26 +11:00
mmu.h powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
mmzone.h
module.h powerpc/modules: Module CRC relocation fix causes perf issues 2013-07-24 14:18:43 +10:00
mpc5xxx.h
mpc6xx.h
mpc8xx.h
mpc52xx_psc.h serial/mpc52xx_uart: add MPC5125 PSC support 2013-06-03 10:22:35 -07:00
mpc52xx.h powerpc/mpc52xx_lpbfifo: optionally defer fifo transfer start 2012-09-14 10:15:35 +02:00
mpc85xx.h powerpc/85xx: Add support for 85xx cpu type detection 2013-08-23 19:01:03 -05:00
mpc5121.h powerpc: mpc512x: array decl for MCLK registers in CCM 2013-08-23 23:41:55 +02:00
mpc8260.h
mpic_msgr.h powerpc/mpic_msgr: Add missing includes 2012-08-24 20:26:04 +10:00
mpic_timer.h powerpc/mpic: add global timer support 2013-07-01 18:38:41 -05:00
mpic.h powerpc/msi: Fix compile error on mpc83xx 2013-08-07 18:38:04 -05:00
msi_bitmap.h
mutex.h arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not 2013-06-26 12:10:55 +02:00
nvram.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
ohare.h
opal.h Merge branch 'merge' into next 2013-12-30 15:19:31 +11:00
oprofile_impl.h treewide: fix typo of "suport" in various comments and Kconfig 2012-11-19 14:16:09 +01:00
paca.h powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
page_32.h
page_64.h mm: remove free_area_cache use in powerpc architecture 2013-04-30 11:05:10 +10:00
page.h powerpc: Fix 64K page size support for PPC44x 2013-10-30 16:00:51 +11:00
parport.h powerpc: use for_each_compatible_node() macro 2013-04-18 13:03:50 +10:00
pasemi_dma.h
pci-bridge.h powerpc/pci: Don't use bitfield for force_32bit_msi 2013-08-14 11:50:25 +10:00
pci.h PCI: use weak functions for MSI arch-specific functions 2013-08-12 15:26:39 +00:00
percpu.h
perf_event_fsl_emb.h powerpc/perf: increase the perf HW events to 6 2013-08-07 18:38:03 -05:00
perf_event_server.h Linux 3.11-rc5 2013-08-15 10:00:09 +02:00
perf_event.h powerpc/perf: Move code to select SIAR or pt_regs into perf_read_regs 2012-07-10 19:18:41 +10:00
pgalloc-32.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc-64.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc.h powerpc: Move the pte free routines from common header 2013-04-30 16:00:04 +10:00
pgtable-ppc32.h
pgtable-ppc64-4k.h powerpc/mm: Add 64TB support 2012-09-17 16:31:51 +10:00
pgtable-ppc64-64k.h powerpc/THP: Double the PMD table size for THP 2013-06-21 16:01:53 +10:00
pgtable-ppc64.h powerpc: Prepare to support kernel handling of IOMMU map/unmap 2013-10-11 17:24:39 +11:00
pgtable.h powerpc/mm: Enable _PAGE_NUMA for book3s 2013-12-09 11:40:30 +11:00
plpar_wrappers.h pseries: Add H_SET_MODE to change exception endianness 2013-11-21 09:19:16 +11:00
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
ppc4xx_ocm.h powerpc/44x: Support OCM(On Chip Memory) for APM821xx SoC and Bluestone board 2013-01-10 15:08:37 +11:00
ppc4xx.h
ppc_asm.h powerpc: introduce macro LOAD_REG_ADDR_PIC 2014-01-09 17:52:15 -06:00
ppc-opcode.h powerpc/bpf: Fix DIVWU instruction opcode 2013-10-31 16:19:20 +11:00
ppc-pci.h powerpc/eeh: Cleanup on EEH PCI address cache 2012-09-10 09:59:00 +10:00
probes.h powerpc: Move the single step enable code to a generic path 2013-06-20 16:55:09 +10:00
processor.h powerpc: fix exception clearing in e500 SPE float emulation 2014-01-07 18:32:21 -06:00
prom.h DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
ps3.h powerpc/ps3: Add macro PS3_VERBOSE_RESULT 2013-02-15 16:54:39 +11:00
ps3av.h
ps3gpu.h
ps3stor.h
pte-8xx.h
pte-40x.h
pte-44x.h
pte-book3e.h powerpc: book3e: _PAGE_LENDIAN must be _PAGE_ENDIAN 2013-10-17 14:49:37 +02:00
pte-common.h
pte-fsl-booke.h
pte-hash32.h
pte-hash64-4k.h
pte-hash64-64k.h powerpc: Fix build errors STRICT_MM_TYPECHECKS 2013-05-14 14:36:20 +10:00
pte-hash64.h powerpc/mm: Enable _PAGE_NUMA for book3s 2013-12-09 11:40:30 +11:00
ptrace.h powerpc: fixing ptrace_get_reg to return an error 2013-04-18 13:03:57 +10:00
qe_ic.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
qe.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
reg_8xx.h
reg_a2.h
reg_booke.h powerpc/fsl: add E6500 PVR and SPRN_PWRMGTCR0 define 2014-01-07 19:29:23 -06:00
reg_fsl_emb.h powerpc/perf: Add e6500 PMU driver 2013-08-07 18:38:04 -05:00
reg.h powerpc/fsl: add E6500 PVR and SPRN_PWRMGTCR0 define 2014-01-07 19:29:23 -06:00
rheap.h
rio.h
rtas.h powerpc: Make RTAS calls endian safe 2013-08-14 15:33:22 +10:00
rtc.h
runlatch.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
scatterlist.h
scom.h powerpc/scom: Enable 64-bit addresses 2013-11-06 14:13:49 +11:00
sections.h powerpc: Relocate prom_init.c on 64bit 2013-01-10 17:00:25 +11:00
serial.h
setjmp.h
setup.h powerpc: Move local setup.h declarations to arch includes 2013-10-30 16:00:31 +11:00
sfp-machine.h powerpc: Put FP/VSX and VR state into structures 2013-10-11 17:26:49 +11:00
shmparam.h
signal.h powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions 2013-06-01 08:29:23 +10:00
smp.h powerpc: Make cpu_to_chip_id() available when SMP=n 2013-11-21 10:33:44 +11:00
smu.h Fix misspellings of "whether" in comments. 2012-11-19 14:31:35 +01:00
sparsemem.h powerpc/mm: Add 64TB support 2012-09-17 16:31:51 +10:00
spinlock_types.h
spinlock.h powerpc: Make rwlocks endian safe 2013-08-14 15:33:40 +10:00
spu_csa.h
spu_info.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
spu_priv1.h
spu.h switch elf_coredump_extra_notes_write() to dump_emit() 2013-11-09 00:16:24 -05:00
sstep.h
string.h powerpc: Use generic memcpy code in little endian 2013-10-11 16:48:40 +11:00
swab.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
swiotlb.h powerpc/swiotlb: Enable at early stage and disable if not necessary 2012-09-12 14:57:09 -05:00
switch_to.h powerpc: export debug registers save function for KVM 2013-10-18 18:46:18 -05:00
synch.h
syscall.h
syscalls.h powerpc: trim the crap from syscalls.h 2013-02-03 18:16:11 -05:00
systbl.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-05-01 07:21:43 -07:00
tce.h powerpc/powernv: Add TCE SW invalidation support 2011-11-25 14:32:57 +11:00
termios.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
thread_info.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-11-20 15:13:47 -08:00
time.h cputime: Consolidate vtime handling on context switch 2012-08-20 13:05:28 +02:00
timex.h powerpc/8xx: mfspr SPRN_TBRx in lieu of mftb/mftbu is not supported 2013-11-22 16:56:48 -06:00
tlb.h
tlbflush.h powerpc/THP: Implement transparent hugepages for ppc64 2013-06-21 16:01:53 +10:00
tm.h powerpc/tm: Move TM abort cause codes to uapi 2013-06-01 08:29:23 +10:00
topology.h powerpc: Make chip-id information available to userspace 2013-08-14 15:33:17 +10:00
trace.h powerpc: tracing: Avoid tracepoint duplication with DECLARE_EVENT_CLASS 2012-07-03 14:14:41 +10:00
tsi108_irq.h
tsi108_pci.h
tsi108.h
types.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
uaccess.h powerpc: uaccess s/might_sleep/might_fault/ 2013-05-28 09:41:09 +02:00
ucc_fast.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
ucc_slow.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
ucc.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
udbg.h powerpc: Cleanup udbg_16550 and add support for LPC PIO-only UARTs 2013-08-14 14:58:15 +10:00
uic.h
unaligned.h powerpc: Make unaligned accesses endian-safe for powerpc 2013-12-30 14:02:29 +11:00
uninorth.h
unistd.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-05-01 07:21:43 -07:00
uprobes.h uprobes: Introduce arch_uprobe->ixol 2013-11-06 20:00:05 +01:00
user.h
vdso_datapage.h
vdso.h powerpc: Delete __cpuinit usage from all users 2013-07-01 11:10:36 +10:00
vga.h
vio.h POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
word-at-a-time.h powerpc: word-at-a-time optimization for 64-bit Little Endian 2013-10-31 16:19:16 +11:00
wsp.h
xics.h powerpc/powernv: Patch MSI EOI handler on P8 2013-04-26 16:09:59 +10:00
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h powerpc: Add VMX optimised xor for RAID5 2013-10-30 16:02:28 +11:00