summaryrefslogtreecommitdiffstats
path: root/arch/xtensa/Kconfig
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2023-06-14 01:51:18 +0200
committerMax Filippov <jcmvbkbc@gmail.com>2023-06-14 06:56:27 +0200
commitf29cf77609cc401d28e2e7ec5c57d9d178ef347d (patch)
tree54198dcf0f6c2fd2d1720845d9b1f2302211cb55 /arch/xtensa/Kconfig
parentxtensa: rearrange unaligned exception handler (diff)
downloadlinux-f29cf77609cc401d28e2e7ec5c57d9d178ef347d.tar.xz
linux-f29cf77609cc401d28e2e7ec5c57d9d178ef347d.zip
xtensa: add load/store exception handler
Memory attached to instruction bus of the xtensa CPU is only accessible for a limited subset of opcodes. Other opcodes generate an exception with the load/store error cause code. This property complicates use of such systems. Provide a handler that recognizes and transparently fixes such exceptions. The following opcodes are recognized when used outside of FLIX bundles: l32i, l32i.n, l16ui, l16si, l8ui. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/Kconfig')
-rw-r--r--arch/xtensa/Kconfig12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 45f72c8fa911..c1bcfc2a8581 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -203,6 +203,18 @@ config XTENSA_UNALIGNED_USER
Say Y here to enable unaligned memory access in user space.
+config XTENSA_LOAD_STORE
+ bool "Load/store exception handler for memory only readable with l32"
+ help
+ The Xtensa architecture only allows reading memory attached to its
+ instruction bus with l32r and l32i instructions, all other
+ instructions raise an exception with the LoadStoreErrorCause code.
+ This makes it hard to use some configurations, e.g. store string
+ literals in FLASH memory attached to the instruction bus.
+
+ Say Y here to enable exception handler that allows transparent
+ byte and 2-byte access to memory attached to instruction bus.
+
config HAVE_SMP
bool "System Supports SMP (MX)"
depends on XTENSA_VARIANT_CUSTOM