default 16
 
 config ARCH_MULTIPLATFORM
-       def_bool MMU && !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
+       bool "Require kernel to be portable to multiple machines" if EXPERT
+       depends on MMU && !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
+       default y
+       help
+         In general, all Arm machines can be supported in a single
+         kernel image, covering either Armv4/v5 or Armv6/v7.
+
+         However, some configuration options require hardcoding machine
+         specific physical addresses or enable errata workarounds that may
+         break other machines.
+
+         Selecting N here allows using those options, including
+         DEBUG_UNCOMPRESS, XIP_KERNEL and ZBOOT_ROM. If unsure, say Y.
 
 menu "Platform selection"
        depends on MMU
 
 config CMDLINE_FORCE
        bool "Always use the default kernel command string"
+       depends on !ARCH_MULTIPLATFORM
        help
          Always use the default kernel command string, even if the boot
          loader passes other arguments to the kernel.
 
 
 config DEBUG_UNCOMPRESS
        bool "Enable decompressor debugging via DEBUG_LL output"
+       depends on !ARCH_MULTIPLATFORM
        depends on !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
        depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
                     (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
 
 {
        const struct machine_desc *mdesc, *mdesc_best = NULL;
 
-#if defined(CONFIG_ARCH_MULTIPLATFORM) || defined(CONFIG_ARM_SINGLE_ARMV7M)
        DT_MACHINE_START(GENERIC_DT, "Generic DT based system")
                .l2c_aux_val = 0x0,
                .l2c_aux_mask = ~0x0,
        MACHINE_END
 
        mdesc_best = &__mach_desc_GENERIC_DT;
-#endif
 
        if (!dt_virt || !early_init_dt_verify(dt_virt))
                return NULL;
 
 # SPDX-License-Identifier: GPL-2.0
-ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include
+ccflags-y := -I$(srctree)/arch/arm/plat-orion/include
 
 obj-y                          += common.o
 obj-$(CONFIG_DOVE_LEGACY)      += irq.o mpp.o
 
 # SPDX-License-Identifier: GPL-2.0
-ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include
+ccflags-y := -I$(srctree)/arch/arm/plat-orion/include
 
 obj-y                          += common.o mpp.o irq.o pcie.o
 obj-$(CONFIG_MACH_DB78X00_BP)  += db78x00-bp-setup.o
 
 # SPDX-License-Identifier: GPL-2.0
-ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include
+ccflags-y := -I$(srctree)/arch/arm/plat-orion/include
 
 AFLAGS_coherency_ll.o          := -Wa,-march=armv7-a
 CFLAGS_pmsu.o                  := -march=armv7-a
 
 # SPDX-License-Identifier: GPL-2.0
-ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include
+ccflags-y := -I$(srctree)/arch/arm/plat-orion/include
 
 obj-y                          += common.o pci.o irq.o mpp.o
 obj-$(CONFIG_MACH_DB88F5281)   += db88f5281-setup.o