linux/arch/powerpc
Ram Pai cf43d3b264 powerpc: Enable pkey subsystem
PAPR defines 'ibm,processor-storage-keys' property. It exports two
values. The first value holds the number of data-access keys and the
second holds the number of instruction-access keys. Due to a bug in
the firmware, instruction-access keys is always reported as zero.
However any key can be configured to disable data-access and/or
disable execution-access. The inavailablity of the second value is not
a big handicap, though it could have been used to determine if the
platform supported disable-execution-access.

Non-PAPR platforms do not define this property in the device tree yet.
Fortunately power8 is the only released Non-PAPR platform that is
supported. Here, we hardcode the number of supported pkey to 32, by
consulting the PowerISA3.0

This patch calculates the number of keys supported by the platform.
Also it determines the platform support for read/write/execution
access support for pkeys.

Signed-off-by: Ram Pai <linuxram@us.ibm.com>
[mpe: Use a PVR check instead of CPU_FTR for execute. Restrict to
 Power7/8/9 for now until older CPUs are tested.]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-01-21 01:06:10 +11:00
..
boot powerpc/boot: Only build CPM code when necessary 2017-12-11 13:03:31 +11:00
configs powerpc: Add aacraid and nvme to powernv_defconfig 2018-01-16 23:47:15 +11:00
crypto License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
include powerpc: Enable pkey subsystem 2018-01-21 01:06:10 +11:00
kernel powerpc/ptrace: Add memory protection key regset 2018-01-20 22:59:06 +11:00
kvm powerpc/64: Rename soft_enabled to irq_soft_mask 2018-01-19 22:37:01 +11:00
lib powerpc/modules: Don't try to restore r2 after a sibling call 2017-12-11 13:03:29 +11:00
math-emu License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mm powerpc: Enable pkey subsystem 2018-01-21 01:06:10 +11:00
net powerpc updates for 4.15 2017-11-16 12:47:46 -08:00
oprofile treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
perf powerpc/perf: Change the data type for the variable 'ncpu' in IMC code 2018-01-19 23:05:01 +11:00
platforms powerpc/powernv: Add debugfs interface for imc-mode and imc-command 2018-01-19 23:05:00 +11:00
purgatory License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sysdev powerpc/xive: Remove incorrect debug code 2018-01-16 23:48:04 +11:00
tools License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xmon powerpc/64: Rename soft_enabled to irq_soft_mask 2018-01-19 22:37:01 +11:00
Kconfig powerpc: initial pkey plumbing 2018-01-20 21:45:03 +11:00
Kconfig.debug powerpc: Add new kconfig CONFIG_PPC_IRQ_SOFT_MASK_DEBUG 2018-01-19 22:37:03 +11:00
Makefile powerpc/modules: Fix alignment of .toc section in kernel modules 2017-12-11 13:03:35 +11:00
Makefile.postlink License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00