mirror_ubuntu-kernels/arch/powerpc/kernel
Suraj Jitindar Singh 014d02cbf1 powerpc: Update to new option-vector-5 format for CAS
On POWER9 the ibm,client-architecture-support (CAS) negotiation process
has been updated to change how the host to guest negotiation is done for
the new hash/radix mmu as well as the nest mmu, process tables and guest
translation shootdown (GTSE).

This is documented in the unreleased PAPR ACR "CAS option vector
additions for P9".

The host tells the guest which options it supports in
ibm,arch-vec-5-platform-support. The guest then chooses a subset of these
to request in the CAS call and these are agreed to in the
ibm,architecture-vec-5 property of the chosen node.

Thus we read ibm,arch-vec-5-platform-support and make our selection before
calling CAS. We then parse the ibm,architecture-vec-5 property of the
chosen node to check whether we should run as hash or radix.

ibm,arch-vec-5-platform-support format:

index value pairs: <index, val> ... <index, val>

index: Option vector 5 byte number
val:   Some representation of supported values

Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Acked-by: Paul Mackerras <paulus@ozlabs.org>
[mpe: Don't print about unknown options, be consistent with OV5_FEAT]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-03-06 21:44:09 +11:00
..
vdso32 powerpc/vdso: Fix build rules to rebuild vdsos correctly 2016-08-10 23:04:12 +10:00
vdso64 powerpc/vdso64: Use double word compare on pointers 2016-09-29 15:17:57 +10:00
.gitignore
align.c powerpc/64: Clean up ppc64_caches using a struct per cache 2017-02-06 19:46:04 +11:00
asm-offsets.c powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
audit.c
btext.c powerpc/mm: Use a helper for finding pte bits mapping I/O area 2016-05-01 18:32:32 +10:00
cacheinfo.c powerpc: Fix missing L2 cache size in /sys/devices/system/cpu 2015-04-11 20:49:28 +10:00
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/cache: add cache flush operation for various e500 2016-03-04 23:44:51 -06:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU 2017-02-23 08:26:15 +11:00
cpu_setup_ppc970.S
cputable.c powerpc: Add POWER9 architected mode to cputable 2017-02-17 21:48:56 +11:00
crash_dump.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
crash.c powerpc/crash: Rearrange loop condition to avoid out of bounds array access 2016-07-14 20:26:22 +10:00
dbell.c powerpc/powernv: Fixes for hypervisor doorbell handling 2015-03-20 14:51:53 +11:00
dma-iommu.c dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
dma-swiotlb.c treewide: Constify most dma_map_ops structures 2017-01-24 12:23:35 -05:00
dma.c treewide: Move dma_ops from struct dev_archdata into struct device 2017-01-24 12:23:35 -05:00
eeh_cache.c powerpc/eeh: Fix pr_debug()s in eeh_cache.c 2016-07-08 22:09:50 +10:00
eeh_dev.c powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
eeh_driver.c powerpc/eeh: Fix wrong flag passed to eeh_unfreeze_pe() 2017-01-24 21:22:51 +11:00
eeh_event.c powerpc/pci: Always print PHB and PE numbers as hexadecimal 2016-11-22 11:57:07 +11:00
eeh_pe.c powerpc/pci: Always print PHB and PE numbers as hexadecimal 2016-11-22 11:57:07 +11:00
eeh_sysfs.c
eeh.c powerpc/eeh: Enable IO path on permanent error 2017-01-18 15:11:19 +11:00
entry_32.S powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
entry_64.S Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
epapr_hcalls.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
epapr_paravirt.c
exceptions-64e.S powerpc/64e: Don't branch to dot symbols 2016-11-28 22:32:30 +11:00
exceptions-64s.S Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
fadump.c powerpc/fadump: Fix the race in crash_fadump(). 2017-01-30 16:35:16 +11:00
firmware.c
fpu.S Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
fsl_booke_entry_mapping.S powerpc/fsl: Force coherent memory on e500mc derivatives 2015-08-07 23:00:01 -05:00
ftrace.c powerpc/ftrace: Fix the comments for ftrace_modify_code 2016-12-03 22:10:15 +11:00
head_8xx.S powerpc/8xx: Perf events on PPC 8xx 2017-01-26 17:49:34 -06:00
head_32.S powerpc/32: Remove FIX_SRR1 2017-01-26 17:49:32 -06:00
head_40x.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
head_44x.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
head_64.S powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead. 2016-11-30 23:15:11 +11:00
head_booke.h
head_fsl_booke.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
hw_breakpoint.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2017-02-18 21:37:14 +11:00
idle_6xx.S
idle_book3e.S
idle_book3s.S powerpc/powernv: Fix bug due to labeling ambiguity in power_enter_stop 2017-03-03 11:24:50 +11:00
idle_e500.S powerpc/e500mc: Remove dead L2 flushing code in idle_e500.S 2015-06-02 21:37:19 -05:00
idle_power4.S
idle.c
ima_kexec.c powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
io-workarounds.c powerpc/mm: Differentiate between hugetlb and THP during page walk 2015-10-12 15:30:09 +11:00
io.c
iomap.c powerpc: Move isa bridge definitions to separate include 2017-01-31 13:54:17 +11:00
iommu.c powerpc: implement the DMA_ATTR_NO_WARN attribute 2016-10-11 15:06:32 -07:00
irq.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
isa-bridge.c powerpc: Add support for non-PCI ISA bridges 2017-01-31 13:54:17 +11:00
jump_label.c jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
kexec_elf_64.c powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
kgdb.c powerpc: Fix kgdb on little endian ppc64le 2016-02-18 00:03:26 +11:00
kprobes.c powerpc/kprobes: Remove kprobe_exceptions_notify() 2017-02-10 14:43:15 +11:00
kvm_emul.S
kvm.c powerpc: Remove redundant breaks 2015-08-06 15:10:20 +10:00
l2cr_6xx.S
legacy_serial.c powerpc/powernv: Add support for direct mapped LPC on POWER9 2017-01-31 13:54:18 +11:00
machine_kexec_32.c
machine_kexec_64.c powerpc: Add purgatory for kexec_file_load() implementation. 2016-11-30 23:15:26 +11:00
machine_kexec_file_64.c powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
machine_kexec.c powerpc: Update of_remove_property() call sites to remove null checking 2016-05-11 21:54:04 +10:00
Makefile powerpc updates for 4.11 part 1. 2017-02-22 10:30:38 -08:00
mce_power.c powerpc/mm/radix: Fix CONFIG_PPC_MMU_STD_64 typo 2016-05-11 21:53:59 +10:00
mce.c powerpc/mce: Remove unused but set variable 2016-11-18 22:40:38 +11:00
misc_32.S powerpc: Fix build warning on 32-bit PPC 2016-12-25 16:12:20 -08:00
misc_64.S powerpc/64: Fix naming of cache block vs. cache line 2017-02-06 19:46:04 +11:00
misc.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
module_32.c powerpc/module: Only try to generate the ftrace_caller() stub once 2016-03-07 14:53:53 +11:00
module_64.c modversions: treat symbol CRCs as 32 bit quantities 2017-02-03 08:28:25 -08:00
module.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
msi.c powerpc: Remove MSI-related PCI controller ops from ppc_md 2015-06-02 11:47:45 +10:00
nvram_64.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
of_platform.c powerpc/of_platform: Use builtin_platform_driver 2016-11-25 14:07:51 +11:00
optprobes_head.S powerpc/optprobes: Fix TOC handling in optprobes trampoline 2017-02-23 08:23:30 +11:00
optprobes.c powerpc/kprobes: Optimize kprobe in kretprobe_trampoline() 2017-02-10 13:28:05 +11:00
paca.c powerpc/mm: Convert early cpu/mmu feature check to use the new helpers 2016-08-01 11:15:01 +10:00
pci_32.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
pci_64.c powerpc fixes for 4.7 #5 2016-07-15 14:57:47 +10:00
pci_dn.c powerpc/pci: Fix build with PCI_IOV=y and EEH=n 2016-07-07 16:33:27 +10:00
pci_of_scan.c powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
pci-common.c powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
pci-hotplug.c powerpc/pci: Don't scan empty slot 2016-05-11 21:54:26 +10:00
pmc.c
ppc32.h
ppc_save_regs.S
proc_powerpc.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
process.c powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
prom_init_check.sh
prom_init.c powerpc: Update to new option-vector-5 format for CAS 2017-03-06 21:44:09 +11:00
prom_parse.c
prom.c powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead. 2016-11-30 23:15:11 +11:00
ptrace32.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
ptrace.c powerpc/ptrace: Preserve previous TM fprs/vsrs on short regset write 2017-01-20 14:55:19 +11:00
reloc_32.S
reloc_64.S
rtas_flash.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
rtas_pci.c powerpc: move find_and_init_phbs() to pSeries specific code 2015-04-11 20:49:09 +10:00
rtas-proc.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
rtas-rtc.c
rtas.c powerpc/kernel: Fix unbalanced refcount on RTAS device node 2017-01-25 13:34:21 +11:00
rtasd.c powerpc/pseries: Update affinity for memory and cpus specified in a PRRN event 2017-02-02 20:36:38 +11:00
setup_32.c powerpc: Move {d,i,u}cache_bsize definitions to a common place 2017-02-06 19:46:04 +11:00
setup_64.c powerpc/64e: Fix bogus usage of WARN_ONCE() 2017-02-15 20:24:25 +11:00
setup-common.c powerpc: Move {d,i,u}cache_bsize definitions to a common place 2017-02-06 19:46:04 +11:00
setup.h powerpc: Merge 32-bit and 64-bit setup_arch() 2016-07-21 19:17:46 +10:00
signal_32.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
signal_64.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
signal.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
signal.h powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
smp-tbsync.c
smp.c mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
stacktrace.c powerpc: Implement save_stack_trace_regs() to enable kprobe stack tracing 2016-01-11 14:27:28 +11:00
suspend.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S
swsusp.c powerpc/mm: Abstraction for switch_mmu_context() 2016-05-01 18:33:04 +10:00
sys_ppc32.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
syscalls.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
sysfs.c powerpc/sysfs: Convert to hotplug state machine 2016-11-22 23:34:42 +01:00
systbl_chk.c powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
systbl_chk.sh powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
systbl.S powerpc: Add a proper syscall for switching endianness 2015-03-28 22:03:40 +11:00
tau_6xx.c
time.c powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
tm.S powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
trace_clock.c powerpc/ftrace: add powerpc timebase as a trace clock source 2015-08-06 16:36:23 +10:00
traps.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
udbg_16550.c
udbg.c powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
uprobes.c
vdso.c powerpc/64: Clean up ppc64_caches using a struct per cache 2017-02-06 19:46:04 +11:00
vecemu.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
vector.S Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
vmlinux.lds.S powerpc/64: Fix placement of .text to be immediately following .head.text 2016-12-01 22:26:31 +11:00