* [PATCH 0/5] ARM: clean up after multiplatform changes
@ 2022-08-18 14:56 Arnd Bergmann
2022-08-18 14:56 ` [PATCH 1/5] ARM: remove obsolete Makefile.boot infrastructure Arnd Bergmann
` (4 more replies)
0 siblings, 5 replies; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-18 14:56 UTC (permalink / raw)
To: linux-arm-kernel
Cc: linux-kernel, Arnd Bergmann, Russell King, Linus Walleij,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
From: Arnd Bergmann <arnd@arndb.de>
Now that everything except StrongARM is unified under
CONFIG_ARCH_MULTIPLATFORM, the option is rather meaningless
in its current form.
Rework the Kconfig logic to make this useful again, similar
to the way that RISC-V has CONFIG_NONPORTABLE (with the
opposite polarity), this now controls the visibility of
options that get in the way of building generic kernels,
while allowing custom kernels.
One side-effect is that 'randconfig' builds now rarely hit
strongarm machines, rather than testing them three quarters
of the time.
Arnd Bergmann (5):
ARM: remove obsolete Makefile.boot infrastructure
ARM: simplify machdirs/platdirs handling
ARM: Kconfig: clean up platform selection
ARM: fix CPU_V6 dependencies
ARM: make ARCH_MULTIPLATFORM user-visible
arch/arm/Kconfig | 123 ++++++-------------------
arch/arm/Kconfig.debug | 8 +-
arch/arm/Makefile | 40 +++-----
arch/arm/boot/Makefile | 27 ++----
arch/arm/boot/bootp/Makefile | 35 ++++++-
arch/arm/configs/assabet_defconfig | 2 +
arch/arm/configs/badge4_defconfig | 2 +
arch/arm/configs/cerfcube_defconfig | 2 +
arch/arm/configs/collie_defconfig | 2 +
arch/arm/configs/footbridge_defconfig | 2 +
arch/arm/configs/h3600_defconfig | 2 +
arch/arm/configs/hackkit_defconfig | 2 +
arch/arm/configs/jornada720_defconfig | 2 +
arch/arm/configs/lart_defconfig | 2 +
arch/arm/configs/neponset_defconfig | 2 +
arch/arm/configs/netwinder_defconfig | 2 +
arch/arm/configs/pleb_defconfig | 2 +
arch/arm/configs/rpc_defconfig | 2 +
arch/arm/configs/shannon_defconfig | 2 +
arch/arm/configs/simpad_defconfig | 2 +
arch/arm/kernel/devtree.c | 2 -
arch/arm/mach-at91/Makefile.boot | 4 -
arch/arm/mach-davinci/Makefile.boot | 8 --
arch/arm/mach-dove/Makefile | 2 +-
arch/arm/mach-dove/Makefile.boot | 4 -
arch/arm/mach-ep93xx/Makefile.boot | 2 -
arch/arm/mach-footbridge/Kconfig | 19 +++-
arch/arm/mach-footbridge/Makefile.boot | 5 -
arch/arm/mach-imx/Kconfig | 3 +-
arch/arm/mach-imx/Makefile.boot | 0
arch/arm/mach-iop32x/Makefile.boot | 4 -
arch/arm/mach-lpc18xx/Makefile.boot | 4 -
arch/arm/mach-lpc32xx/Makefile.boot | 4 -
arch/arm/mach-mv78xx0/Makefile | 2 +-
arch/arm/mach-mvebu/Makefile | 2 +-
arch/arm/mach-nspire/Kconfig | 2 +-
arch/arm/mach-omap1/Makefile.boot | 4 -
arch/arm/mach-omap2/Kconfig | 1 +
arch/arm/mach-orion5x/Makefile | 2 +-
arch/arm/mach-rpc/Kconfig | 21 +++++
arch/arm/mach-rpc/Makefile.boot | 5 -
arch/arm/mach-s3c/Makefile.boot | 9 --
arch/arm/mach-sa1100/Kconfig | 25 ++++-
arch/arm/mach-sa1100/Makefile.boot | 9 --
arch/arm/mach-stm32/Makefile.boot | 4 -
arch/arm/mach-versatile/Kconfig | 2 +
arch/arm/mach-versatile/Makefile.boot | 4 -
arch/arm/mach-vt8500/Makefile.boot | 4 -
48 files changed, 181 insertions(+), 239 deletions(-)
delete mode 100644 arch/arm/mach-at91/Makefile.boot
delete mode 100644 arch/arm/mach-davinci/Makefile.boot
delete mode 100644 arch/arm/mach-dove/Makefile.boot
delete mode 100644 arch/arm/mach-ep93xx/Makefile.boot
delete mode 100644 arch/arm/mach-footbridge/Makefile.boot
delete mode 100644 arch/arm/mach-imx/Makefile.boot
delete mode 100644 arch/arm/mach-iop32x/Makefile.boot
delete mode 100644 arch/arm/mach-lpc18xx/Makefile.boot
delete mode 100644 arch/arm/mach-lpc32xx/Makefile.boot
delete mode 100644 arch/arm/mach-omap1/Makefile.boot
create mode 100644 arch/arm/mach-rpc/Kconfig
delete mode 100644 arch/arm/mach-rpc/Makefile.boot
delete mode 100644 arch/arm/mach-s3c/Makefile.boot
delete mode 100644 arch/arm/mach-sa1100/Makefile.boot
delete mode 100644 arch/arm/mach-stm32/Makefile.boot
delete mode 100644 arch/arm/mach-versatile/Makefile.boot
delete mode 100644 arch/arm/mach-vt8500/Makefile.boot
--
2.29.2
Cc: Russell King <linux@armlinux.org.uk>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Sekhar Nori <nsekhar@ti.com>
Cc: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 1/5] ARM: remove obsolete Makefile.boot infrastructure
2022-08-18 14:56 [PATCH 0/5] ARM: clean up after multiplatform changes Arnd Bergmann
@ 2022-08-18 14:56 ` Arnd Bergmann
2022-08-19 7:45 ` Krzysztof Kozlowski
2022-08-18 14:56 ` [PATCH 2/5] ARM: simplify machdirs/platdirs handling Arnd Bergmann
` (3 subsequent siblings)
4 siblings, 1 reply; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-18 14:56 UTC (permalink / raw)
To: linux-arm-kernel
Cc: linux-kernel, Arnd Bergmann, Russell King, Linus Walleij,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
From: Arnd Bergmann <arnd@arndb.de>
There are a number of old Makefile.boot files that remain from the
multiplatform conversion, and three that are still in use.
These provide the "ZRELADDR", "PARAMS_PHYS" and "INITRD_PHYS" values
that are platform specific. It turns out that we can generally just
derive this from information that is available elsewhere:
- ZRELADDR is normally detected at runtime with the
CONFIG_AUTO_ZRELADDR flag, but also needed to be passed to
for 'make uImage'. In a multiplatform kernel, one always has
to pass this as the $(LOADADDR) variable, but in the StrongARM
kernels we can derive it from the sum of $(CONFIG_PHYS_OFFSET)
and $(TEXT_OFFSET) that are already known.
- PARAMS_PHYS and INITRD_PHYS are only used for bootpImage, which
in turn is only used for the pre-ATAGS 'param_struct' based boot
interface on StrongARM based machines with old boot loaders.
They can both be derived from CONFIG_PHYS_OFFSET and a machine
specific offset for the initrd, so all of the logic for these
can be part of arch/arm/boot/bootp/Makefile.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/Kconfig | 2 +-
arch/arm/Makefile | 4 +--
arch/arm/boot/Makefile | 27 ++++++--------------
arch/arm/boot/bootp/Makefile | 35 ++++++++++++++++++++++++--
arch/arm/mach-at91/Makefile.boot | 4 ---
arch/arm/mach-davinci/Makefile.boot | 8 ------
arch/arm/mach-dove/Makefile.boot | 4 ---
arch/arm/mach-ep93xx/Makefile.boot | 2 --
| 5 ----
arch/arm/mach-imx/Makefile.boot | 0
arch/arm/mach-iop32x/Makefile.boot | 4 ---
arch/arm/mach-lpc18xx/Makefile.boot | 4 ---
arch/arm/mach-lpc32xx/Makefile.boot | 4 ---
arch/arm/mach-omap1/Makefile.boot | 4 ---
arch/arm/mach-rpc/Makefile.boot | 5 ----
arch/arm/mach-s3c/Makefile.boot | 9 -------
arch/arm/mach-sa1100/Makefile.boot | 9 -------
arch/arm/mach-stm32/Makefile.boot | 4 ---
arch/arm/mach-versatile/Makefile.boot | 4 ---
arch/arm/mach-vt8500/Makefile.boot | 4 ---
20 files changed, 43 insertions(+), 99 deletions(-)
delete mode 100644 arch/arm/mach-at91/Makefile.boot
delete mode 100644 arch/arm/mach-davinci/Makefile.boot
delete mode 100644 arch/arm/mach-dove/Makefile.boot
delete mode 100644 arch/arm/mach-ep93xx/Makefile.boot
delete mode 100644 arch/arm/mach-footbridge/Makefile.boot
delete mode 100644 arch/arm/mach-imx/Makefile.boot
delete mode 100644 arch/arm/mach-iop32x/Makefile.boot
delete mode 100644 arch/arm/mach-lpc18xx/Makefile.boot
delete mode 100644 arch/arm/mach-lpc32xx/Makefile.boot
delete mode 100644 arch/arm/mach-omap1/Makefile.boot
delete mode 100644 arch/arm/mach-rpc/Makefile.boot
delete mode 100644 arch/arm/mach-s3c/Makefile.boot
delete mode 100644 arch/arm/mach-sa1100/Makefile.boot
delete mode 100644 arch/arm/mach-stm32/Makefile.boot
delete mode 100644 arch/arm/mach-versatile/Makefile.boot
delete mode 100644 arch/arm/mach-vt8500/Makefile.boot
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 87badeae3181..6894b4758bfb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -274,7 +274,7 @@ config NEED_MACH_MEMORY_H
config PHYS_OFFSET
hex "Physical address of main memory" if MMU
- depends on !ARM_PATCH_PHYS_VIRT
+ depends on !ARM_PATCH_PHYS_VIRT || !AUTO_ZRELADDR
default DRAM_BASE if !MMU
default 0x00000000 if ARCH_FOOTBRIDGE
default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 56f655deebb1..369490d5f18a 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -310,7 +310,7 @@ bootpImage uImage: zImage
zImage: Image
$(BOOT_TARGETS): vmlinux
- $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
+ $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
@$(kecho) ' Kernel: $(boot)/$@ is ready'
$(INSTALL_TARGETS): KBUILD_IMAGE = $(boot)/$(patsubst %install,%Image,$@)
@@ -324,7 +324,7 @@ ifeq ($(CONFIG_VDSO),y)
endif
# My testing targets (bypasses dependencies)
-bp:; $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/bootpImage
+bp:; $(Q)$(MAKE) $(build)=$(boot) $(boot)/bootpImage
define archhelp
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index 54a09f9464fb..abd6a2889fd0 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -10,22 +10,16 @@
#
# Copyright (C) 1995-2002 Russell King
#
-
OBJCOPYFLAGS :=-O binary -R .comment -S
-ifneq ($(MACHINE),)
-include $(MACHINE)/Makefile.boot
-endif
-
-# Note: the following conditions must always be true:
# ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
-# PARAMS_PHYS must be within 4MB of ZRELADDR
-# INITRD_PHYS must be in RAM
-ZRELADDR := $(zreladdr-y)
-PARAMS_PHYS := $(params_phys-y)
-INITRD_PHYS := $(initrd_phys-y)
+ifdef CONFIG_PHYS_OFFSET
+add_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) )
+ZRELADDR := $(call add_hex, $(CONFIG_PHYS_OFFSET), $(TEXT_OFFSET))
+endif
-export ZRELADDR INITRD_PHYS PARAMS_PHYS
+PHYS_OFFSET := $(CONFIG_PHYS_OFFSET)
+export ZRELADDR PARAMS_PHYS PHYS_OFFSET
targets := Image zImage xipImage bootpImage uImage
@@ -90,17 +84,10 @@ $(obj)/uImage: $(obj)/zImage FORCE
@$(check_for_multiple_loadaddr)
$(call if_changed,uimage)
-$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
+$(obj)/bootp/bootp: $(obj)/zImage FORCE
$(Q)$(MAKE) $(build)=$(obj)/bootp $@
$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
$(call if_changed,objcopy)
-PHONY += initrd
-initrd:
- @test "$(INITRD_PHYS)" != "" || \
- (echo This machine does not support INITRD; exit -1)
- @test "$(INITRD)" != "" || \
- (echo You must specify INITRD; exit -1)
-
subdir- := bootp compressed dts
diff --git a/arch/arm/boot/bootp/Makefile b/arch/arm/boot/bootp/Makefile
index 981a8d03f064..a2934e6fd89a 100644
--- a/arch/arm/boot/bootp/Makefile
+++ b/arch/arm/boot/bootp/Makefile
@@ -5,9 +5,40 @@
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies.
#
-
GCOV_PROFILE := n
+ifdef PHYS_OFFSET
+add_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) )
+
+# If PHYS_OFFSET is set, INITRD_PHYS and PARAMS_PHYS can be derived,
+# otherwise they must be passed on the command line.
+#
+# Note: the following conditions must always be true:
+# PARAMS_PHYS must be within 4MB of ZRELADDR
+# INITRD_PHYS must be in RAM
+
+PARAMS_PHYS := $(call add_hex, $(PHYS_OFFSET), 0x100)
+
+# guess an initrd location if possible
+initrd_offset-$(CONFIG_ARCH_FOOTBRIDGE) += 0x00800000
+initrd_offset-$(CONFIG_ARCH_SA1100) += 0x00800000
+initrd_offset-$(CONFIG_ARCH_RPC) += 0x08000000
+INITRD_OFFSET := $(initrd_offset-y)
+ifdef INITRD_OFFSET
+INITRD_PHYS := $(call add_hex, $(PHYS_OFFSET), $(INITRD_OFFSET))
+endif
+
+endif
+
+PHONY += initrd
+initrd:
+ @test "$(PARAMS_PHYS)" != "" || \
+ (echo bootpImage: You must specify PHYS_OFFSET of PARAMS_PHYS ; exit -1)
+ @test "$(INITRD_PHYS)" != "" || \
+ (echo bootpImage: You must specify INITRD_OFFSET or INITRD_PHYS ; exit -1)
+ @test "$(INITRD)" != "" || \
+ (echo bootpImage: You must specify INITRD; exit -1)
+
LDFLAGS_bootp := --no-undefined -X \
--defsym initrd_phys=$(INITRD_PHYS) \
--defsym params_phys=$(PARAMS_PHYS) -T
@@ -24,6 +55,6 @@ $(obj)/bootp: $(src)/bootp.lds $(addprefix $(obj)/,init.o kernel.o initrd.o) FOR
$(obj)/kernel.o: arch/arm/boot/zImage FORCE
-$(obj)/initrd.o: $(INITRD) FORCE
+$(obj)/initrd.o: initrd $(INITRD) FORCE
PHONY += $(INITRD)
diff --git a/arch/arm/mach-at91/Makefile.boot b/arch/arm/mach-at91/Makefile.boot
deleted file mode 100644
index 5dde7328a7a9..000000000000
--- a/arch/arm/mach-at91/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Empty file waiting for deletion once Makefile.boot isn't needed any more.
-# Patch waits for application at
-# https://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
diff --git a/arch/arm/mach-davinci/Makefile.boot b/arch/arm/mach-davinci/Makefile.boot
deleted file mode 100644
index d36b251f325b..000000000000
--- a/arch/arm/mach-davinci/Makefile.boot
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-zreladdr-$(CONFIG_ARCH_DAVINCI_DA8XX) += 0xc0008000
-params_phys-$(CONFIG_ARCH_DAVINCI_DA8XX) := 0xc0000100
-initrd_phys-$(CONFIG_ARCH_DAVINCI_DA8XX) := 0xc0800000
-
-zreladdr-$(CONFIG_ARCH_DAVINCI_DMx) += 0x80008000
-params_phys-$(CONFIG_ARCH_DAVINCI_DMx) := 0x80000100
-initrd_phys-$(CONFIG_ARCH_DAVINCI_DMx) := 0x80800000
diff --git a/arch/arm/mach-dove/Makefile.boot b/arch/arm/mach-dove/Makefile.boot
deleted file mode 100644
index e4dd1d26038f..000000000000
--- a/arch/arm/mach-dove/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
- zreladdr-y += 0x00008000
-params_phys-y := 0x00000100
-initrd_phys-y := 0x00800000
diff --git a/arch/arm/mach-ep93xx/Makefile.boot b/arch/arm/mach-ep93xx/Makefile.boot
deleted file mode 100644
index 4c0a039a5027..000000000000
--- a/arch/arm/mach-ep93xx/Makefile.boot
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Empty file waiting for deletion once Makefile.boot isn't needed any more.
diff --git a/arch/arm/mach-footbridge/Makefile.boot b/arch/arm/mach-footbridge/Makefile.boot
deleted file mode 100644
index e4313e912cac..000000000000
--- a/arch/arm/mach-footbridge/Makefile.boot
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
- zreladdr-y += 0x00008000
-params_phys-y := 0x00000100
-initrd_phys-y := 0x00800000
-
diff --git a/arch/arm/mach-imx/Makefile.boot b/arch/arm/mach-imx/Makefile.boot
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/arch/arm/mach-iop32x/Makefile.boot b/arch/arm/mach-iop32x/Makefile.boot
deleted file mode 100644
index 5c3af01c4000..000000000000
--- a/arch/arm/mach-iop32x/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
- zreladdr-y += 0xa0008000
-params_phys-y := 0xa0000100
-initrd_phys-y := 0xa0800000
diff --git a/arch/arm/mach-lpc18xx/Makefile.boot b/arch/arm/mach-lpc18xx/Makefile.boot
deleted file mode 100644
index cec195d4fcba..000000000000
--- a/arch/arm/mach-lpc18xx/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Empty file waiting for deletion once Makefile.boot isn't needed any more.
-# Patch waits for application at
-# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
diff --git a/arch/arm/mach-lpc32xx/Makefile.boot b/arch/arm/mach-lpc32xx/Makefile.boot
deleted file mode 100644
index 37d09ddb27f8..000000000000
--- a/arch/arm/mach-lpc32xx/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
- zreladdr-y += 0x80008000
-params_phys-y := 0x80000100
-initrd_phys-y := 0x82000000
diff --git a/arch/arm/mach-omap1/Makefile.boot b/arch/arm/mach-omap1/Makefile.boot
deleted file mode 100644
index 2c771515a606..000000000000
--- a/arch/arm/mach-omap1/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
- zreladdr-y += 0x10008000
-params_phys-y := 0x10000100
-initrd_phys-y := 0x10800000
diff --git a/arch/arm/mach-rpc/Makefile.boot b/arch/arm/mach-rpc/Makefile.boot
deleted file mode 100644
index 0ed8e8fbde99..000000000000
--- a/arch/arm/mach-rpc/Makefile.boot
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
- zreladdr-y += 0x10008000
-params_phys-y := 0x10000100
-initrd_phys-y := 0x18000000
-
diff --git a/arch/arm/mach-s3c/Makefile.boot b/arch/arm/mach-s3c/Makefile.boot
deleted file mode 100644
index 7f19e226035e..000000000000
--- a/arch/arm/mach-s3c/Makefile.boot
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-
-ifeq ($(CONFIG_PM_H1940),y)
- zreladdr-y += 0x30108000
- params_phys-y := 0x30100100
-else
- zreladdr-y += 0x30008000
- params_phys-y := 0x30000100
-endif
diff --git a/arch/arm/mach-sa1100/Makefile.boot b/arch/arm/mach-sa1100/Makefile.boot
deleted file mode 100644
index 9d8246f2cab4..000000000000
--- a/arch/arm/mach-sa1100/Makefile.boot
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-ifeq ($(CONFIG_SA1111),y)
- zreladdr-y += 0xc0208000
-else
- zreladdr-y += 0xc0008000
-endif
-params_phys-y := 0xc0000100
-initrd_phys-y := 0xc0800000
-
diff --git a/arch/arm/mach-stm32/Makefile.boot b/arch/arm/mach-stm32/Makefile.boot
deleted file mode 100644
index 5dde7328a7a9..000000000000
--- a/arch/arm/mach-stm32/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Empty file waiting for deletion once Makefile.boot isn't needed any more.
-# Patch waits for application at
-# https://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
diff --git a/arch/arm/mach-versatile/Makefile.boot b/arch/arm/mach-versatile/Makefile.boot
deleted file mode 100644
index cec195d4fcba..000000000000
--- a/arch/arm/mach-versatile/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Empty file waiting for deletion once Makefile.boot isn't needed any more.
-# Patch waits for application at
-# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
diff --git a/arch/arm/mach-vt8500/Makefile.boot b/arch/arm/mach-vt8500/Makefile.boot
deleted file mode 100644
index 883985f4b6c1..000000000000
--- a/arch/arm/mach-vt8500/Makefile.boot
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
- zreladdr-y += 0x00008000
-params_phys-y := 0x00000100
-initrd_phys-y := 0x01000000
--
2.29.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 2/5] ARM: simplify machdirs/platdirs handling
2022-08-18 14:56 [PATCH 0/5] ARM: clean up after multiplatform changes Arnd Bergmann
2022-08-18 14:56 ` [PATCH 1/5] ARM: remove obsolete Makefile.boot infrastructure Arnd Bergmann
@ 2022-08-18 14:56 ` Arnd Bergmann
2022-08-18 14:56 ` [PATCH 3/5] ARM: Kconfig: clean up platform selection Arnd Bergmann
` (2 subsequent siblings)
4 siblings, 0 replies; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-18 14:56 UTC (permalink / raw)
To: linux-arm-kernel
Cc: linux-kernel, Arnd Bergmann, Russell King, Linus Walleij,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
From: Arnd Bergmann <arnd@arndb.de>
There is only one plat-* directory left, and the MACHINE variable is
only used for the mach/*.h header path.
Simplify this by removing the checks for ARCH_MULTIPLATFORM and
ARM_SINGLE_ARMV7M, and just adding the include directories for the
remaining three platforms manually.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/Makefile | 36 ++++++++++--------------------------
1 file changed, 10 insertions(+), 26 deletions(-)
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 369490d5f18a..2623d6e25bdb 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -224,40 +224,24 @@ machine-$(CONFIG_ARCH_ZYNQ) += zynq
machine-$(CONFIG_PLAT_VERSATILE) += versatile
machine-$(CONFIG_PLAT_SPEAR) += spear
-# Platform directory name. This list is sorted alphanumerically
-# by CONFIG_* macro name.
-plat-$(CONFIG_PLAT_ORION) += orion
+# legacy platforms provide their own mach/*.h headers globally,
+# these three are mutually exclusive
+machdirs-$(CONFIG_ARCH_FOOTBRIDGE) += arch/arm/mach-footbridge
+machdirs-$(CONFIG_ARCH_RPC) += arch/arm/mach-rpc
+machdirs-$(CONFIG_ARCH_SA1100) += arch/arm/mach-sa1100
+KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%/include,$(machdirs-y))
# The byte offset of the kernel image in RAM from the start of RAM.
TEXT_OFFSET := $(textofs-y)
-# The first directory contains additional information for the boot setup code
-ifneq ($(machine-y),)
-MACHINE := arch/arm/mach-$(word 1,$(machine-y))/
-else
-MACHINE :=
-endif
-ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y)
-MACHINE :=
-endif
-
-machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
-platdirs := $(patsubst %,arch/arm/plat-%/,$(sort $(plat-y)))
-
-ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)
-ifneq ($(CONFIG_ARM_SINGLE_ARMV7M),y)
-KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))
-endif
-endif
-
export TEXT_OFFSET GZFLAGS MMUEXT
# If we have a machine-specific directory, then include it in the build.
-core-y += $(machdirs) $(platdirs)
-
+core-y += $(patsubst %,arch/arm/mach-%/,$(machine-y))
# For cleaning
-core- += $(patsubst %,arch/arm/mach-%/, $(machine-))
-core- += $(patsubst %,arch/arm/plat-%/, $(plat-))
+core- += $(patsubst %,arch/arm/mach-%/,$(machine-))
+
+core-$(CONFIG_PLAT_ORION) += arch/arm/plat-orion/
libs-y := arch/arm/lib/ $(libs-y)
--
2.29.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 3/5] ARM: Kconfig: clean up platform selection
2022-08-18 14:56 [PATCH 0/5] ARM: clean up after multiplatform changes Arnd Bergmann
2022-08-18 14:56 ` [PATCH 1/5] ARM: remove obsolete Makefile.boot infrastructure Arnd Bergmann
2022-08-18 14:56 ` [PATCH 2/5] ARM: simplify machdirs/platdirs handling Arnd Bergmann
@ 2022-08-18 14:56 ` Arnd Bergmann
2022-08-18 14:56 ` [PATCH 4/5] ARM: fix CPU_V6 dependencies Arnd Bergmann
2022-08-18 14:56 ` [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible Arnd Bergmann
4 siblings, 0 replies; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-18 14:56 UTC (permalink / raw)
To: linux-arm-kernel
Cc: linux-kernel, Arnd Bergmann, Russell King, Linus Walleij,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
From: Arnd Bergmann <arnd@arndb.de>
The top-level platform selection is mostly meaningless these days after
almost everything is sorted below the CONFIG_ARCH_MULTIPLATFORM, with
the only exception being the 20+ year old StrongARM based machines.
Make this more consistent by removing the entire choice statement and
moving the StrongARM specific options into regular platform specific
Kconfig files.
The three platforms (footbridge, rpc and sa1100) are still mutually
exclusive and cannot coexist with other ARMv4/v5 machines, but since
there are only three of them and we will not add more, this can be
expressed using Kconfig 'depends on' statements.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/Kconfig | 114 ++++----------------------
arch/arm/Kconfig.debug | 7 +-
arch/arm/configs/assabet_defconfig | 2 +
arch/arm/configs/badge4_defconfig | 2 +
arch/arm/configs/cerfcube_defconfig | 2 +
arch/arm/configs/collie_defconfig | 2 +
| 2 +
arch/arm/configs/h3600_defconfig | 2 +
arch/arm/configs/hackkit_defconfig | 2 +
arch/arm/configs/jornada720_defconfig | 2 +
arch/arm/configs/lart_defconfig | 2 +
arch/arm/configs/neponset_defconfig | 2 +
arch/arm/configs/netwinder_defconfig | 2 +
arch/arm/configs/pleb_defconfig | 2 +
arch/arm/configs/rpc_defconfig | 2 +
arch/arm/configs/shannon_defconfig | 2 +
arch/arm/configs/simpad_defconfig | 2 +
| 19 ++++-
arch/arm/mach-imx/Kconfig | 2 +-
arch/arm/mach-nspire/Kconfig | 2 +-
arch/arm/mach-rpc/Kconfig | 21 +++++
arch/arm/mach-sa1100/Kconfig | 25 ++++--
22 files changed, 109 insertions(+), 111 deletions(-)
create mode 100644 arch/arm/mach-rpc/Kconfig
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 6894b4758bfb..3066ce82cffc 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -28,7 +28,6 @@ config ARM
select ARCH_HAS_GCOV_PROFILE_ALL
select ARCH_KEEP_MEMBLOCK
select ARCH_MIGHT_HAVE_PC_PARPORT
- select ARCH_NO_SG_CHAIN if !ARM_HAS_SG_CHAIN
select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
select ARCH_SUPPORTS_ATOMIC_RMW
@@ -42,6 +41,7 @@ config ARM
select ARCH_WANT_LD_ORPHAN_WARN
select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
select BUILDTIME_TABLE_SORT if MMU
+ select COMMON_CLK if !(ARCH_RPC || ARCH_FOOTBRIDGE)
select CLONE_BACKWARDS
select CPU_PM if SUSPEND || CPU_IDLE
select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
@@ -110,6 +110,7 @@ config ARM
select HAVE_MOD_ARCH_SPECIFIC
select HAVE_NMI
select HAVE_OPTPROBES if !THUMB2_KERNEL
+ select HAVE_PCI
select HAVE_PERF_EVENTS
select HAVE_PERF_REGS
select HAVE_PERF_USER_STACK_DUMP
@@ -126,13 +127,17 @@ config ARM
select OF_EARLY_FLATTREE if OF
select OLD_SIGACTION
select OLD_SIGSUSPEND3
+ select PCI_DOMAINS_GENERIC if PCI
select PCI_SYSCALL if PCI
select PERF_USE_VMALLOC
select RTC_LIB
+ select SPARSE_IRQ if !(ARCH_FOOTBRIDGE || ARCH_RPC)
select SYS_SUPPORTS_APM_EMULATION
select THREAD_INFO_IN_TASK
+ select TIMER_OF if OF
select HAVE_ARCH_VMAP_STACK if MMU && ARM_HAS_GROUP_RELOCS
select TRACE_IRQFLAGS_SUPPORT if !CPU_V7M
+ select USE_OF if !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
# Above selects are sorted alphabetically; please add new ones
# according to that. Thanks.
help
@@ -154,12 +159,8 @@ config ARM_HAS_GROUP_RELOCS
which is usually sufficient, but not for allyesconfig, so we disable
this feature when doing compile testing.
-config ARM_HAS_SG_CHAIN
- bool
-
config ARM_DMA_USE_IOMMU
bool
- select ARM_HAS_SG_CHAIN
select NEED_SG_DMA_LENGTH
if ARM_DMA_USE_IOMMU
@@ -307,13 +308,8 @@ config MMU
config ARM_SINGLE_ARMV7M
def_bool !MMU
select ARM_NVIC
- select AUTO_ZRELADDR
- select TIMER_OF
- select COMMON_CLK
select CPU_V7M
select NO_IOPORT_MAP
- select SPARSE_IRQ
- select USE_OF
config ARCH_MMAP_RND_BITS_MIN
default 8
@@ -323,94 +319,19 @@ config ARCH_MMAP_RND_BITS_MAX
default 15 if PAGE_OFFSET=0x80000000
default 16
-#
-# The "ARM system type" choice list is ordered alphabetically by option
-# text. Please add new entries in the option alphabetic order.
-#
-choice
- prompt "ARM system type"
- depends on MMU
- default ARCH_MULTIPLATFORM
-
config ARCH_MULTIPLATFORM
- bool "Allow multiple platforms to be selected"
- select ARCH_FLATMEM_ENABLE
- select ARCH_SPARSEMEM_ENABLE
- select ARCH_SELECT_MEMORY_MODEL
- select ARM_HAS_SG_CHAIN
- select ARM_PATCH_PHYS_VIRT
- select AUTO_ZRELADDR
- select TIMER_OF
- select COMMON_CLK
- select HAVE_PCI
- select PCI_DOMAINS_GENERIC if PCI
- select SPARSE_IRQ
- select USE_OF
-
-config ARCH_FOOTBRIDGE
- bool "FootBridge"
- depends on CPU_LITTLE_ENDIAN
- depends on ATAGS
- select CPU_SA110
- select FOOTBRIDGE
- select NEED_MACH_MEMORY_H
- help
- Support for systems based on the DC21285 companion chip
- ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
-
-config ARCH_RPC
- bool "RiscPC"
- depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
- depends on CPU_LITTLE_ENDIAN
- depends on ATAGS
- select ARCH_ACORN
- select ARCH_MAY_HAVE_PC_FDC
- select ARCH_SPARSEMEM_ENABLE
- select ARM_HAS_SG_CHAIN
- select CPU_SA110
- select FIQ
- select HAVE_PATA_PLATFORM
- select ISA_DMA_API
- select LEGACY_TIMER_TICK
- select NEED_MACH_IO_H
- select NEED_MACH_MEMORY_H
- select NO_IOPORT_MAP
- help
- On the Acorn Risc-PC, Linux can support the internal IDE disk and
- CD-ROM interface, serial and parallel port, and the floppy drive.
-
-config ARCH_SA1100
- bool "SA1100-based"
- depends on CPU_LITTLE_ENDIAN
- depends on ATAGS
- select ARCH_MTD_XIP
- select ARCH_SPARSEMEM_ENABLE
- select CLKSRC_MMIO
- select CLKSRC_PXA
- select TIMER_OF if OF
- select COMMON_CLK
- select CPU_FREQ
- select CPU_SA1100
- select GPIOLIB
- select IRQ_DOMAIN
- select ISA
- select NEED_MACH_MEMORY_H
- select SPARSE_IRQ
- help
- Support for StrongARM 11x0 based boards.
+ def_bool MMU && !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
-endchoice
-
-menu "Multiple platform selection"
- depends on ARCH_MULTIPLATFORM
+menu "Platform selection"
+ depends on MMU
comment "CPU Core family selection"
config ARCH_MULTI_V4
- bool "ARMv4 based platforms (FA526)"
+ bool "ARMv4 based platforms (FA526, StrongARM)"
depends on !ARCH_MULTI_V6_V7
select ARCH_MULTI_V4_V5
- select CPU_FA526
+ select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
config ARCH_MULTI_V4T
bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
@@ -472,7 +393,6 @@ config ARCH_AIROHA
select ARM_GIC_V3
select ARM_PSCI
select HAVE_ARM_ARCH_TIMER
- select COMMON_CLK
help
Support for Airoha EN7523 SoCs
@@ -573,6 +493,8 @@ source "arch/arm/mach-rda/Kconfig"
source "arch/arm/mach-realtek/Kconfig"
+source "arch/arm/mach-rpc/Kconfig"
+
source "arch/arm/mach-rockchip/Kconfig"
source "arch/arm/mach-s3c/Kconfig"
@@ -638,7 +560,6 @@ config ARCH_ACORN
config PLAT_ORION
bool
select CLKSRC_MMIO
- select COMMON_CLK
select GENERIC_IRQ_CHIP
select IRQ_DOMAIN
@@ -1358,13 +1279,13 @@ config OABI_COMPAT
at all). If in doubt say N.
config ARCH_SELECT_MEMORY_MODEL
- bool
+ def_bool y
config ARCH_FLATMEM_ENABLE
- bool
+ def_bool !(ARCH_RPC || ARCH_SA1100)
config ARCH_SPARSEMEM_ENABLE
- bool
+ def_bool !ARCH_FOOTBRIDGE
select SPARSEMEM_STATIC if SPARSEMEM
config HIGHMEM
@@ -1772,7 +1693,8 @@ config CRASH_DUMP
For more details see Documentation/admin-guide/kdump/kdump.rst
config AUTO_ZRELADDR
- bool "Auto calculation of the decompressed kernel image address"
+ bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM
+ default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
help
ZRELADDR is the physical address where the decompressed kernel
image will be placed. If AUTO_ZRELADDR is selected, the address
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 792796a348c3..655f84ada30f 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -1904,7 +1904,7 @@ config DEBUG_UART_8250_PALMCHIP
config DEBUG_UNCOMPRESS
bool "Enable decompressor debugging via DEBUG_LL output"
- depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
+ depends on !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
(!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
!DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING
@@ -1921,9 +1921,8 @@ config DEBUG_UNCOMPRESS
config UNCOMPRESS_INCLUDE
string
- default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
- PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
- default "mach/uncompress.h"
+ default "mach/uncompress.h" if ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100
+ default "debug/uncompress.h"
config EARLY_PRINTK
bool "Early printk"
diff --git a/arch/arm/configs/assabet_defconfig b/arch/arm/configs/assabet_defconfig
index 801383e4135d..8ba8eb7a4adf 100644
--- a/arch/arm/configs/assabet_defconfig
+++ b/arch/arm/configs/assabet_defconfig
@@ -1,6 +1,8 @@
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_ASSABET=y
CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram"
diff --git a/arch/arm/configs/badge4_defconfig b/arch/arm/configs/badge4_defconfig
index 506f3378da07..b12752fd45cb 100644
--- a/arch/arm/configs/badge4_defconfig
+++ b/arch/arm/configs/badge4_defconfig
@@ -1,5 +1,7 @@
CONFIG_LOG_BUF_SHIFT=14
CONFIG_EXPERT=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_BADGE4=y
CONFIG_UNUSED_BOARD_FILES=y
diff --git a/arch/arm/configs/cerfcube_defconfig b/arch/arm/configs/cerfcube_defconfig
index 7e6f7dfa3023..9ada868e2648 100644
--- a/arch/arm/configs/cerfcube_defconfig
+++ b/arch/arm/configs/cerfcube_defconfig
@@ -1,6 +1,8 @@
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_LOG_BUF_SHIFT=14
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_CERF=y
CONFIG_SA1100_CERF_FLASH_16MB=y
diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig
index d35cc59ce847..2a2d2cb3ce2e 100644
--- a/arch/arm/configs/collie_defconfig
+++ b/arch/arm/configs/collie_defconfig
@@ -5,6 +5,8 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_BASE_FULL is not set
# CONFIG_EPOLL is not set
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_COLLIE=y
CONFIG_CMDLINE="noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1"
--git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig
index 504070812ad0..55bf8a6383e2 100644
--- a/arch/arm/configs/footbridge_defconfig
+++ b/arch/arm/configs/footbridge_defconfig
@@ -4,6 +4,8 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_HOTPLUG is not set
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_FOOTBRIDGE=y
CONFIG_ARCH_EBSA285_HOST=y
CONFIG_ARCH_NETWINDER=y
diff --git a/arch/arm/configs/h3600_defconfig b/arch/arm/configs/h3600_defconfig
index 5bd1ec539610..4e272875c797 100644
--- a/arch/arm/configs/h3600_defconfig
+++ b/arch/arm/configs/h3600_defconfig
@@ -4,6 +4,8 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_H3600=y
# CONFIG_CPU_FREQ_STAT is not set
diff --git a/arch/arm/configs/hackkit_defconfig b/arch/arm/configs/hackkit_defconfig
index b9327b2eacd3..a28fb396afc4 100644
--- a/arch/arm/configs/hackkit_defconfig
+++ b/arch/arm/configs/hackkit_defconfig
@@ -1,6 +1,8 @@
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_HACKKIT=y
CONFIG_UNUSED_BOARD_FILES=y
diff --git a/arch/arm/configs/jornada720_defconfig b/arch/arm/configs/jornada720_defconfig
index 3dcf89d3e1f1..283c81812e18 100644
--- a/arch/arm/configs/jornada720_defconfig
+++ b/arch/arm/configs/jornada720_defconfig
@@ -1,6 +1,8 @@
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED_V2=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_JORNADA720=y
CONFIG_SA1100_JORNADA720_SSP=y
diff --git a/arch/arm/configs/lart_defconfig b/arch/arm/configs/lart_defconfig
index 0c2f19d756c0..b0eb488de9bc 100644
--- a/arch/arm/configs/lart_defconfig
+++ b/arch/arm/configs/lart_defconfig
@@ -1,6 +1,8 @@
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_LART=y
CONFIG_UNUSED_BOARD_FILES=y
diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig
index 907403529e30..79da67d37be9 100644
--- a/arch/arm/configs/neponset_defconfig
+++ b/arch/arm/configs/neponset_defconfig
@@ -1,6 +1,8 @@
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_ASSABET=y
CONFIG_ASSABET_NEPONSET=y
diff --git a/arch/arm/configs/netwinder_defconfig b/arch/arm/configs/netwinder_defconfig
index cf7bbcf9d98a..17fe4126c5de 100644
--- a/arch/arm/configs/netwinder_defconfig
+++ b/arch/arm/configs/netwinder_defconfig
@@ -1,5 +1,7 @@
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_FOOTBRIDGE=y
CONFIG_ARCH_NETWINDER=y
CONFIG_DEPRECATED_PARAM_STRUCT=y
diff --git a/arch/arm/configs/pleb_defconfig b/arch/arm/configs/pleb_defconfig
index d87263336cb2..fd2667873273 100644
--- a/arch/arm/configs/pleb_defconfig
+++ b/arch/arm/configs/pleb_defconfig
@@ -4,6 +4,8 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_HOTPLUG is not set
# CONFIG_SHMEM is not set
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_PLEB=y
CONFIG_UNUSED_BOARD_FILES=y
diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig
index 16d74a1f027a..71bfbd5d811c 100644
--- a/arch/arm/configs/rpc_defconfig
+++ b/arch/arm/configs/rpc_defconfig
@@ -4,6 +4,8 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_RPC=y
CONFIG_CPU_SA110=y
CONFIG_FPE_NWFPE=y
diff --git a/arch/arm/configs/shannon_defconfig b/arch/arm/configs/shannon_defconfig
index 42252e85ee49..dfcea70b8034 100644
--- a/arch/arm/configs/shannon_defconfig
+++ b/arch/arm/configs/shannon_defconfig
@@ -1,6 +1,8 @@
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_SHANNON=y
CONFIG_UNUSED_BOARD_FILES=y
diff --git a/arch/arm/configs/simpad_defconfig b/arch/arm/configs/simpad_defconfig
index cc451728f6d9..4e00a4c2c287 100644
--- a/arch/arm/configs/simpad_defconfig
+++ b/arch/arm/configs/simpad_defconfig
@@ -5,6 +5,8 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_EXPERT=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_ARCH_MULTI_V4=y
+# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_SIMPAD=y
CONFIG_UNUSED_BOARD_FILES=y
--git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig
index acc10b1caa69..1c9eae26e6ac 100644
--- a/arch/arm/mach-footbridge/Kconfig
+++ b/arch/arm/mach-footbridge/Kconfig
@@ -1,7 +1,20 @@
# SPDX-License-Identifier: GPL-2.0-only
-if ARCH_FOOTBRIDGE
+menuconfig ARCH_FOOTBRIDGE
+ bool "FootBridge Implementations"
+ depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5)
+ depends on !(ARCH_MOXART || ARCH_GEMINI || ARCH_SA1100)
+ depends on ATAGS
+ depends on CPU_LITTLE_ENDIAN
+ depends on MMU
+ select ARCH_NO_SG_CHAIN
+ select CPU_SA110
+ select FOOTBRIDGE
+ select NEED_MACH_MEMORY_H
+ help
+ Support for systems based on the DC21285 companion chip
+ ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
-menu "Footbridge Implementations"
+if ARCH_FOOTBRIDGE
config ARCH_CATS
bool "CATS"
@@ -57,8 +70,6 @@ config ARCH_NETWINDER
Saying N will reduce the size of the Footbridge kernel.
-endmenu
-
# Footbridge support
config FOOTBRIDGE
select ARCH_HAS_PHYS_TO_DMA
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 77e435df8dfe..ab767f059929 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only
menuconfig ARCH_MXC
bool "Freescale i.MX family"
- depends on (ARCH_MULTI_V4_V5 && CPU_LITTLE_ENDIAN) || \
+ depends on ((ARCH_MULTI_V4T || ARCH_MULTI_V5) && CPU_LITTLE_ENDIAN) || \
ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M
select CLKSRC_IMX_GPT
select GENERIC_IRQ_CHIP
diff --git a/arch/arm/mach-nspire/Kconfig b/arch/arm/mach-nspire/Kconfig
index eb9916233dea..b7a3871876d7 100644
--- a/arch/arm/mach-nspire/Kconfig
+++ b/arch/arm/mach-nspire/Kconfig
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only
config ARCH_NSPIRE
bool "TI-NSPIRE based"
- depends on ARCH_MULTI_V4_V5
+ depends on ARCH_MULTI_V4T
depends on CPU_LITTLE_ENDIAN
select CPU_ARM926T
select GENERIC_IRQ_CHIP
diff --git a/arch/arm/mach-rpc/Kconfig b/arch/arm/mach-rpc/Kconfig
new file mode 100644
index 000000000000..55f6d829b677
--- /dev/null
+++ b/arch/arm/mach-rpc/Kconfig
@@ -0,0 +1,21 @@
+config ARCH_RPC
+ bool "RiscPC"
+ depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5)
+ depends on !(ARCH_FOOTBRIDGE || ARCH_SA1100 || ARCH_MOXART || ARCH_GEMINI)
+ depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
+ depends on CPU_LITTLE_ENDIAN
+ depends on ATAGS
+ depends on MMU
+ select ARCH_ACORN
+ select ARCH_MAY_HAVE_PC_FDC
+ select CPU_SA110
+ select FIQ
+ select HAVE_PATA_PLATFORM
+ select ISA_DMA_API
+ select LEGACY_TIMER_TICK
+ select NEED_MACH_IO_H
+ select NEED_MACH_MEMORY_H
+ select NO_IOPORT_MAP
+ help
+ On the Acorn Risc-PC, Linux can support the internal IDE disk and
+ CD-ROM interface, serial and parallel port, and the floppy drive.
diff --git a/arch/arm/mach-sa1100/Kconfig b/arch/arm/mach-sa1100/Kconfig
index 7e0161cb1c1f..fb9cd10705de 100644
--- a/arch/arm/mach-sa1100/Kconfig
+++ b/arch/arm/mach-sa1100/Kconfig
@@ -1,7 +1,25 @@
# SPDX-License-Identifier: GPL-2.0-only
-if ARCH_SA1100
+menuconfig ARCH_SA1100
+ bool "SA11x0 Implementations"
+ depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5)
+ depends on !(ARCH_MOXART || ARCH_GEMINI)
+ depends on ATAGS
+ depends on CPU_LITTLE_ENDIAN
+ depends on MMU
+ select ARCH_NO_SG_CHAIN
+ select ARCH_MTD_XIP
+ select CLKSRC_MMIO
+ select CLKSRC_PXA
+ select CPU_FREQ
+ select CPU_SA1100
+ select GPIOLIB
+ select IRQ_DOMAIN
+ select ISA
+ select NEED_MACH_MEMORY_H
+ help
+ Support for StrongARM 11x0 based boards.
-menu "SA11x0 Implementations"
+if ARCH_SA1100
config SA1100_ASSABET
bool "Assabet"
@@ -179,7 +197,4 @@ config SA1100_SSP
This isn't for audio support, but for attached sensors and
other devices, eg for BadgePAD 4 sensor support.
-endmenu
-
endif
-
--
2.29.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 4/5] ARM: fix CPU_V6 dependencies
2022-08-18 14:56 [PATCH 0/5] ARM: clean up after multiplatform changes Arnd Bergmann
` (2 preceding siblings ...)
2022-08-18 14:56 ` [PATCH 3/5] ARM: Kconfig: clean up platform selection Arnd Bergmann
@ 2022-08-18 14:56 ` Arnd Bergmann
2022-08-25 13:43 ` Linus Walleij
2022-08-18 14:56 ` [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible Arnd Bergmann
4 siblings, 1 reply; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-18 14:56 UTC (permalink / raw)
To: linux-arm-kernel
Cc: linux-kernel, Arnd Bergmann, Russell King, Linus Walleij,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
From: Arnd Bergmann <arnd@arndb.de>
CONFIG_XIP_KERNEL must not be combined with CONFIG_SMP_ON_UP
because the patching of read-only data does not work.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/mach-imx/Kconfig | 1 +
arch/arm/mach-omap2/Kconfig | 1 +
arch/arm/mach-versatile/Kconfig | 2 ++
3 files changed, 4 insertions(+)
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index ab767f059929..9308e9894be5 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -41,6 +41,7 @@ comment "ARM1136 platforms"
config SOC_IMX31
bool "i.MX31 support"
+ depends on !SMP || !XIP_KERNEL # for SMP_ON_UP
select CPU_V6
select MXC_AVIC
help
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 3b53dda9ec79..f2ce262958c4 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -8,6 +8,7 @@ config OMAP_HWMOD
config ARCH_OMAP2
bool "TI OMAP2"
depends on ARCH_MULTI_V6
+ depends on !SMP || !XIP_KERNEL # for SMP_ON_UP
select ARCH_OMAP2PLUS
select CPU_V6
select OMAP_HWMOD
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index 2ef226194c3a..25723b0c63dd 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -21,6 +21,7 @@ menuconfig ARCH_INTEGRATOR
bool "ARM Ltd. Integrator family"
depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6
depends on CPU_LITTLE_ENDIAN || ARCH_MULTI_V6
+ depends on !SMP || !XIP_KERNEL # for SMP_ON_UP
select ARM_AMBA
select CMA
select DMA_CMA
@@ -146,6 +147,7 @@ endif
menuconfig ARCH_REALVIEW
bool "ARM Ltd. RealView family"
depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V6 || ARCH_MULTI_V7
+ depends on !SMP || !XIP_KERNEL # for SMP_ON_UP
select ARM_AMBA
select ARM_GIC
select ARM_TIMER_SP804
--
2.29.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible
2022-08-18 14:56 [PATCH 0/5] ARM: clean up after multiplatform changes Arnd Bergmann
` (3 preceding siblings ...)
2022-08-18 14:56 ` [PATCH 4/5] ARM: fix CPU_V6 dependencies Arnd Bergmann
@ 2022-08-18 14:56 ` Arnd Bergmann
2022-09-27 12:31 ` Geert Uytterhoeven
2022-09-27 13:31 ` Geert Uytterhoeven
4 siblings, 2 replies; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-18 14:56 UTC (permalink / raw)
To: linux-arm-kernel
Cc: linux-kernel, Arnd Bergmann, Russell King, Linus Walleij,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
From: Arnd Bergmann <arnd@arndb.de>
Some options like CONFIG_DEBUG_UNCOMPRESS and CONFIG_CMDLINE_FORCE are
fundamentally incompatible with portable kernels but are currently allowed
in all configurations. Other options like XIP_KERNEL are essentially
useless after the completion of the multiplatform conversion.
Repurpose the existing CONFIG_ARCH_MULTIPLATFORM option to decide
whether the resulting kernel image is meant to be portable or not,
and using this to guard all of the known incompatible options.
This is similar to how the RISC-V kernel handles the CONFIG_NONPORTABLE
option (with the opposite polarity).
A few references to CONFIG_ARCH_MULTIPLATFORM were left behind by
earlier clanups and have to be removed now up.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/Kconfig | 15 ++++++++++++++-
arch/arm/Kconfig.debug | 1 +
arch/arm/kernel/devtree.c | 2 --
arch/arm/mach-dove/Makefile | 2 +-
arch/arm/mach-mv78xx0/Makefile | 2 +-
arch/arm/mach-mvebu/Makefile | 2 +-
arch/arm/mach-orion5x/Makefile | 2 +-
7 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3066ce82cffc..9cbac5bf8b3a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -320,7 +320,19 @@ config ARCH_MMAP_RND_BITS_MAX
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
@@ -1609,6 +1621,7 @@ config CMDLINE_EXTEND
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.
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 655f84ada30f..c345775f035b 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -1904,6 +1904,7 @@ config DEBUG_UART_8250_PALMCHIP
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) && \
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
index 02839d8b6202..264827281113 100644
--- a/arch/arm/kernel/devtree.c
+++ b/arch/arm/kernel/devtree.c
@@ -194,14 +194,12 @@ const struct machine_desc * __init setup_machine_fdt(void *dt_virt)
{
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;
diff --git a/arch/arm/mach-dove/Makefile b/arch/arm/mach-dove/Makefile
index e83f6492834d..da373a5768ba 100644
--- a/arch/arm/mach-dove/Makefile
+++ b/arch/arm/mach-dove/Makefile
@@ -1,5 +1,5 @@
# 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
diff --git a/arch/arm/mach-mv78xx0/Makefile b/arch/arm/mach-mv78xx0/Makefile
index a839e960b8c6..50aff70065f2 100644
--- a/arch/arm/mach-mv78xx0/Makefile
+++ b/arch/arm/mach-mv78xx0/Makefile
@@ -1,5 +1,5 @@
# 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
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index cb106899dd7c..c21733cbb4fa 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -1,5 +1,5 @@
# 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
diff --git a/arch/arm/mach-orion5x/Makefile b/arch/arm/mach-orion5x/Makefile
index 1a585a62d5e6..572c3520f7fe 100644
--- a/arch/arm/mach-orion5x/Makefile
+++ b/arch/arm/mach-orion5x/Makefile
@@ -1,5 +1,5 @@
# 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
--
2.29.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH 1/5] ARM: remove obsolete Makefile.boot infrastructure
2022-08-18 14:56 ` [PATCH 1/5] ARM: remove obsolete Makefile.boot infrastructure Arnd Bergmann
@ 2022-08-19 7:45 ` Krzysztof Kozlowski
0 siblings, 0 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2022-08-19 7:45 UTC (permalink / raw)
To: Arnd Bergmann, linux-arm-kernel
Cc: linux-kernel, Arnd Bergmann, Russell King, Linus Walleij,
Geert Uytterhoeven, Ard Biesheuvel, Sekhar Nori,
Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
On 18/08/2022 17:56, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> There are a number of old Makefile.boot files that remain from the
> multiplatform conversion, and three that are still in use.
>
> These provide the "ZRELADDR", "PARAMS_PHYS" and "INITRD_PHYS" values
> that are platform specific. It turns out that we can generally just
> derive this from information that is available elsewhere:
>
> - ZRELADDR is normally detected at runtime with the
> CONFIG_AUTO_ZRELADDR flag, but also needed to be passed to
> for 'make uImage'. In a multiplatform kernel, one always has
> to pass this as the $(LOADADDR) variable, but in the StrongARM
> kernels we can derive it from the sum of $(CONFIG_PHYS_OFFSET)
> and $(TEXT_OFFSET) that are already known.
>
> - PARAMS_PHYS and INITRD_PHYS are only used for bootpImage, which
> in turn is only used for the pre-ATAGS 'param_struct' based boot
> interface on StrongARM based machines with old boot loaders.
> They can both be derived from CONFIG_PHYS_OFFSET and a machine
> specific offset for the initrd, so all of the logic for these
> can be part of arch/arm/boot/bootp/Makefile.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/arm/Kconfig | 2 +-
> arch/arm/Makefile | 4 +--
> arch/arm/boot/Makefile | 27 ++++++--------------
> arch/arm/boot/bootp/Makefile | 35 ++++++++++++++++++++++++--
> arch/arm/mach-at91/Makefile.boot | 4 ---
> arch/arm/mach-davinci/Makefile.boot | 8 ------
> arch/arm/mach-dove/Makefile.boot | 4 ---
> arch/arm/mach-ep93xx/Makefile.boot | 2 --
> arch/arm/mach-footbridge/Makefile.boot | 5 ----
> arch/arm/mach-imx/Makefile.boot | 0
> arch/arm/mach-iop32x/Makefile.boot | 4 ---
> arch/arm/mach-lpc18xx/Makefile.boot | 4 ---
> arch/arm/mach-lpc32xx/Makefile.boot | 4 ---
> arch/arm/mach-omap1/Makefile.boot | 4 ---
> arch/arm/mach-rpc/Makefile.boot | 5 ----
> arch/arm/mach-s3c/Makefile.boot | 9 -------
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> # s3c
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] ARM: fix CPU_V6 dependencies
2022-08-18 14:56 ` [PATCH 4/5] ARM: fix CPU_V6 dependencies Arnd Bergmann
@ 2022-08-25 13:43 ` Linus Walleij
2022-08-29 9:33 ` Arnd Bergmann
0 siblings, 1 reply; 19+ messages in thread
From: Linus Walleij @ 2022-08-25 13:43 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-arm-kernel, linux-kernel, Arnd Bergmann, Russell King,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> CONFIG_XIP_KERNEL must not be combined with CONFIG_SMP_ON_UP
> because the patching of read-only data does not work.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The $SUBJECT of this patch is mildly confusing, as the affected
targets are maybe CPU_V6 but the change is related to XIP and
SMP_ON_UP.
Other than that it looks good.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] ARM: fix CPU_V6 dependencies
2022-08-25 13:43 ` Linus Walleij
@ 2022-08-29 9:33 ` Arnd Bergmann
2022-08-30 7:20 ` [PATCH] ARM: fix XIP_KERNEL dependencies Arnd Bergmann
0 siblings, 1 reply; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-29 9:33 UTC (permalink / raw)
To: Linus Walleij
Cc: linux-arm-kernel, linux-kernel, Arnd Bergmann, Russell King,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
On Thu, Aug 25, 2022 at 3:43 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > CONFIG_XIP_KERNEL must not be combined with CONFIG_SMP_ON_UP
> > because the patching of read-only data does not work.
> >
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> The $SUBJECT of this patch is mildly confusing, as the affected
> targets are maybe CPU_V6 but the change is related to XIP and
> SMP_ON_UP.
>
> Other than that it looks good.
The patch caused a regression, so I ended up completely replacing it,
new patch follows.
Arnd
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH] ARM: fix XIP_KERNEL dependencies
2022-08-29 9:33 ` Arnd Bergmann
@ 2022-08-30 7:20 ` Arnd Bergmann
2022-08-30 7:41 ` Geert Uytterhoeven
2022-08-31 13:35 ` Linus Walleij
0 siblings, 2 replies; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-30 7:20 UTC (permalink / raw)
To: Arnd Bergmann, Linus Walleij
Cc: linux-arm-kernel, linux-kernel, Russell King, Geert Uytterhoeven,
Krzysztof Kozlowski, Ard Biesheuvel, Sekhar Nori,
Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
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.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
forgot to send this yesterday, replaces the CPU_v6 dependency patch
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3066ce82cffc..2d94e53037ec 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -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 !SMP_ON_UP && !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT
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
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH] ARM: fix XIP_KERNEL dependencies
2022-08-30 7:20 ` [PATCH] ARM: fix XIP_KERNEL dependencies Arnd Bergmann
@ 2022-08-30 7:41 ` Geert Uytterhoeven
2022-08-30 9:18 ` Arnd Bergmann
2022-08-31 13:35 ` Linus Walleij
1 sibling, 1 reply; 19+ messages in thread
From: Geert Uytterhoeven @ 2022-08-30 7:41 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Arnd Bergmann, Linus Walleij, Linux ARM,
Linux Kernel Mailing List, Russell King, Krzysztof Kozlowski,
Ard Biesheuvel, Sekhar Nori, Bartosz Golaszewski, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Andrew Lunn,
Gregory Clement, Sebastian Hesselbarth
Hi Arnd,
On Tue, Aug 30, 2022 at 9:21 AM Arnd Bergmann <arnd@arndb.de> wrote:
> 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.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Thanks for your patch!
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1619,6 +1619,7 @@ endchoice
> config XIP_KERNEL
> bool "Kernel Execute-In-Place from ROM"
> depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
> + depends on !SMP_ON_UP && !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT
You may want to keep the list sorted.
> 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
Regardless, LGTM, so
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] ARM: fix XIP_KERNEL dependencies
2022-08-30 7:41 ` Geert Uytterhoeven
@ 2022-08-30 9:18 ` Arnd Bergmann
0 siblings, 0 replies; 19+ messages in thread
From: Arnd Bergmann @ 2022-08-30 9:18 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Arnd Bergmann, Linus Walleij, Linux ARM,
Linux Kernel Mailing List, Russell King, Krzysztof Kozlowski,
Ard Biesheuvel, Sekhar Nori, Bartosz Golaszewski, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Andrew Lunn,
Gregory Clement, Sebastian Hesselbarth
On Tue, Aug 30, 2022, at 9:41 AM, Geert Uytterhoeven wrote:
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -1619,6 +1619,7 @@ endchoice
>> config XIP_KERNEL
>> bool "Kernel Execute-In-Place from ROM"
>> depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
>> + depends on !SMP_ON_UP && !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT
>
> You may want to keep the list sorted.
Done
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Thanks,
Arnd
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] ARM: fix XIP_KERNEL dependencies
2022-08-30 7:20 ` [PATCH] ARM: fix XIP_KERNEL dependencies Arnd Bergmann
2022-08-30 7:41 ` Geert Uytterhoeven
@ 2022-08-31 13:35 ` Linus Walleij
1 sibling, 0 replies; 19+ messages in thread
From: Linus Walleij @ 2022-08-31 13:35 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Arnd Bergmann, linux-arm-kernel, linux-kernel, Russell King,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
On Tue, Aug 30, 2022 at 9:21 AM Arnd Bergmann <arnd@arndb.de> wrote:
> 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.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
OK this should work!
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible
2022-08-18 14:56 ` [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible Arnd Bergmann
@ 2022-09-27 12:31 ` Geert Uytterhoeven
2022-09-27 13:29 ` Geert Uytterhoeven
2022-09-27 13:31 ` Geert Uytterhoeven
1 sibling, 1 reply; 19+ messages in thread
From: Geert Uytterhoeven @ 2022-09-27 12:31 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-arm-kernel, linux-kernel, Arnd Bergmann, Russell King,
Linus Walleij, Krzysztof Kozlowski, Ard Biesheuvel, Sekhar Nori,
Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, Linux-Renesas
Hi Arnd,
On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> Some options like CONFIG_DEBUG_UNCOMPRESS and CONFIG_CMDLINE_FORCE are
> fundamentally incompatible with portable kernels but are currently allowed
> in all configurations. Other options like XIP_KERNEL are essentially
> useless after the completion of the multiplatform conversion.
>
> Repurpose the existing CONFIG_ARCH_MULTIPLATFORM option to decide
> whether the resulting kernel image is meant to be portable or not,
> and using this to guard all of the known incompatible options.
>
> This is similar to how the RISC-V kernel handles the CONFIG_NONPORTABLE
> option (with the opposite polarity).
>
> A few references to CONFIG_ARCH_MULTIPLATFORM were left behind by
> earlier clanups and have to be removed now up.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Thanks for your patch, which is now commit 84fc863606239d8b ("ARM: make
ARCH_MULTIPLATFORM user-visible") in soc/for-next.
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -320,7 +320,19 @@ config ARCH_MMAP_RND_BITS_MAX
> 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
> @@ -1609,6 +1621,7 @@ config CMDLINE_EXTEND
>
> config CMDLINE_FORCE
> bool "Always use the default kernel command string"
> + depends on !ARCH_MULTIPLATFORM
This change broke half of the boards in my collective.
Dropping this dependency again fixes the issue for me.
On older platforms that boot an image with an appended DTB, or where
the boot loader has no support for updating chosen/bootargs, I rely on
CMDLINE_FORCE.
Note that the CMDLINE choice depends on CONFIG_ATAGS=y, although
my systems do not use ATAGS at all. Arm64, loongarch, microblaze,
nios2, powerpc, and riscv do not have such a limitation, so perhaps
that should be lifted on arm, too?
I do see the rationale behind this change, and agree that a fixed
command line can make the kernel unbootable on other platforms.
However, a common command line is not guaranteed to cause that.
E.g. all Renesas boards use the same chosen/bootargs in upstream DTS,
which works fine if your DHCP server hands out proper nfsroot
parameters (note that mine, running on OpenWRT, doesn't, hence my use
of CMDLINE_FORCE ;-).
> help
> Always use the default kernel command string, even if the boot
> loader passes other arguments to the kernel.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible
2022-09-27 12:31 ` Geert Uytterhoeven
@ 2022-09-27 13:29 ` Geert Uytterhoeven
0 siblings, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2022-09-27 13:29 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-arm-kernel, linux-kernel, Arnd Bergmann, Russell King,
Linus Walleij, Krzysztof Kozlowski, Ard Biesheuvel, Sekhar Nori,
Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, Linux-Renesas
Hi Arnd et al,
On Tue, Sep 27, 2022 at 2:31 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > Some options like CONFIG_DEBUG_UNCOMPRESS and CONFIG_CMDLINE_FORCE are
> > fundamentally incompatible with portable kernels but are currently allowed
> > in all configurations. Other options like XIP_KERNEL are essentially
> > useless after the completion of the multiplatform conversion.
> >
> > Repurpose the existing CONFIG_ARCH_MULTIPLATFORM option to decide
> > whether the resulting kernel image is meant to be portable or not,
> > and using this to guard all of the known incompatible options.
> >
> > This is similar to how the RISC-V kernel handles the CONFIG_NONPORTABLE
> > option (with the opposite polarity).
> >
> > A few references to CONFIG_ARCH_MULTIPLATFORM were left behind by
> > earlier clanups and have to be removed now up.
> >
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> Thanks for your patch, which is now commit 84fc863606239d8b ("ARM: make
> ARCH_MULTIPLATFORM user-visible") in soc/for-next.
>
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -320,7 +320,19 @@ config ARCH_MMAP_RND_BITS_MAX
> > 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
> > @@ -1609,6 +1621,7 @@ config CMDLINE_EXTEND
> >
> > config CMDLINE_FORCE
> > bool "Always use the default kernel command string"
> > + depends on !ARCH_MULTIPLATFORM
>
> This change broke half of the boards in my collective.
> Dropping this dependency again fixes the issue for me.
>
> On older platforms that boot an image with an appended DTB, or where
> the boot loader has no support for updating chosen/bootargs, I rely on
> CMDLINE_FORCE.
>
> Note that the CMDLINE choice depends on CONFIG_ATAGS=y, although
> my systems do not use ATAGS at all. Arm64, loongarch, microblaze,
> nios2, powerpc, and riscv do not have such a limitation, so perhaps
> that should be lifted on arm, too?
"[PATCH] ARM: Drop CMDLINE_* dependency on ATAGS"
https://lore.kernel.org/r/09f0619e8038654d01588d9ad3a023485b2bd77f.1664285209.git.geert+renesas@glider.be
> I do see the rationale behind this change, and agree that a fixed
> command line can make the kernel unbootable on other platforms.
> However, a common command line is not guaranteed to cause that.
> E.g. all Renesas boards use the same chosen/bootargs in upstream DTS,
> which works fine if your DHCP server hands out proper nfsroot
> parameters (note that mine, running on OpenWRT, doesn't, hence my use
> of CMDLINE_FORCE ;-).
"[PATCH] ARM: Drop CMDLINE_FORCE dependency on !ARCH_MULTIPLATFORM"
https://lore.kernel.org/r/c557b149780faa2299700585afc9d270ede7f78b.1664285062.git.geert+renesas@glider.be
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible
2022-08-18 14:56 ` [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible Arnd Bergmann
2022-09-27 12:31 ` Geert Uytterhoeven
@ 2022-09-27 13:31 ` Geert Uytterhoeven
2022-09-27 20:10 ` Arnd Bergmann
1 sibling, 1 reply; 19+ messages in thread
From: Geert Uytterhoeven @ 2022-09-27 13:31 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-arm-kernel, linux-kernel, Arnd Bergmann, Russell King,
Linus Walleij, Geert Uytterhoeven, Krzysztof Kozlowski,
Ard Biesheuvel, Sekhar Nori, Bartosz Golaszewski, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Andrew Lunn,
Gregory Clement, Sebastian Hesselbarth
Hi Arnd,
On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> Some options like CONFIG_DEBUG_UNCOMPRESS and CONFIG_CMDLINE_FORCE are
> fundamentally incompatible with portable kernels but are currently allowed
> in all configurations. Other options like XIP_KERNEL are essentially
> useless after the completion of the multiplatform conversion.
>
> Repurpose the existing CONFIG_ARCH_MULTIPLATFORM option to decide
> whether the resulting kernel image is meant to be portable or not,
> and using this to guard all of the known incompatible options.
>
> This is similar to how the RISC-V kernel handles the CONFIG_NONPORTABLE
> option (with the opposite polarity).
>
> A few references to CONFIG_ARCH_MULTIPLATFORM were left behind by
> earlier clanups and have to be removed now up.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Thanks for your patch!
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -1904,6 +1904,7 @@ config DEBUG_UART_8250_PALMCHIP
>
> config DEBUG_UNCOMPRESS
> bool "Enable decompressor debugging via DEBUG_LL output"
> + depends on !ARCH_MULTIPLATFORM
Shouldn't DEBUG_LL itself depend on !ARCH_MULTIPLATFORM instead?
> depends on !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
> depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
> (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible
2022-09-27 13:31 ` Geert Uytterhoeven
@ 2022-09-27 20:10 ` Arnd Bergmann
2022-09-28 6:48 ` Geert Uytterhoeven
0 siblings, 1 reply; 19+ messages in thread
From: Arnd Bergmann @ 2022-09-27 20:10 UTC (permalink / raw)
To: Geert Uytterhoeven, Arnd Bergmann
Cc: linux-arm-kernel, linux-kernel, Russell King, Linus Walleij,
Geert Uytterhoeven, Krzysztof Kozlowski, Ard Biesheuvel,
Sekhar Nori, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
On Tue, Sep 27, 2022, at 3:31 PM, Geert Uytterhoeven wrote:
> On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
>> --- a/arch/arm/Kconfig.debug
>> +++ b/arch/arm/Kconfig.debug
>> @@ -1904,6 +1904,7 @@ config DEBUG_UART_8250_PALMCHIP
>>
>> config DEBUG_UNCOMPRESS
>> bool "Enable decompressor debugging via DEBUG_LL output"
>> + depends on !ARCH_MULTIPLATFORM
>
> Shouldn't DEBUG_LL itself depend on !ARCH_MULTIPLATFORM instead?
>
That would also be possible, but I prefer to keep limiting only
the DEBUG_UNCOMPRESS. The idea of DEBUG_LL is that while it's
hardwired to a particular hardware address, it does not actually
access this address unless you specify the 'earlyprintk'
argument on the command line.
We should probably remove the earlyprintk argument from all the
bootargs in the dts files though, because that somewhat defeats
the purpose.
Arnd
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible
2022-09-27 20:10 ` Arnd Bergmann
@ 2022-09-28 6:48 ` Geert Uytterhoeven
2022-09-28 8:13 ` Arnd Bergmann
0 siblings, 1 reply; 19+ messages in thread
From: Geert Uytterhoeven @ 2022-09-28 6:48 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Arnd Bergmann, linux-arm-kernel, linux-kernel, Russell King,
Linus Walleij, Geert Uytterhoeven, Krzysztof Kozlowski,
Ard Biesheuvel, Sekhar Nori, Bartosz Golaszewski, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Andrew Lunn,
Gregory Clement, Sebastian Hesselbarth
Hi Arnd,
On Tue, Sep 27, 2022 at 10:19 PM Arnd Bergmann <arnd@arndb.de> wrote:
> On Tue, Sep 27, 2022, at 3:31 PM, Geert Uytterhoeven wrote:
> > On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
> >> --- a/arch/arm/Kconfig.debug
> >> +++ b/arch/arm/Kconfig.debug
> >> @@ -1904,6 +1904,7 @@ config DEBUG_UART_8250_PALMCHIP
> >>
> >> config DEBUG_UNCOMPRESS
> >> bool "Enable decompressor debugging via DEBUG_LL output"
> >> + depends on !ARCH_MULTIPLATFORM
> >
> > Shouldn't DEBUG_LL itself depend on !ARCH_MULTIPLATFORM instead?
>
> That would also be possible, but I prefer to keep limiting only
> the DEBUG_UNCOMPRESS. The idea of DEBUG_LL is that while it's
> hardwired to a particular hardware address, it does not actually
> access this address unless you specify the 'earlyprintk'
> argument on the command line.
... or unless something goes really wrong, and the kernel tries to
inform the user using early_print()?
Note that the I/O region for the debug serial port is mapped regardless.
Any chance this can cause conflicts?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible
2022-09-28 6:48 ` Geert Uytterhoeven
@ 2022-09-28 8:13 ` Arnd Bergmann
0 siblings, 0 replies; 19+ messages in thread
From: Arnd Bergmann @ 2022-09-28 8:13 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Arnd Bergmann, linux-arm-kernel, linux-kernel, Russell King,
Linus Walleij, Geert Uytterhoeven, Krzysztof Kozlowski,
Ard Biesheuvel, Sekhar Nori, Bartosz Golaszewski, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Andrew Lunn,
Gregory Clement, Sebastian Hesselbarth
On Wed, Sep 28, 2022, at 8:48 AM, Geert Uytterhoeven wrote:
> On Tue, Sep 27, 2022 at 10:19 PM Arnd Bergmann <arnd@arndb.de> wrote:
>> On Tue, Sep 27, 2022, at 3:31 PM, Geert Uytterhoeven wrote:
>> > On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
>> >> --- a/arch/arm/Kconfig.debug
>> >> +++ b/arch/arm/Kconfig.debug
>> >> @@ -1904,6 +1904,7 @@ config DEBUG_UART_8250_PALMCHIP
>> >>
>> >> config DEBUG_UNCOMPRESS
>> >> bool "Enable decompressor debugging via DEBUG_LL output"
>> >> + depends on !ARCH_MULTIPLATFORM
>> >
>> > Shouldn't DEBUG_LL itself depend on !ARCH_MULTIPLATFORM instead?
>>
>> That would also be possible, but I prefer to keep limiting only
>> the DEBUG_UNCOMPRESS. The idea of DEBUG_LL is that while it's
>> hardwired to a particular hardware address, it does not actually
>> access this address unless you specify the 'earlyprintk'
>> argument on the command line.
>
> ... or unless something goes really wrong, and the kernel tries to
> inform the user using early_print()?
I don't think this matters either: without DEBUG_LL, you get a non-booting
kernel and no diagnostics, while with DEBUG_LL, you might get some
diagnostic if you have configured the right debug address, and otherwise
the user gets the same as before: a crash without any output ;-)
> Note that the I/O region for the debug serial port is mapped regardless.
> Any chance this can cause conflicts?
Not sure. The early debug mapping should only be used in for
the earlyprintk output, but if a platform has a conflicting mapping
at the same address, it just never gets used before it gets replaced.
Arnd
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2022-09-28 8:14 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-18 14:56 [PATCH 0/5] ARM: clean up after multiplatform changes Arnd Bergmann
2022-08-18 14:56 ` [PATCH 1/5] ARM: remove obsolete Makefile.boot infrastructure Arnd Bergmann
2022-08-19 7:45 ` Krzysztof Kozlowski
2022-08-18 14:56 ` [PATCH 2/5] ARM: simplify machdirs/platdirs handling Arnd Bergmann
2022-08-18 14:56 ` [PATCH 3/5] ARM: Kconfig: clean up platform selection Arnd Bergmann
2022-08-18 14:56 ` [PATCH 4/5] ARM: fix CPU_V6 dependencies Arnd Bergmann
2022-08-25 13:43 ` Linus Walleij
2022-08-29 9:33 ` Arnd Bergmann
2022-08-30 7:20 ` [PATCH] ARM: fix XIP_KERNEL dependencies Arnd Bergmann
2022-08-30 7:41 ` Geert Uytterhoeven
2022-08-30 9:18 ` Arnd Bergmann
2022-08-31 13:35 ` Linus Walleij
2022-08-18 14:56 ` [PATCH 5/5] ARM: make ARCH_MULTIPLATFORM user-visible Arnd Bergmann
2022-09-27 12:31 ` Geert Uytterhoeven
2022-09-27 13:29 ` Geert Uytterhoeven
2022-09-27 13:31 ` Geert Uytterhoeven
2022-09-27 20:10 ` Arnd Bergmann
2022-09-28 6:48 ` Geert Uytterhoeven
2022-09-28 8:13 ` Arnd Bergmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).