diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-01-23 06:00:36 -0500 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-02-15 12:46:06 -0500 |
commit | 2e651ea1596b0ee25af4fcdc4cd13cbb33ffc254 (patch) | |
tree | 51210f1cd80327a00e2fd4b0d20849b6329925d6 /arch/arc/Kconfig | |
parent | bf14e3b979a01cd7298d631736f965fe83c6e2bc (diff) |
ARC: Unaligned access emulation
ARC700 doesn't natively support unaligned access, but can be emulated
-Unaligned Access Exception
-Disassembly at the Fault address to find the exact insn (long/short)
Also per Arnd's comment, we runtime control it using 2 sysctl knobs:
* SYSCTL_ARCH_UNALIGN_ALLOW: Runtime enable/disble
* SYSCTL_ARCH_UNALIGN_NO_WARN: Warn on each emulation attempt
Originally contributed by Tim Yao <tim.yao@amlogic.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Tim Yao <tim.yao@amlogic.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arc/Kconfig')
-rw-r--r-- | arch/arc/Kconfig | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index cde8d3fcec94..f8042835e746 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig | |||
@@ -336,6 +336,17 @@ config ARC_CURR_IN_REG | |||
336 | This reserved Register R25 to point to Current Task in | 336 | This reserved Register R25 to point to Current Task in |
337 | kernel mode. This saves memory access for each such access | 337 | kernel mode. This saves memory access for each such access |
338 | 338 | ||
339 | |||
340 | config ARC_MISALIGN_ACCESS | ||
341 | bool "Emulate unaligned memory access (userspace only)" | ||
342 | default N | ||
343 | select SYSCTL_ARCH_UNALIGN_NO_WARN | ||
344 | select SYSCTL_ARCH_UNALIGN_ALLOW | ||
345 | help | ||
346 | This enables misaligned 16 & 32 bit memory access from user space. | ||
347 | Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide | ||
348 | potential bugs in code | ||
349 | |||
339 | config ARC_STACK_NONEXEC | 350 | config ARC_STACK_NONEXEC |
340 | bool "Make stack non-executable" | 351 | bool "Make stack non-executable" |
341 | default n | 352 | default n |