@@ -226,6 +226,9 @@ config NEED_RET_TO_USER
config ARCH_MTD_XIP
bool
+config MULTIPLATFORM_XIP_CAPABLE
+ bool
+
config VECTORS_BASE
hex
default 0xffff0000 if MMU || CPU_HIGH_VECTOR
@@ -327,7 +330,7 @@ config ARCH_MULTIPLATFORM
depends on MMU
select ARCH_WANT_OPTIONAL_GPIOLIB
select ARM_HAS_SG_CHAIN
- select ARM_PATCH_PHYS_VIRT
+ select ARM_PATCH_PHYS_VIRT if !XIP_KERNEL
select AUTO_ZRELADDR
select CLKSRC_OF
select COMMON_CLK
@@ -1918,7 +1921,7 @@ endchoice
config XIP_KERNEL
bool "Kernel Execute-In-Place from ROM"
- depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
+ depends on (!ARM_LPAE && !ARCH_MULTIPLATFORM) || (!ARM_LPAE && MULTIPLATFORM_XIP_CAPABLE)
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
@@ -57,6 +57,7 @@ config ARCH_R7S72100
bool "RZ/A1H (R7S72100)"
select PM_GENERIC_DOMAINS if PM
select SYS_SUPPORTS_SH_MTU2
+ select MULTIPLATFORM_XIP_CAPABLE
config ARCH_R8A73A4
bool "R-Mobile APE6 (R8A73A40)"
As devices move to multiplatform only, you should not be restricted from selecting XIP. Whether it makes sense or not depends on how you configure the rest of the kernel (as in, removing individual platforms). While there is no easy way to guarantee success when XIP is selected, the MULTIPLATFORM_XIP_CAPABLE attribute at least provides a means to show what devices have been known to boot (when configured correctly). Signed-off-by: Chris Brandt <chris.brandt@renesas.com> --- v2: * Added MULTIPLATFORM_XIP_CAPABLE because there is no good way to restrict that only 1 device can be selected at one time, so this at least narrows down the the exposure of XIP in multiplatform. --- arch/arm/Kconfig | 7 +++++-- arch/arm/mach-shmobile/Kconfig | 1 + 2 files changed, 6 insertions(+), 2 deletions(-)