linux/arch/powerpc
Christophe Leroy f76c8f6d25 powerpc/8xx: Add function to set pinned TLBs
Pinned TLBs cannot be modified when the MMU is enabled.

Create a function to rewrite the pinned TLB entries with MMU off.

To set pinned TLB, we have to turn off MMU, disable pinning,
do a TLB flush (Either with tlbie and tlbia) then reprogam
the TLB entries, enable pinning and turn on MMU.

If using tlbie, it cleared entries in both instruction and data
TLB regardless whether pinning is disabled or not.
If using tlbia, it clears all entries of the TLB which has
disabled pinning.

To make it easy, just clear all entries in both TLBs, and
reprogram them.

The function takes two arguments, the top of the memory to
consider and whether data is RO under _sinittext.
When DEBUG_PAGEALLOC is set, the top is the end of kernel rodata.
Otherwise, that's the top of physical RAM.

Everything below _sinittext is set RX, over _sinittext that's RW.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/c17806014bb1c06513ad1e1d510faea31984b177.1589866984.git.christophe.leroy@csgroup.eu
2020-05-26 22:22:21 +10:00
..
boot powerpc/wrapper: Output linker map file 2020-05-19 00:10:35 +10:00
configs powerpc/8xx: Drop CONFIG_8xx_COPYBACK option 2020-05-26 22:22:20 +10:00
crypto crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
include powerpc/8xx: Add function to set pinned TLBs 2020-05-26 22:22:21 +10:00
kernel powerpc/8xx: Add function to set pinned TLBs 2020-05-26 22:22:21 +10:00
kexec powerpc updates for 5.7 2020-04-05 11:12:59 -07:00
kvm powerpc/watchpoint: Rename current DAWR macros 2020-05-19 00:11:03 +10:00
lib powerpc sstep: Add support for prefixed fixed-point arithmetic 2020-05-19 00:11:03 +10:00
math-emu
mm powerpc/8xx: Only 8M pages are hugepte pages now 2020-05-26 22:22:21 +10:00
net treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
oprofile powerpc updates for 5.6 2020-02-04 13:06:46 +00:00
perf powerpc: Use a datatype for instructions 2020-05-19 00:10:37 +10:00
platforms powerpc/8xx: Move PPC_PIN_TLB options into 8xx Kconfig 2020-05-26 22:22:21 +10:00
purgatory .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
sysdev powerpc/xive: Define xive_native_alloc_irq_on_chip() 2020-04-20 16:52:59 +10:00
tools powerpc/head_check: Avoid broken pipe 2020-05-19 00:10:35 +10:00
xmon powerpc/watchpoint/xmon: Support 2nd DAWR 2020-05-19 00:14:45 +10:00
Kbuild powerpc/kexec: Move kexec files into a dedicated subdir. 2019-11-21 15:41:34 +11:00
Kconfig powerpc/8xx: Move PPC_PIN_TLB options into 8xx Kconfig 2020-05-26 22:22:21 +10:00
Kconfig.debug powerpc/ptdump: Only enable PPC_CHECK_WX with STRICT_KERNEL_RWX 2020-01-23 21:31:13 +11:00
Makefile powerpc: Suppress .eh_frame generation 2020-04-01 14:30:51 +11:00
Makefile.postlink powerpc: Do not consider weak unresolved symbol relocations as bad 2020-01-31 20:17:22 +11:00