summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2016-08-04 15:45:32 +0300
committerMax Filippov <jcmvbkbc@gmail.com>2016-09-09 18:38:35 -0700
commit73a3eed0a4800cbe9d99cc6447fed8309d7fcb97 (patch)
tree16bc65b6e01480d678f8306a8dbe27c01c25e2cc /arch
parent9e8511ff7e3f18df7d202da06c9704d940fa68f9 (diff)
xtensa: fix default kernel load address
Make default kernel load address 0xd0003000 for MMUv2 cores and 0x60003000 for noMMU cores. Don't initialize MMU inside vmlinux for predefined MMUv2 cores (it's noop anyway). This fixes the following defconfig build error: arch/xtensa/kernel/built-in.o: In function `fast_alloca': (.text+0x99a): dangerous relocation: j: cannot encode: _WindowUnderflow12 arch/xtensa/kernel/built-in.o: In function `fast_alloca': (.text+0x99d): dangerous relocation: j: cannot encode: _WindowUnderflow8 arch/xtensa/kernel/built-in.o: In function `fast_alloca': (.text+0x9a0): dangerous relocation: j: cannot encode: _WindowUnderflow4 arch/xtensa/kernel/built-in.o: In function `window_overflow_restore_a0_fixup': (.text+0x23a3): dangerous relocation: j: cannot encode: (.DoubleExceptionVector.text+0x104) arch/xtensa/kernel/built-in.o: In function `window_overflow_restore_a0_fixup': (.text+0x23c1): dangerous relocation: j: cannot encode: (.DoubleExceptionVector.text+0x104) arch/xtensa/kernel/built-in.o: In function `window_overflow_restore_a0_fixup': (.text+0x23dd): dangerous relocation: j: cannot encode: (.DoubleExceptionVector.text+0x104) With this change all xtensa defconfigs build correctly. Reported-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/xtensa/Kconfig6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 3f6659c53023..4a866aaed67a 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -212,7 +212,7 @@ config HOTPLUG_CPU
config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
bool "Initialize Xtensa MMU inside the Linux kernel code"
- default y
+ default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM
help
Earlier version initialized the MMU in the exception vector
before jumping to _startup in head.S and had an advantage that
@@ -254,7 +254,9 @@ config KSEG_PADDR
config KERNEL_LOAD_ADDRESS
hex "Kernel load address"
- default 0x00003000
+ default 0x60003000 if !MMU
+ default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
+ default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
help
This is the address where the kernel is loaded.
It is virtual address for MMUv2 configurations and physical address