ARM: fix XIP_KERNEL dependencies
authorArnd Bergmann <arnd@arndb.de>
Thu, 18 Aug 2022 14:17:09 +0000 (16:17 +0200)
committerArnd Bergmann <arnd@arndb.de>
Tue, 30 Aug 2022 09:18:06 +0000 (11:18 +0200)
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: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/Kconfig

index 3066ce8..5375a6a 100644 (file)
@@ -246,7 +246,7 @@ config ARCH_MTD_XIP
 config ARM_PATCH_PHYS_VIRT
        bool "Patch physical to virtual translations at runtime" if EMBEDDED
        default y
-       depends on !XIP_KERNEL && MMU
+       depends on MMU
        help
          Patch phys-to-virt and virt-to-phys translation functions at
          boot and module load time according to the position of the
@@ -975,7 +975,7 @@ config SMP
 
 config SMP_ON_UP
        bool "Allow booting SMP kernel on uniprocessor systems"
-       depends on SMP && !XIP_KERNEL && MMU
+       depends on SMP && MMU
        default y
        help
          SMP kernels contain instructions which fail on non-SMP processors.
@@ -1224,7 +1224,7 @@ config THUMB2_KERNEL
 
 config ARM_PATCH_IDIV
        bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()"
-       depends on CPU_32v7 && !XIP_KERNEL
+       depends on CPU_32v7
        default y
        help
          The ARM compiler inserts calls to __aeabi_idiv() and
@@ -1619,6 +1619,7 @@ endchoice
 config XIP_KERNEL
        bool "Kernel Execute-In-Place from ROM"
        depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
+       depends on !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT && !SMP_ON_UP
        help
          Execute-In-Place allows the kernel to run from non-volatile storage
          directly addressable by the CPU, such as NOR flash. This saves RAM