Commit 5408445b authored by Arnd Bergmann's avatar Arnd Bergmann

ARM: fix XIP_KERNEL dependencies

CONFIG_XIP_KERNEL does not work with any option that involves patching
the read-only kernel .text.

Since at least CONFIG_SMP_ON_UP is required in certain configurations,
flip the dependency to always allow the .text patching options but make
XIP_KERNEL have the dependency instead.

This is a prerequisite for allowing CONFIG_ARCH_MULTIPLATFORM to
be disabled.
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 6fd09c9a
...@@ -246,7 +246,7 @@ config ARCH_MTD_XIP ...@@ -246,7 +246,7 @@ config ARCH_MTD_XIP
config ARM_PATCH_PHYS_VIRT config ARM_PATCH_PHYS_VIRT
bool "Patch physical to virtual translations at runtime" if EMBEDDED bool "Patch physical to virtual translations at runtime" if EMBEDDED
default y default y
depends on !XIP_KERNEL && MMU depends on MMU
help help
Patch phys-to-virt and virt-to-phys translation functions at Patch phys-to-virt and virt-to-phys translation functions at
boot and module load time according to the position of the boot and module load time according to the position of the
...@@ -975,7 +975,7 @@ config SMP ...@@ -975,7 +975,7 @@ config SMP
config SMP_ON_UP config SMP_ON_UP
bool "Allow booting SMP kernel on uniprocessor systems" bool "Allow booting SMP kernel on uniprocessor systems"
depends on SMP && !XIP_KERNEL && MMU depends on SMP && MMU
default y default y
help help
SMP kernels contain instructions which fail on non-SMP processors. SMP kernels contain instructions which fail on non-SMP processors.
...@@ -1224,7 +1224,7 @@ config THUMB2_KERNEL ...@@ -1224,7 +1224,7 @@ config THUMB2_KERNEL
config ARM_PATCH_IDIV config ARM_PATCH_IDIV
bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()" bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()"
depends on CPU_32v7 && !XIP_KERNEL depends on CPU_32v7
default y default y
help help
The ARM compiler inserts calls to __aeabi_idiv() and The ARM compiler inserts calls to __aeabi_idiv() and
...@@ -1619,6 +1619,7 @@ endchoice ...@@ -1619,6 +1619,7 @@ endchoice
config XIP_KERNEL config XIP_KERNEL
bool "Kernel Execute-In-Place from ROM" bool "Kernel Execute-In-Place from ROM"
depends on !ARM_LPAE && !ARCH_MULTIPLATFORM depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
depends on !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT && !SMP_ON_UP
help help
Execute-In-Place allows the kernel to run from non-volatile storage Execute-In-Place allows the kernel to run from non-volatile storage
directly addressable by the CPU, such as NOR flash. This saves RAM directly addressable by the CPU, such as NOR flash. This saves RAM
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment