linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file
@ 2023-05-15 16:02 Andrew Davis
  2023-05-15 16:02 ` [PATCH 02/10] ARM: mach-asm9260: Move ASM9260 support into Kconfig.platforms Andrew Davis
                   ` (9 more replies)
  0 siblings, 10 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

Mostly just for better organization for now. This matches what is done on
some other platforms including ARM64. This also lets us start to reduce
the number of mach- directories that only exist to store the platform
selection.

Start with "Platform selection" and ARCH_VIRT.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/Kconfig           | 67 +------------------------------------
 arch/arm/Kconfig.platforms | 68 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 66 deletions(-)
 create mode 100644 arch/arm/Kconfig.platforms

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0fb4b218f665..23e3e344f9c0 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -336,72 +336,7 @@ config ARCH_MULTIPLATFORM
 	  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
-
-comment "CPU Core family selection"
-
-config ARCH_MULTI_V4
-	bool "ARMv4 based platforms (FA526, StrongARM)"
-	depends on !ARCH_MULTI_V6_V7
-	# https://github.com/llvm/llvm-project/issues/50764
-	depends on !LD_IS_LLD || LLD_VERSION >= 160000
-	select ARCH_MULTI_V4_V5
-	select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
-
-config ARCH_MULTI_V4T
-	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
-	depends on !ARCH_MULTI_V6_V7
-	# https://github.com/llvm/llvm-project/issues/50764
-	depends on !LD_IS_LLD || LLD_VERSION >= 160000
-	select ARCH_MULTI_V4_V5
-	select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
-		CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
-		CPU_ARM925T || CPU_ARM940T)
-
-config ARCH_MULTI_V5
-	bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
-	depends on !ARCH_MULTI_V6_V7
-	select ARCH_MULTI_V4_V5
-	select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \
-		CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
-		CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON)
-
-config ARCH_MULTI_V4_V5
-	bool
-
-config ARCH_MULTI_V6
-	bool "ARMv6 based platforms (ARM11)"
-	select ARCH_MULTI_V6_V7
-	select CPU_V6K
-
-config ARCH_MULTI_V7
-	bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
-	default y
-	select ARCH_MULTI_V6_V7
-	select CPU_V7
-	select HAVE_SMP
-
-config ARCH_MULTI_V6_V7
-	bool
-	select MIGHT_HAVE_CACHE_L2X0
-
-config ARCH_MULTI_CPU_AUTO
-	def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
-	select ARCH_MULTI_V5
-
-endmenu
-
-config ARCH_VIRT
-	bool "Dummy Virtual Machine"
-	depends on ARCH_MULTI_V7
-	select ARM_AMBA
-	select ARM_GIC
-	select ARM_GIC_V2M if PCI
-	select ARM_GIC_V3
-	select ARM_GIC_V3_ITS if PCI
-	select ARM_PSCI
-	select HAVE_ARM_ARCH_TIMER
+source "arch/arm/Kconfig.platforms"
 
 config ARCH_AIROHA
 	bool "Airoha SoC Support"
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
new file mode 100644
index 000000000000..ed1f6da11e24
--- /dev/null
+++ b/arch/arm/Kconfig.platforms
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+menu "Platform selection"
+	depends on MMU
+
+comment "CPU Core family selection"
+
+config ARCH_MULTI_V4
+	bool "ARMv4 based platforms (FA526, StrongARM)"
+	depends on !ARCH_MULTI_V6_V7
+	# https://github.com/llvm/llvm-project/issues/50764
+	depends on !LD_IS_LLD || LLD_VERSION >= 160000
+	select ARCH_MULTI_V4_V5
+	select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
+
+config ARCH_MULTI_V4T
+	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
+	depends on !ARCH_MULTI_V6_V7
+	# https://github.com/llvm/llvm-project/issues/50764
+	depends on !LD_IS_LLD || LLD_VERSION >= 160000
+	select ARCH_MULTI_V4_V5
+	select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
+		CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
+		CPU_ARM925T || CPU_ARM940T)
+
+config ARCH_MULTI_V5
+	bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
+	depends on !ARCH_MULTI_V6_V7
+	select ARCH_MULTI_V4_V5
+	select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \
+		CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
+		CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON)
+
+config ARCH_MULTI_V4_V5
+	bool
+
+config ARCH_MULTI_V6
+	bool "ARMv6 based platforms (ARM11)"
+	select ARCH_MULTI_V6_V7
+	select CPU_V6K
+
+config ARCH_MULTI_V7
+	bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
+	default y
+	select ARCH_MULTI_V6_V7
+	select CPU_V7
+	select HAVE_SMP
+
+config ARCH_MULTI_V6_V7
+	bool
+	select MIGHT_HAVE_CACHE_L2X0
+
+config ARCH_MULTI_CPU_AUTO
+	def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
+	select ARCH_MULTI_V5
+
+endmenu
+
+config ARCH_VIRT
+	bool "Dummy Virtual Machine"
+	depends on ARCH_MULTI_V7
+	select ARM_AMBA
+	select ARM_GIC
+	select ARM_GIC_V2M if PCI
+	select ARM_GIC_V3
+	select ARM_GIC_V3_ITS if PCI
+	select ARM_PSCI
+	select HAVE_ARM_ARCH_TIMER
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 02/10] ARM: mach-asm9260: Move ASM9260 support into Kconfig.platforms
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-05-15 16:02 ` [PATCH 03/10] ARM: mach-rda: Move RDA Micro " Andrew Davis
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

This removes the need for a dedicated Kconfig and mach directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/Kconfig              | 2 --
 arch/arm/Kconfig.platforms    | 9 +++++++++
 arch/arm/mach-asm9260/Kconfig | 9 ---------
 3 files changed, 9 insertions(+), 11 deletions(-)
 delete mode 100644 arch/arm/mach-asm9260/Kconfig

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 23e3e344f9c0..5a047fd6b12a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -360,8 +360,6 @@ source "arch/arm/mach-alpine/Kconfig"
 
 source "arch/arm/mach-artpec/Kconfig"
 
-source "arch/arm/mach-asm9260/Kconfig"
-
 source "arch/arm/mach-aspeed/Kconfig"
 
 source "arch/arm/mach-at91/Kconfig"
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
index ed1f6da11e24..b80a5b49d276 100644
--- a/arch/arm/Kconfig.platforms
+++ b/arch/arm/Kconfig.platforms
@@ -66,3 +66,12 @@ config ARCH_VIRT
 	select ARM_GIC_V3_ITS if PCI
 	select ARM_PSCI
 	select HAVE_ARM_ARCH_TIMER
+
+config MACH_ASM9260
+	bool "Alphascale ASM9260"
+	depends on ARCH_MULTI_V5
+	depends on CPU_LITTLE_ENDIAN
+	select CPU_ARM926T
+	select ASM9260_TIMER
+	help
+	  Support for Alphascale ASM9260 based platform.
diff --git a/arch/arm/mach-asm9260/Kconfig b/arch/arm/mach-asm9260/Kconfig
deleted file mode 100644
index 74e0f61c74c8..000000000000
--- a/arch/arm/mach-asm9260/Kconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-config MACH_ASM9260
-	bool "Alphascale ASM9260"
-	depends on ARCH_MULTI_V5
-	depends on CPU_LITTLE_ENDIAN
-	select CPU_ARM926T
-	select ASM9260_TIMER
-	help
-	  Support for Alphascale ASM9260 based platform.
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 03/10] ARM: mach-rda: Move RDA Micro support into Kconfig.platforms
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
  2023-05-15 16:02 ` [PATCH 02/10] ARM: mach-asm9260: Move ASM9260 support into Kconfig.platforms Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-05-15 16:02 ` [PATCH 04/10] ARM: mach-uniphier: Move Socionext UniPhier " Andrew Davis
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

This removes the need for a dedicated Kconfig and empty mach directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/Kconfig           | 2 --
 arch/arm/Kconfig.platforms | 8 ++++++++
 arch/arm/mach-rda/Kconfig  | 8 --------
 3 files changed, 8 insertions(+), 10 deletions(-)
 delete mode 100644 arch/arm/mach-rda/Kconfig

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5a047fd6b12a..62073a43933c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -434,8 +434,6 @@ source "arch/arm/mach-pxa/Kconfig"
 
 source "arch/arm/mach-qcom/Kconfig"
 
-source "arch/arm/mach-rda/Kconfig"
-
 source "arch/arm/mach-realtek/Kconfig"
 
 source "arch/arm/mach-rpc/Kconfig"
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
index b80a5b49d276..80f5b040e6ef 100644
--- a/arch/arm/Kconfig.platforms
+++ b/arch/arm/Kconfig.platforms
@@ -75,3 +75,11 @@ config MACH_ASM9260
 	select ASM9260_TIMER
 	help
 	  Support for Alphascale ASM9260 based platform.
+
+config ARCH_RDA
+	bool "RDA Micro SoCs"
+	depends on ARCH_MULTI_V7
+	select RDA_INTC
+	select RDA_TIMER
+	help
+	  This enables support for the RDA Micro 8810PL SoC family.
diff --git a/arch/arm/mach-rda/Kconfig b/arch/arm/mach-rda/Kconfig
deleted file mode 100644
index 4d2e4e046cb3..000000000000
--- a/arch/arm/mach-rda/Kconfig
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-menuconfig ARCH_RDA
-	bool "RDA Micro SoCs"
-	depends on ARCH_MULTI_V7
-	select RDA_INTC
-	select RDA_TIMER
-	help
-	  This enables support for the RDA Micro 8810PL SoC family.
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 04/10] ARM: mach-uniphier: Move Socionext UniPhier support into Kconfig.platforms
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
  2023-05-15 16:02 ` [PATCH 02/10] ARM: mach-asm9260: Move ASM9260 support into Kconfig.platforms Andrew Davis
  2023-05-15 16:02 ` [PATCH 03/10] ARM: mach-rda: Move RDA Micro " Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-05-15 16:02 ` [PATCH 05/10] ARM: mach-moxart: Move MOXA ART " Andrew Davis
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

This removes the need for a dedicated Kconfig and empty mach directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 MAINTAINERS                    |  1 -
 arch/arm/Kconfig               |  2 --
 arch/arm/Kconfig.platforms     | 15 +++++++++++++++
 arch/arm/mach-uniphier/Kconfig | 15 ---------------
 4 files changed, 15 insertions(+), 18 deletions(-)
 delete mode 100644 arch/arm/mach-uniphier/Kconfig

diff --git a/MAINTAINERS b/MAINTAINERS
index e0ad886d3163..b4d226f87413 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2977,7 +2977,6 @@ F:	Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
 F:	Documentation/devicetree/bindings/soc/socionext/socionext,uniphier*.yaml
 F:	arch/arm/boot/dts/uniphier*
 F:	arch/arm/include/asm/hardware/cache-uniphier.h
-F:	arch/arm/mach-uniphier/
 F:	arch/arm/mm/cache-uniphier.c
 F:	arch/arm64/boot/dts/socionext/uniphier*
 F:	drivers/bus/uniphier-system-bus.c
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 62073a43933c..75d56ad5eb27 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -462,8 +462,6 @@ source "arch/arm/mach-sunxi/Kconfig"
 
 source "arch/arm/mach-tegra/Kconfig"
 
-source "arch/arm/mach-uniphier/Kconfig"
-
 source "arch/arm/mach-ux500/Kconfig"
 
 source "arch/arm/mach-versatile/Kconfig"
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
index 80f5b040e6ef..0e6d7172bf61 100644
--- a/arch/arm/Kconfig.platforms
+++ b/arch/arm/Kconfig.platforms
@@ -83,3 +83,18 @@ config ARCH_RDA
 	select RDA_TIMER
 	help
 	  This enables support for the RDA Micro 8810PL SoC family.
+
+config ARCH_UNIPHIER
+	bool "Socionext UniPhier SoCs"
+	depends on ARCH_MULTI_V7
+	select ARCH_HAS_RESET_CONTROLLER
+	select ARM_AMBA
+	select ARM_GLOBAL_TIMER
+	select ARM_GIC
+	select HAVE_ARM_SCU
+	select HAVE_ARM_TWD if SMP
+	select PINCTRL
+	select RESET_CONTROLLER
+	help
+	  Support for UniPhier SoC family developed by Socionext Inc.
+	  (formerly, System LSI Business Division of Panasonic Corporation)
diff --git a/arch/arm/mach-uniphier/Kconfig b/arch/arm/mach-uniphier/Kconfig
deleted file mode 100644
index e661d2626675..000000000000
--- a/arch/arm/mach-uniphier/Kconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-config ARCH_UNIPHIER
-	bool "Socionext UniPhier SoCs"
-	depends on ARCH_MULTI_V7
-	select ARCH_HAS_RESET_CONTROLLER
-	select ARM_AMBA
-	select ARM_GLOBAL_TIMER
-	select ARM_GIC
-	select HAVE_ARM_SCU
-	select HAVE_ARM_TWD if SMP
-	select PINCTRL
-	select RESET_CONTROLLER
-	help
-	  Support for UniPhier SoC family developed by Socionext Inc.
-	  (formerly, System LSI Business Division of Panasonic Corporation)
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 05/10] ARM: mach-moxart: Move MOXA ART support into Kconfig.platforms
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
                   ` (2 preceding siblings ...)
  2023-05-15 16:02 ` [PATCH 04/10] ARM: mach-uniphier: Move Socionext UniPhier " Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-05-15 16:02 ` [PATCH 06/10] ARM: mach-airoha: Rework support and directory structure Andrew Davis
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

This removes the need for a dedicated Kconfig and empty mach directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/Kconfig              |  2 --
 arch/arm/Kconfig.platforms    | 28 ++++++++++++++++++++++++++++
 arch/arm/Makefile             |  1 -
 arch/arm/mach-moxart/Kconfig  | 28 ----------------------------
 arch/arm/mach-moxart/Makefile |  4 ----
 arch/arm/mach-moxart/moxart.c |  6 ------
 6 files changed, 28 insertions(+), 41 deletions(-)
 delete mode 100644 arch/arm/mach-moxart/Kconfig
 delete mode 100644 arch/arm/mach-moxart/Makefile
 delete mode 100644 arch/arm/mach-moxart/moxart.c

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 75d56ad5eb27..e7351a683545 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -408,8 +408,6 @@ source "arch/arm/mach-milbeaut/Kconfig"
 
 source "arch/arm/mach-mmp/Kconfig"
 
-source "arch/arm/mach-moxart/Kconfig"
-
 source "arch/arm/mach-mstar/Kconfig"
 
 source "arch/arm/mach-mv78xx0/Kconfig"
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
index 0e6d7172bf61..4b5fad18ca8b 100644
--- a/arch/arm/Kconfig.platforms
+++ b/arch/arm/Kconfig.platforms
@@ -76,6 +76,34 @@ config MACH_ASM9260
 	help
 	  Support for Alphascale ASM9260 based platform.
 
+menuconfig ARCH_MOXART
+	bool "MOXA ART SoC"
+	depends on ARCH_MULTI_V4
+	depends on CPU_LITTLE_ENDIAN
+	select CPU_FA526
+	select ARM_DMA_MEM_BUFFERABLE
+	select FARADAY_FTINTC010
+	select FTTMR010_TIMER
+	select GPIOLIB
+	select PHYLIB if NETDEVICES
+	help
+	  Say Y here if you want to run your kernel on hardware with a
+	  MOXA ART SoC.
+	  The MOXA ART SoC is based on a Faraday FA526 ARMv4 32-bit
+	  192 MHz CPU with MMU and 16KB/8KB D/I-cache (UC-7112-LX).
+	  Used on models UC-7101, UC-7112/UC-7110, IA240/IA241, IA3341.
+
+if ARCH_MOXART
+
+config MACH_UC7112LX
+	bool "MOXA UC-7112-LX"
+	depends on ARCH_MOXART
+	help
+	  Say Y here if you intend to run this kernel on a MOXA
+	  UC-7112-LX embedded computer.
+
+endif
+
 config ARCH_RDA
 	bool "RDA Micro SoCs"
 	depends on ARCH_MULTI_V7
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 547e5856eaa0..32e99aa282bf 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -192,7 +192,6 @@ machine-$(CONFIG_ARCH_LPC18XX)		+= lpc18xx
 machine-$(CONFIG_ARCH_LPC32XX)		+= lpc32xx
 machine-$(CONFIG_ARCH_MESON)		+= meson
 machine-$(CONFIG_ARCH_MMP)		+= mmp
-machine-$(CONFIG_ARCH_MOXART)		+= moxart
 machine-$(CONFIG_ARCH_MV78XX0)		+= mv78xx0
 machine-$(CONFIG_ARCH_MVEBU)		+= mvebu
 machine-$(CONFIG_ARCH_MXC)		+= imx
diff --git a/arch/arm/mach-moxart/Kconfig b/arch/arm/mach-moxart/Kconfig
deleted file mode 100644
index 909c6573ba8b..000000000000
--- a/arch/arm/mach-moxart/Kconfig
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-menuconfig ARCH_MOXART
-	bool "MOXA ART SoC"
-	depends on ARCH_MULTI_V4
-	depends on CPU_LITTLE_ENDIAN
-	select CPU_FA526
-	select ARM_DMA_MEM_BUFFERABLE
-	select FARADAY_FTINTC010
-	select FTTMR010_TIMER
-	select GPIOLIB
-	select PHYLIB if NETDEVICES
-	help
-	  Say Y here if you want to run your kernel on hardware with a
-	  MOXA ART SoC.
-	  The MOXA ART SoC is based on a Faraday FA526 ARMv4 32-bit
-	  192 MHz CPU with MMU and 16KB/8KB D/I-cache (UC-7112-LX).
-	  Used on models UC-7101, UC-7112/UC-7110, IA240/IA241, IA3341.
-
-if ARCH_MOXART
-
-config MACH_UC7112LX
-	bool "MOXA UC-7112-LX"
-	depends on ARCH_MOXART
-	help
-	  Say Y here if you intend to run this kernel on a MOXA
-	  UC-7112-LX embedded computer.
-
-endif
diff --git a/arch/arm/mach-moxart/Makefile b/arch/arm/mach-moxart/Makefile
deleted file mode 100644
index ded3e38fb98d..000000000000
--- a/arch/arm/mach-moxart/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Object file lists.
-
-obj-$(CONFIG_MACH_UC7112LX)	+= moxart.o
diff --git a/arch/arm/mach-moxart/moxart.c b/arch/arm/mach-moxart/moxart.c
deleted file mode 100644
index f1f58c0c0fa1..000000000000
--- a/arch/arm/mach-moxart/moxart.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * arch/arm/mach-moxart/moxart.c
- *
- * (C) Copyright 2013, Jonas Jensen <jonas.jensen@gmail.com>
- */
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 06/10] ARM: mach-airoha: Rework support and directory structure
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
                   ` (3 preceding siblings ...)
  2023-05-15 16:02 ` [PATCH 05/10] ARM: mach-moxart: Move MOXA ART " Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-05-15 16:31   ` Russell King (Oracle)
  2023-05-15 16:02 ` [PATCH 07/10] ARM: mach-digicolor: " Andrew Davis
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

Having a platform need a mach-* directory should be seen as a negative,
it means the platform needs special non-standard handling. ARM64 support
does not allow mach-* directories at all. While we may not get to that
given all the non-standard architectures we support, we should still try
to get as close as we can and reduce the number of mach directories.

The mach-airoha/ directory, and files within, provide just one "feature":
having the kernel print the machine name if the DTB does not also contain
a "model" string (which they always do). To reduce the number of mach-*
directories let's do without that feature and remove this directory.

It also seems there was a copy/paste error and the "MEDIATEK_DT"
name was re-used in the DT_MACHINE_START macro. This may have caused
conflicts if this was built in a multi-arch configuration.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/Kconfig              | 11 -----------
 arch/arm/Kconfig.platforms    | 11 +++++++++++
 arch/arm/Makefile             |  1 -
 arch/arm/mach-airoha/Makefile |  2 --
 arch/arm/mach-airoha/airoha.c | 16 ----------------
 5 files changed, 11 insertions(+), 30 deletions(-)
 delete mode 100644 arch/arm/mach-airoha/Makefile
 delete mode 100644 arch/arm/mach-airoha/airoha.c

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e7351a683545..f60e98da58cd 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -338,17 +338,6 @@ config ARCH_MULTIPLATFORM
 
 source "arch/arm/Kconfig.platforms"
 
-config ARCH_AIROHA
-	bool "Airoha SoC Support"
-	depends on ARCH_MULTI_V7
-	select ARM_AMBA
-	select ARM_GIC
-	select ARM_GIC_V3
-	select ARM_PSCI
-	select HAVE_ARM_ARCH_TIMER
-	help
-	  Support for Airoha EN7523 SoCs
-
 #
 # This is sorted alphabetically by mach-* pathname.  However, plat-*
 # Kconfigs may be included either alphabetically (according to the
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
index 4b5fad18ca8b..38457d5a18ff 100644
--- a/arch/arm/Kconfig.platforms
+++ b/arch/arm/Kconfig.platforms
@@ -67,6 +67,17 @@ config ARCH_VIRT
 	select ARM_PSCI
 	select HAVE_ARM_ARCH_TIMER
 
+config ARCH_AIROHA
+	bool "Airoha SoC Support"
+	depends on ARCH_MULTI_V7
+	select ARM_AMBA
+	select ARM_GIC
+	select ARM_GIC_V3
+	select ARM_PSCI
+	select HAVE_ARM_ARCH_TIMER
+	help
+	  Support for Airoha EN7523 SoCs
+
 config MACH_ASM9260
 	bool "Alphascale ASM9260"
 	depends on ARCH_MULTI_V5
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 32e99aa282bf..e20c8af34d51 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -167,7 +167,6 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
 # Machine directory name.  This list is sorted alphanumerically
 # by CONFIG_* macro name.
 machine-$(CONFIG_ARCH_ACTIONS)		+= actions
-machine-$(CONFIG_ARCH_AIROHA)		+= airoha
 machine-$(CONFIG_ARCH_ALPINE)		+= alpine
 machine-$(CONFIG_ARCH_ARTPEC)		+= artpec
 machine-$(CONFIG_ARCH_ASPEED)           += aspeed
diff --git a/arch/arm/mach-airoha/Makefile b/arch/arm/mach-airoha/Makefile
deleted file mode 100644
index a5857d0d02eb..000000000000
--- a/arch/arm/mach-airoha/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y			+= airoha.o
diff --git a/arch/arm/mach-airoha/airoha.c b/arch/arm/mach-airoha/airoha.c
deleted file mode 100644
index ea23b5abb478..000000000000
--- a/arch/arm/mach-airoha/airoha.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Device Tree support for Airoha SoCs
- *
- * Copyright (c) 2022 Felix Fietkau <nbd@nbd.name>
- */
-#include <asm/mach/arch.h>
-
-static const char * const airoha_board_dt_compat[] = {
-	"airoha,en7523",
-	NULL,
-};
-
-DT_MACHINE_START(MEDIATEK_DT, "Airoha Cortex-A53 (Device Tree)")
-	.dt_compat	= airoha_board_dt_compat,
-MACHINE_END
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 07/10] ARM: mach-digicolor: Rework support and directory structure
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
                   ` (4 preceding siblings ...)
  2023-05-15 16:02 ` [PATCH 06/10] ARM: mach-airoha: Rework support and directory structure Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-05-15 16:02 ` [PATCH 08/10] ARM: mach-hpe: " Andrew Davis
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

Having a platform need a mach-* directory should be seen as a negative,
it means the platform needs special non-standard handling. ARM64 support
does not allow mach-* directories at all. While we may not get to that
given all the non-standard architectures we support, we should still try
to get as close as we can and reduce the number of mach directories.

The mach-digicolor/ directory and files, provides just one "feature":
having the kernel print the machine name if the DTB does not also contain
a "model" string (which they always do). To reduce the number of mach-*
directories let's do without that feature and remove this directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/Kconfig                    |  2 --
 arch/arm/Kconfig.platforms          | 11 +++++++++++
 arch/arm/Makefile                   |  1 -
 arch/arm/mach-digicolor/Kconfig     | 11 -----------
 arch/arm/mach-digicolor/Makefile    |  2 --
 arch/arm/mach-digicolor/digicolor.c | 15 ---------------
 6 files changed, 11 insertions(+), 31 deletions(-)
 delete mode 100644 arch/arm/mach-digicolor/Kconfig
 delete mode 100644 arch/arm/mach-digicolor/Makefile
 delete mode 100644 arch/arm/mach-digicolor/digicolor.c

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f60e98da58cd..d4afd5a01307 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -363,8 +363,6 @@ source "arch/arm/mach-clps711x/Kconfig"
 
 source "arch/arm/mach-davinci/Kconfig"
 
-source "arch/arm/mach-digicolor/Kconfig"
-
 source "arch/arm/mach-dove/Kconfig"
 
 source "arch/arm/mach-ep93xx/Kconfig"
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
index 38457d5a18ff..c74392419cc3 100644
--- a/arch/arm/Kconfig.platforms
+++ b/arch/arm/Kconfig.platforms
@@ -87,6 +87,17 @@ config MACH_ASM9260
 	help
 	  Support for Alphascale ASM9260 based platform.
 
+config ARCH_DIGICOLOR
+	bool "Conexant Digicolor SoC Support"
+	depends on ARCH_MULTI_V7
+	select CLKSRC_MMIO
+	select DIGICOLOR_TIMER
+	select GENERIC_IRQ_CHIP
+	select GPIOLIB
+	select MFD_SYSCON
+	select PINCTRL
+	select PINCTRL_DIGICOLOR
+
 menuconfig ARCH_MOXART
 	bool "MOXA ART SoC"
 	depends on ARCH_MULTI_V4
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index e20c8af34d51..82ec2c8bd749 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -176,7 +176,6 @@ machine-$(CONFIG_ARCH_BCM)		+= bcm
 machine-$(CONFIG_ARCH_BERLIN)		+= berlin
 machine-$(CONFIG_ARCH_CLPS711X)		+= clps711x
 machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
-machine-$(CONFIG_ARCH_DIGICOLOR)	+= digicolor
 machine-$(CONFIG_ARCH_DOVE)		+= dove
 machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
 machine-$(CONFIG_ARCH_EXYNOS)		+= exynos
diff --git a/arch/arm/mach-digicolor/Kconfig b/arch/arm/mach-digicolor/Kconfig
deleted file mode 100644
index 90394433c405..000000000000
--- a/arch/arm/mach-digicolor/Kconfig
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-config ARCH_DIGICOLOR
-	bool "Conexant Digicolor SoC Support"
-	depends on ARCH_MULTI_V7
-	select CLKSRC_MMIO
-	select DIGICOLOR_TIMER
-	select GENERIC_IRQ_CHIP
-	select GPIOLIB
-	select MFD_SYSCON
-	select PINCTRL
-	select PINCTRL_DIGICOLOR
diff --git a/arch/arm/mach-digicolor/Makefile b/arch/arm/mach-digicolor/Makefile
deleted file mode 100644
index fc5b7c98c824..000000000000
--- a/arch/arm/mach-digicolor/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-$(CONFIG_ARCH_DIGICOLOR)	+= digicolor.o
diff --git a/arch/arm/mach-digicolor/digicolor.c b/arch/arm/mach-digicolor/digicolor.c
deleted file mode 100644
index 156d0d5996a9..000000000000
--- a/arch/arm/mach-digicolor/digicolor.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Support for Conexant Digicolor SoCs
-*/
-
-#include <asm/mach/arch.h>
-
-static const char *const digicolor_dt_compat[] __initconst = {
-	"cnxt,cx92755",
-	NULL,
-};
-
-DT_MACHINE_START(DIGICOLOR, "Conexant Digicolor (Flattened Device Tree)")
-	.dt_compat	= digicolor_dt_compat,
-MACHINE_END
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 08/10] ARM: mach-hpe: Rework support and directory structure
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
                   ` (5 preceding siblings ...)
  2023-05-15 16:02 ` [PATCH 07/10] ARM: mach-digicolor: " Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-12-22 14:21   ` Arnd Bergmann
  2023-05-15 16:02 ` [PATCH 09/10] ARM: mach-lpc18xx: " Andrew Davis
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

Having a platform need a mach-* directory should be seen as a negative,
it means the platform needs special non-standard handling. ARM64 support
does not allow mach-* directories at all. While we may not get to that
given all the non-standard architectures we support, we should still try
to get as close as we can and reduce the number of mach directories.

The mach-hpe/ directory and files, provides just one "feature":
having the kernel print the machine name if the DTB does not also contain
a "model" string (which they always do). To reduce the number of mach-*
directories let's do without that feature and remove this directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 MAINTAINERS                |  1 -
 arch/arm/Kconfig           |  2 --
 arch/arm/Kconfig.platforms | 25 +++++++++++++++++++++++++
 arch/arm/Makefile          |  1 -
 arch/arm/mach-hpe/Kconfig  | 23 -----------------------
 arch/arm/mach-hpe/Makefile |  1 -
 arch/arm/mach-hpe/gxp.c    | 16 ----------------
 7 files changed, 25 insertions(+), 44 deletions(-)
 delete mode 100644 arch/arm/mach-hpe/Kconfig
 delete mode 100644 arch/arm/mach-hpe/Makefile
 delete mode 100644 arch/arm/mach-hpe/gxp.c

diff --git a/MAINTAINERS b/MAINTAINERS
index b4d226f87413..03ac2c37d22e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2253,7 +2253,6 @@ F:	Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml
 F:	Documentation/hwmon/gxp-fan-ctrl.rst
 F:	arch/arm/boot/dts/hpe-bmc*
 F:	arch/arm/boot/dts/hpe-gxp*
-F:	arch/arm/mach-hpe/
 F:	drivers/clocksource/timer-gxp.c
 F:	drivers/hwmon/gxp-fan-ctrl.c
 F:	drivers/i2c/busses/i2c-gxp.c
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d4afd5a01307..0024967b08ea 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -377,8 +377,6 @@ source "arch/arm/mach-highbank/Kconfig"
 
 source "arch/arm/mach-hisi/Kconfig"
 
-source "arch/arm/mach-hpe/Kconfig"
-
 source "arch/arm/mach-imx/Kconfig"
 
 source "arch/arm/mach-ixp4xx/Kconfig"
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
index c74392419cc3..60f2140c9ff2 100644
--- a/arch/arm/Kconfig.platforms
+++ b/arch/arm/Kconfig.platforms
@@ -98,6 +98,31 @@ config ARCH_DIGICOLOR
 	select PINCTRL
 	select PINCTRL_DIGICOLOR
 
+menuconfig ARCH_HPE
+	bool "HPE SoC support"
+	depends on ARCH_MULTI_V7
+	help
+	  This enables support for HPE ARM based BMC chips.
+
+if ARCH_HPE
+
+config ARCH_HPE_GXP
+	bool "HPE GXP SoC"
+	depends on ARCH_MULTI_V7
+	select ARM_VIC
+	select GENERIC_IRQ_CHIP
+	select CLKSRC_MMIO
+	help
+	  HPE GXP is the name of the HPE Soc. This SoC is used to implement many
+	  BMC features at HPE. It supports ARMv7 architecture based on the Cortex
+	  A9 core. It is capable of using an AXI bus to which a memory controller
+	  is attached. It has multiple SPI interfaces to connect boot flash and
+	  BIOS flash. It uses a 10/100/1000 MAC for network connectivity. It
+	  has multiple i2c engines to drive connectivity with a host
+	  infrastructure.
+
+endif
+
 menuconfig ARCH_MOXART
 	bool "MOXA ART SoC"
 	depends on ARCH_MULTI_V4
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 82ec2c8bd749..d306cf8107dc 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -183,7 +183,6 @@ machine-$(CONFIG_ARCH_FOOTBRIDGE)	+= footbridge
 machine-$(CONFIG_ARCH_GEMINI)		+= gemini
 machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_HISI)		+= hisi
-machine-$(CONFIG_ARCH_HPE)		+= hpe
 machine-$(CONFIG_ARCH_IXP4XX)		+= ixp4xx
 machine-$(CONFIG_ARCH_KEYSTONE)		+= keystone
 machine-$(CONFIG_ARCH_LPC18XX)		+= lpc18xx
diff --git a/arch/arm/mach-hpe/Kconfig b/arch/arm/mach-hpe/Kconfig
deleted file mode 100644
index 3372bbf38d38..000000000000
--- a/arch/arm/mach-hpe/Kconfig
+++ /dev/null
@@ -1,23 +0,0 @@
-menuconfig ARCH_HPE
-	bool "HPE SoC support"
-	depends on ARCH_MULTI_V7
-	help
-	  This enables support for HPE ARM based BMC chips.
-if ARCH_HPE
-
-config ARCH_HPE_GXP
-	bool "HPE GXP SoC"
-	depends on ARCH_MULTI_V7
-	select ARM_VIC
-	select GENERIC_IRQ_CHIP
-	select CLKSRC_MMIO
-	help
-	  HPE GXP is the name of the HPE Soc. This SoC is used to implement many
-	  BMC features at HPE. It supports ARMv7 architecture based on the Cortex
-	  A9 core. It is capable of using an AXI bus to which a memory controller
-	  is attached. It has multiple SPI interfaces to connect boot flash and
-	  BIOS flash. It uses a 10/100/1000 MAC for network connectivity. It
-	  has multiple i2c engines to drive connectivity with a host
-	  infrastructure.
-
-endif
diff --git a/arch/arm/mach-hpe/Makefile b/arch/arm/mach-hpe/Makefile
deleted file mode 100644
index 8b0a91234df4..000000000000
--- a/arch/arm/mach-hpe/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_ARCH_HPE_GXP) += gxp.o
diff --git a/arch/arm/mach-hpe/gxp.c b/arch/arm/mach-hpe/gxp.c
deleted file mode 100644
index ef3341373006..000000000000
--- a/arch/arm/mach-hpe/gxp.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/* Copyright (C) 2022 Hewlett-Packard Enterprise Development Company, L.P. */
-
-#include <linux/of_platform.h>
-#include <asm/mach/arch.h>
-
-static const char * const gxp_board_dt_compat[] = {
-	"hpe,gxp",
-	NULL,
-};
-
-DT_MACHINE_START(GXP_DT, "HPE GXP")
-	.dt_compat	= gxp_board_dt_compat,
-	.l2c_aux_val = 0,
-	.l2c_aux_mask = ~0,
-MACHINE_END
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 09/10] ARM: mach-lpc18xx: Rework support and directory structure
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
                   ` (6 preceding siblings ...)
  2023-05-15 16:02 ` [PATCH 08/10] ARM: mach-hpe: " Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-05-15 16:02 ` [PATCH 10/10] ARM: mach-sunplus: " Andrew Davis
  2023-05-15 16:31 ` [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
  9 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

Having a platform need a mach-* directory should be seen as a negative,
it means the platform needs special non-standard handling. ARM64 support
does not allow mach-* directories at all. While we may not get to that
given all the non-standard architectures we support, we should still try
to get as close as we can and reduce the number of mach directories.

The mach-lpc18xx/ directory and files, provides just one "feature":
having the kernel print the machine name if the DTB does not also contain
a "model" string (which they always do). To reduce the number of mach-*
directories let's do without that feature and remove this directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/Makefile                |  1 -
 arch/arm/mach-lpc18xx/Makefile   |  2 --
 arch/arm/mach-lpc18xx/board-dt.c | 19 -------------------
 3 files changed, 22 deletions(-)
 delete mode 100644 arch/arm/mach-lpc18xx/Makefile
 delete mode 100644 arch/arm/mach-lpc18xx/board-dt.c

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index d306cf8107dc..bab3d2485f80 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -185,7 +185,6 @@ machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_HISI)		+= hisi
 machine-$(CONFIG_ARCH_IXP4XX)		+= ixp4xx
 machine-$(CONFIG_ARCH_KEYSTONE)		+= keystone
-machine-$(CONFIG_ARCH_LPC18XX)		+= lpc18xx
 machine-$(CONFIG_ARCH_LPC32XX)		+= lpc32xx
 machine-$(CONFIG_ARCH_MESON)		+= meson
 machine-$(CONFIG_ARCH_MMP)		+= mmp
diff --git a/arch/arm/mach-lpc18xx/Makefile b/arch/arm/mach-lpc18xx/Makefile
deleted file mode 100644
index c80d80c199d3..000000000000
--- a/arch/arm/mach-lpc18xx/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y += board-dt.o
diff --git a/arch/arm/mach-lpc18xx/board-dt.c b/arch/arm/mach-lpc18xx/board-dt.c
deleted file mode 100644
index 4729eb83401a..000000000000
--- a/arch/arm/mach-lpc18xx/board-dt.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Device Tree board file for NXP LPC18xx/43xx
- *
- * Copyright (C) 2015 Joachim Eastwood <manabian@gmail.com>
- */
-
-#include <asm/mach/arch.h>
-
-static const char *const lpc18xx_43xx_compat[] __initconst = {
-	"nxp,lpc1850",
-	"nxp,lpc4350",
-	"nxp,lpc4370",
-	NULL
-};
-
-DT_MACHINE_START(LPC18XXDT, "NXP LPC18xx/43xx (Device Tree)")
-	.dt_compat = lpc18xx_43xx_compat,
-MACHINE_END
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 10/10] ARM: mach-sunplus: Rework support and directory structure
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
                   ` (7 preceding siblings ...)
  2023-05-15 16:02 ` [PATCH 09/10] ARM: mach-lpc18xx: " Andrew Davis
@ 2023-05-15 16:02 ` Andrew Davis
  2023-05-15 16:31 ` [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
  9 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:02 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel, Andrew Davis

Having a platform need a mach-* directory should be seen as a negative,
it means the platform needs special non-standard handling. ARM64 support
does not allow mach-* directories at all. While we may not get to that
given all the non-standard architectures we support, we should still try
to get as close as we can and reduce the number of mach directories.

The mach-sunplus/ directory and files, provides just one "feature":
having the kernel print the machine name if the DTB does not also contain
a "model" string (which they always do). To reduce the number of mach-*
directories let's do without that feature and remove this directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 MAINTAINERS                    |  1 -
 arch/arm/Kconfig               |  2 --
 arch/arm/Kconfig.platforms     | 29 +++++++++++++++++++++++++++++
 arch/arm/Makefile              |  1 -
 arch/arm/mach-sunplus/Kconfig  | 27 ---------------------------
 arch/arm/mach-sunplus/Makefile |  8 --------
 arch/arm/mach-sunplus/sp7021.c | 16 ----------------
 7 files changed, 29 insertions(+), 55 deletions(-)
 delete mode 100644 arch/arm/mach-sunplus/Kconfig
 delete mode 100644 arch/arm/mach-sunplus/Makefile
 delete mode 100644 arch/arm/mach-sunplus/sp7021.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 03ac2c37d22e..91d1ee89e275 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2855,7 +2855,6 @@ F:	Documentation/devicetree/bindings/interrupt-controller/sunplus,sp7021-intc.ya
 F:	Documentation/devicetree/bindings/reset/sunplus,reset.yaml
 F:	arch/arm/boot/dts/sunplus-sp7021*.dts*
 F:	arch/arm/configs/sp7021_*defconfig
-F:	arch/arm/mach-sunplus/
 F:	drivers/clk/clk-sp7021.c
 F:	drivers/irqchip/irq-sp7021-intc.c
 F:	drivers/reset/reset-sunplus.c
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0024967b08ea..57f994497311 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -439,8 +439,6 @@ source "arch/arm/mach-sti/Kconfig"
 
 source "arch/arm/mach-stm32/Kconfig"
 
-source "arch/arm/mach-sunplus/Kconfig"
-
 source "arch/arm/mach-sunxi/Kconfig"
 
 source "arch/arm/mach-tegra/Kconfig"
diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
index 60f2140c9ff2..892a5e309cea 100644
--- a/arch/arm/Kconfig.platforms
+++ b/arch/arm/Kconfig.platforms
@@ -159,6 +159,35 @@ config ARCH_RDA
 	help
 	  This enables support for the RDA Micro 8810PL SoC family.
 
+menuconfig ARCH_SUNPLUS
+	bool "Sunplus SoCs"
+	depends on ARCH_MULTI_V7
+	help
+	  Support for Sunplus SoC family: SP7021 and succeeding SoC-based systems,
+	  such as the Banana Pi BPI-F2S development board (and derivatives).
+	  (<http://www.sinovoip.com.cn/ecp_view.asp?id=586>)
+	  (<https://tibbo.com/store/plus1.html>)
+
+if ARCH_SUNPLUS
+
+config SOC_SP7021
+	bool "Sunplus SP7021 SoC support"
+	default ARCH_SUNPLUS
+	select HAVE_ARM_ARCH_TIMER
+	select ARM_GIC
+	select ARM_PSCI
+	select PINCTRL
+	select PINCTRL_SPPCTL
+	select SERIAL_SUNPLUS if TTY
+	select SERIAL_SUNPLUS_CONSOLE if TTY
+	help
+	  Support for Sunplus SP7021 SoC. It is based on ARM 4-core
+	  Cortex-A7 with various peripherals (e.g.: I2C, SPI, SDIO,
+	  Ethernet, etc.), FPGA interface,  chip-to-chip bus.
+	  It is designed for industrial control.
+
+endif
+
 config ARCH_UNIPHIER
 	bool "Socionext UniPhier SoCs"
 	depends on ARCH_MULTI_V7
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index bab3d2485f80..ceadfa3c59fd 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -213,7 +213,6 @@ machine-$(CONFIG_ARCH_RENESAS)	 	+= shmobile
 machine-$(CONFIG_ARCH_INTEL_SOCFPGA)	+= socfpga
 machine-$(CONFIG_ARCH_STI)		+= sti
 machine-$(CONFIG_ARCH_STM32)		+= stm32
-machine-$(CONFIG_ARCH_SUNPLUS)		+= sunplus
 machine-$(CONFIG_ARCH_SUNXI)		+= sunxi
 machine-$(CONFIG_ARCH_TEGRA)		+= tegra
 machine-$(CONFIG_ARCH_U8500)		+= ux500
diff --git a/arch/arm/mach-sunplus/Kconfig b/arch/arm/mach-sunplus/Kconfig
deleted file mode 100644
index d0c2416e6f24..000000000000
--- a/arch/arm/mach-sunplus/Kconfig
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-
-menuconfig ARCH_SUNPLUS
-	bool "Sunplus SoCs"
-	depends on ARCH_MULTI_V7
-	help
-	  Support for Sunplus SoC family: SP7021 and succeeding SoC-based systems,
-	  such as the Banana Pi BPI-F2S development board (and derivatives).
-	  (<http://www.sinovoip.com.cn/ecp_view.asp?id=586>)
-	  (<https://tibbo.com/store/plus1.html>)
-
-config SOC_SP7021
-	bool "Sunplus SP7021 SoC support"
-	depends on ARCH_SUNPLUS
-	default ARCH_SUNPLUS
-	select HAVE_ARM_ARCH_TIMER
-	select ARM_GIC
-	select ARM_PSCI
-	select PINCTRL
-	select PINCTRL_SPPCTL
-	select SERIAL_SUNPLUS if TTY
-	select SERIAL_SUNPLUS_CONSOLE if TTY
-	help
-	  Support for Sunplus SP7021 SoC. It is based on ARM 4-core
-	  Cortex-A7 with various peripherals (e.g.: I2C, SPI, SDIO,
-	  Ethernet, etc.), FPGA interface,  chip-to-chip bus.
-	  It is designed for industrial control.
diff --git a/arch/arm/mach-sunplus/Makefile b/arch/arm/mach-sunplus/Makefile
deleted file mode 100644
index d211de6af2db..000000000000
--- a/arch/arm/mach-sunplus/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-#
-# Makefile for the linux kernel.
-#
-
-# Object file lists.
-
-obj-$(CONFIG_SOC_SP7021)	+= sp7021.o
diff --git a/arch/arm/mach-sunplus/sp7021.c b/arch/arm/mach-sunplus/sp7021.c
deleted file mode 100644
index 774d0a5bd4eb..000000000000
--- a/arch/arm/mach-sunplus/sp7021.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-/*
- * Copyright (C) Sunplus Technology Co., Ltd.
- *       All rights reserved.
- */
-#include <linux/kernel.h>
-#include <asm/mach/arch.h>
-
-static const char *sp7021_compat[] __initconst = {
-	"sunplus,sp7021",
-	NULL
-};
-
-DT_MACHINE_START(SP7021_DT, "SP7021")
-	.dt_compat	= sp7021_compat,
-MACHINE_END
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 06/10] ARM: mach-airoha: Rework support and directory structure
  2023-05-15 16:02 ` [PATCH 06/10] ARM: mach-airoha: Rework support and directory structure Andrew Davis
@ 2023-05-15 16:31   ` Russell King (Oracle)
  2023-07-13 18:44     ` Andrew Davis
  0 siblings, 1 reply; 16+ messages in thread
From: Russell King (Oracle) @ 2023-05-15 16:31 UTC (permalink / raw)
  To: Andrew Davis
  Cc: Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij, linux-arm-kernel, linux-kernel

On Mon, May 15, 2023 at 11:02:30AM -0500, Andrew Davis wrote:
> Having a platform need a mach-* directory should be seen as a negative,
> it means the platform needs special non-standard handling. ARM64 support
> does not allow mach-* directories at all. While we may not get to that
> given all the non-standard architectures we support, we should still try
> to get as close as we can and reduce the number of mach directories.
> 
> The mach-airoha/ directory, and files within, provide just one "feature":
> having the kernel print the machine name if the DTB does not also contain
> a "model" string (which they always do). To reduce the number of mach-*
> directories let's do without that feature and remove this directory.

I'm guessing this is copy-n-pasted description. However:
> -static const char * const airoha_board_dt_compat[] = {
> -	"airoha,en7523",
> -	NULL,
> -};
> -
> -DT_MACHINE_START(MEDIATEK_DT, "Airoha Cortex-A53 (Device Tree)")
> -	.dt_compat	= airoha_board_dt_compat,
> -MACHINE_END

If this is actually used, then it will have the effect of providing a
"machine" that has both l2c_aux_mask and l2c_aux_val as zero, whereas
the default one has l2c_aux_mask set to ~0.

This has the effect of _not_ calling l2x0_of_init() - but you don't
mention this. You probably should, and you should probably state why
that is safe (assuming you've even realised you've made this change!)

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file
  2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
                   ` (8 preceding siblings ...)
  2023-05-15 16:02 ` [PATCH 10/10] ARM: mach-sunplus: " Andrew Davis
@ 2023-05-15 16:31 ` Andrew Davis
  9 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-05-15 16:31 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel

On 5/15/23 9:02 AM, Andrew Davis wrote:
> Mostly just for better organization for now. This matches what is done on
> some other platforms including ARM64. This also lets us start to reduce
> the number of mach- directories that only exist to store the platform
> selection.
> 
> Start with "Platform selection" and ARCH_VIRT.
> 
> Signed-off-by: Andrew Davis <afd@ti.com>
> ---

Oh, forgot to tag it but this is v2 posting of this series. No changes
from v1, just rebased on v6.4-rc2.

Andrew

>   arch/arm/Kconfig           | 67 +------------------------------------
>   arch/arm/Kconfig.platforms | 68 ++++++++++++++++++++++++++++++++++++++
>   2 files changed, 69 insertions(+), 66 deletions(-)
>   create mode 100644 arch/arm/Kconfig.platforms
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 0fb4b218f665..23e3e344f9c0 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -336,72 +336,7 @@ config ARCH_MULTIPLATFORM
>   	  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
> -
> -comment "CPU Core family selection"
> -
> -config ARCH_MULTI_V4
> -	bool "ARMv4 based platforms (FA526, StrongARM)"
> -	depends on !ARCH_MULTI_V6_V7
> -	# https://github.com/llvm/llvm-project/issues/50764
> -	depends on !LD_IS_LLD || LLD_VERSION >= 160000
> -	select ARCH_MULTI_V4_V5
> -	select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
> -
> -config ARCH_MULTI_V4T
> -	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
> -	depends on !ARCH_MULTI_V6_V7
> -	# https://github.com/llvm/llvm-project/issues/50764
> -	depends on !LD_IS_LLD || LLD_VERSION >= 160000
> -	select ARCH_MULTI_V4_V5
> -	select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
> -		CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
> -		CPU_ARM925T || CPU_ARM940T)
> -
> -config ARCH_MULTI_V5
> -	bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
> -	depends on !ARCH_MULTI_V6_V7
> -	select ARCH_MULTI_V4_V5
> -	select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \
> -		CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
> -		CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON)
> -
> -config ARCH_MULTI_V4_V5
> -	bool
> -
> -config ARCH_MULTI_V6
> -	bool "ARMv6 based platforms (ARM11)"
> -	select ARCH_MULTI_V6_V7
> -	select CPU_V6K
> -
> -config ARCH_MULTI_V7
> -	bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
> -	default y
> -	select ARCH_MULTI_V6_V7
> -	select CPU_V7
> -	select HAVE_SMP
> -
> -config ARCH_MULTI_V6_V7
> -	bool
> -	select MIGHT_HAVE_CACHE_L2X0
> -
> -config ARCH_MULTI_CPU_AUTO
> -	def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
> -	select ARCH_MULTI_V5
> -
> -endmenu
> -
> -config ARCH_VIRT
> -	bool "Dummy Virtual Machine"
> -	depends on ARCH_MULTI_V7
> -	select ARM_AMBA
> -	select ARM_GIC
> -	select ARM_GIC_V2M if PCI
> -	select ARM_GIC_V3
> -	select ARM_GIC_V3_ITS if PCI
> -	select ARM_PSCI
> -	select HAVE_ARM_ARCH_TIMER
> +source "arch/arm/Kconfig.platforms"
>   
>   config ARCH_AIROHA
>   	bool "Airoha SoC Support"
> diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms
> new file mode 100644
> index 000000000000..ed1f6da11e24
> --- /dev/null
> +++ b/arch/arm/Kconfig.platforms
> @@ -0,0 +1,68 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +menu "Platform selection"
> +	depends on MMU
> +
> +comment "CPU Core family selection"
> +
> +config ARCH_MULTI_V4
> +	bool "ARMv4 based platforms (FA526, StrongARM)"
> +	depends on !ARCH_MULTI_V6_V7
> +	# https://github.com/llvm/llvm-project/issues/50764
> +	depends on !LD_IS_LLD || LLD_VERSION >= 160000
> +	select ARCH_MULTI_V4_V5
> +	select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
> +
> +config ARCH_MULTI_V4T
> +	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
> +	depends on !ARCH_MULTI_V6_V7
> +	# https://github.com/llvm/llvm-project/issues/50764
> +	depends on !LD_IS_LLD || LLD_VERSION >= 160000
> +	select ARCH_MULTI_V4_V5
> +	select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
> +		CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
> +		CPU_ARM925T || CPU_ARM940T)
> +
> +config ARCH_MULTI_V5
> +	bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
> +	depends on !ARCH_MULTI_V6_V7
> +	select ARCH_MULTI_V4_V5
> +	select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \
> +		CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
> +		CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON)
> +
> +config ARCH_MULTI_V4_V5
> +	bool
> +
> +config ARCH_MULTI_V6
> +	bool "ARMv6 based platforms (ARM11)"
> +	select ARCH_MULTI_V6_V7
> +	select CPU_V6K
> +
> +config ARCH_MULTI_V7
> +	bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
> +	default y
> +	select ARCH_MULTI_V6_V7
> +	select CPU_V7
> +	select HAVE_SMP
> +
> +config ARCH_MULTI_V6_V7
> +	bool
> +	select MIGHT_HAVE_CACHE_L2X0
> +
> +config ARCH_MULTI_CPU_AUTO
> +	def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
> +	select ARCH_MULTI_V5
> +
> +endmenu
> +
> +config ARCH_VIRT
> +	bool "Dummy Virtual Machine"
> +	depends on ARCH_MULTI_V7
> +	select ARM_AMBA
> +	select ARM_GIC
> +	select ARM_GIC_V2M if PCI
> +	select ARM_GIC_V3
> +	select ARM_GIC_V3_ITS if PCI
> +	select ARM_PSCI
> +	select HAVE_ARM_ARCH_TIMER

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 06/10] ARM: mach-airoha: Rework support and directory structure
  2023-05-15 16:31   ` Russell King (Oracle)
@ 2023-07-13 18:44     ` Andrew Davis
  2023-07-14  7:52       ` Arnd Bergmann
  0 siblings, 1 reply; 16+ messages in thread
From: Andrew Davis @ 2023-07-13 18:44 UTC (permalink / raw)
  To: Russell King (Oracle)
  Cc: Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Geert Uytterhoeven,
	Linus Walleij, linux-arm-kernel, linux-kernel

On 5/15/23 11:31 AM, Russell King (Oracle) wrote:
> On Mon, May 15, 2023 at 11:02:30AM -0500, Andrew Davis wrote:
>> Having a platform need a mach-* directory should be seen as a negative,
>> it means the platform needs special non-standard handling. ARM64 support
>> does not allow mach-* directories at all. While we may not get to that
>> given all the non-standard architectures we support, we should still try
>> to get as close as we can and reduce the number of mach directories.
>>
>> The mach-airoha/ directory, and files within, provide just one "feature":
>> having the kernel print the machine name if the DTB does not also contain
>> a "model" string (which they always do). To reduce the number of mach-*
>> directories let's do without that feature and remove this directory.
> 
> I'm guessing this is copy-n-pasted description. However:
>> -static const char * const airoha_board_dt_compat[] = {
>> -	"airoha,en7523",
>> -	NULL,
>> -};
>> -
>> -DT_MACHINE_START(MEDIATEK_DT, "Airoha Cortex-A53 (Device Tree)")
>> -	.dt_compat	= airoha_board_dt_compat,
>> -MACHINE_END
> 
> If this is actually used, then it will have the effect of providing a
> "machine" that has both l2c_aux_mask and l2c_aux_val as zero, whereas
> the default one has l2c_aux_mask set to ~0.
> 

Given we set l2c_aux_mask to ~0 as a default for "Generic" DT system I
had assumed this was safe, but no I cannot prove it for this board as
I don't have one.

I wonder if we should have some way to set this in DT, that would
let us drop some more MACHINE defines that exist only to set
the l2c_aux_val/mask..

> This has the effect of _not_ calling l2x0_of_init() - but you don't
> mention this. You probably should, and you should probably state why
> that is safe (assuming you've even realised you've made this change!)
> 

Reverse question, did the folks adding this support know this had
the effect of changing l2c_aux_mask from the default?

For now I'll resend this series with only the first 5 patches which
should be trivially safe. The later ones I can send after double
checking on l2x0_of_init().

Andrew

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 06/10] ARM: mach-airoha: Rework support and directory structure
  2023-07-13 18:44     ` Andrew Davis
@ 2023-07-14  7:52       ` Arnd Bergmann
  0 siblings, 0 replies; 16+ messages in thread
From: Arnd Bergmann @ 2023-07-14  7:52 UTC (permalink / raw)
  To: Andrew Davis, Russell King
  Cc: Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Geert Uytterhoeven, Linus Walleij,
	linux-arm-kernel, linux-kernel

On Thu, Jul 13, 2023, at 20:44, Andrew Davis wrote:
> On 5/15/23 11:31 AM, Russell King (Oracle) wrote:
>> On Mon, May 15, 2023 at 11:02:30AM -0500, Andrew Davis wrote:
>>> Having a platform need a mach-* directory should be seen as a negative,
>>> it means the platform needs special non-standard handling. ARM64 support
>>> does not allow mach-* directories at all. While we may not get to that
>>> given all the non-standard architectures we support, we should still try
>>> to get as close as we can and reduce the number of mach directories.
>>>
>>> The mach-airoha/ directory, and files within, provide just one "feature":
>>> having the kernel print the machine name if the DTB does not also contain
>>> a "model" string (which they always do). To reduce the number of mach-*
>>> directories let's do without that feature and remove this directory.
>> 
>> I'm guessing this is copy-n-pasted description. However:
>>> -static const char * const airoha_board_dt_compat[] = {
>>> -	"airoha,en7523",
>>> -	NULL,
>>> -};
>>> -
>>> -DT_MACHINE_START(MEDIATEK_DT, "Airoha Cortex-A53 (Device Tree)")
>>> -	.dt_compat	= airoha_board_dt_compat,
>>> -MACHINE_END
>> 
>> If this is actually used, then it will have the effect of providing a
>> "machine" that has both l2c_aux_mask and l2c_aux_val as zero, whereas
>> the default one has l2c_aux_mask set to ~0.
>> 
>
> Given we set l2c_aux_mask to ~0 as a default for "Generic" DT system I
> had assumed this was safe, but no I cannot prove it for this board as
> I don't have one.
>
> I wonder if we should have some way to set this in DT, that would
> let us drop some more MACHINE defines that exist only to set
> the l2c_aux_val/mask..

Going from an empty machine description to the default one is
generally safe as long as there is no actual l2x0 cache controller
in the system that would incorrectly get enabled by this in case
it is intentionally left disabled. I'm not aware of any such case,
but it's possible.

For the Airoha chip, we know this is safe because ARMv8 and later
ARMv7 cores (A7, A15 and A17) never have this type of cache
controller.

So your patch is fine, just mention in the description that
the change in the cache controller handling is correct.

      Arnd

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 08/10] ARM: mach-hpe: Rework support and directory structure
  2023-05-15 16:02 ` [PATCH 08/10] ARM: mach-hpe: " Andrew Davis
@ 2023-12-22 14:21   ` Arnd Bergmann
  0 siblings, 0 replies; 16+ messages in thread
From: Arnd Bergmann @ 2023-12-22 14:21 UTC (permalink / raw)
  To: Andrew Davis, Russell King, Baruch Siach, Vladimir Zapolskiy,
	Kunihiko Hayashi, Masami Hiramatsu, Geert Uytterhoeven,
	Linus Walleij
  Cc: linux-arm-kernel, linux-kernel

On Mon, May 15, 2023, at 16:02, Andrew Davis wrote:
> Having a platform need a mach-* directory should be seen as a negative,
> it means the platform needs special non-standard handling. ARM64 support
> does not allow mach-* directories at all. While we may not get to that
> given all the non-standard architectures we support, we should still try
> to get as close as we can and reduce the number of mach directories.
>
> The mach-hpe/ directory and files, provides just one "feature":
> having the kernel print the machine name if the DTB does not also contain
> a "model" string (which they always do). To reduce the number of mach-*
> directories let's do without that feature and remove this directory.
>
> Signed-off-by: Andrew Davis <afd@ti.com>
> ---
>  MAINTAINERS                |  1 -
>  arch/arm/Kconfig           |  2 --
>  arch/arm/Kconfig.platforms | 25 +++++++++++++++++++++++++
>  arch/arm/Makefile          |  1 -
>  arch/arm/mach-hpe/Kconfig  | 23 -----------------------
>  arch/arm/mach-hpe/Makefile |  1 -
>  arch/arm/mach-hpe/gxp.c    | 16 ----------------

I'm dropping this patch from the series:

> -/* Copyright (C) 2022 Hewlett-Packard Enterprise Development Company, L.P. */
> -
> -#include <linux/of_platform.h>
> -#include <asm/mach/arch.h>
> -
> -static const char * const gxp_board_dt_compat[] = {
> -	"hpe,gxp",
> -	NULL,
> -};
> -
> -DT_MACHINE_START(GXP_DT, "HPE GXP")
> -	.dt_compat	= gxp_board_dt_compat,
> -	.l2c_aux_val = 0,
> -	.l2c_aux_mask = ~0,
> -MACHINE_END

As Russell had previously pointed out, removing the l2c settings
from a machine file breaks these machines if there is an actual
l2c node, which for gxp there is, same for most other Cortex-A9
and A5 based platforms.

The Uniphier machine that you also modify here is an exception
because they use a custom L2 cache implementation.

      Arnd

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 09/10] ARM: mach-lpc18xx: Rework support and directory structure
  2023-03-06 16:34 Andrew Davis
@ 2023-03-06 16:34 ` Andrew Davis
  0 siblings, 0 replies; 16+ messages in thread
From: Andrew Davis @ 2023-03-06 16:34 UTC (permalink / raw)
  To: Russell King, Baruch Siach, Vladimir Zapolskiy, Kunihiko Hayashi,
	Masami Hiramatsu, Arnd Bergmann, Nick Hawkins, Oleksij Rempel,
	Andreas Färber, Masahiro Yamada, Allison Randal,
	Thomas Gleixner, Qin Jian
  Cc: linux-kernel, linux-arm-kernel, Andrew Davis

Having a platform need a mach-* directory should be seen as a negative,
it means the platform needs special non-standard handling. ARM64 support
does not allow mach-* directories at all. While we may not get to that
given all the non-standard architectures we support, we should still try
to get as close as we can and reduce the number of mach directories.

The mach-lpc18xx/ directory and files, provides just one "feature":
having the kernel print the machine name if the DTB does not also contain
a "model" string (which they always do). To reduce the number of mach-*
directories let's do without that feature and remove this directory.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/Makefile                |  1 -
 arch/arm/mach-lpc18xx/Makefile   |  2 --
 arch/arm/mach-lpc18xx/board-dt.c | 19 -------------------
 3 files changed, 22 deletions(-)
 delete mode 100644 arch/arm/mach-lpc18xx/Makefile
 delete mode 100644 arch/arm/mach-lpc18xx/board-dt.c

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index ec5adf695a0c..94ebd137f0ec 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -185,7 +185,6 @@ machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_HISI)		+= hisi
 machine-$(CONFIG_ARCH_IXP4XX)		+= ixp4xx
 machine-$(CONFIG_ARCH_KEYSTONE)		+= keystone
-machine-$(CONFIG_ARCH_LPC18XX)		+= lpc18xx
 machine-$(CONFIG_ARCH_LPC32XX)		+= lpc32xx
 machine-$(CONFIG_ARCH_MESON)		+= meson
 machine-$(CONFIG_ARCH_MMP)		+= mmp
diff --git a/arch/arm/mach-lpc18xx/Makefile b/arch/arm/mach-lpc18xx/Makefile
deleted file mode 100644
index c80d80c199d3..000000000000
--- a/arch/arm/mach-lpc18xx/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y += board-dt.o
diff --git a/arch/arm/mach-lpc18xx/board-dt.c b/arch/arm/mach-lpc18xx/board-dt.c
deleted file mode 100644
index 4729eb83401a..000000000000
--- a/arch/arm/mach-lpc18xx/board-dt.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Device Tree board file for NXP LPC18xx/43xx
- *
- * Copyright (C) 2015 Joachim Eastwood <manabian@gmail.com>
- */
-
-#include <asm/mach/arch.h>
-
-static const char *const lpc18xx_43xx_compat[] __initconst = {
-	"nxp,lpc1850",
-	"nxp,lpc4350",
-	"nxp,lpc4370",
-	NULL
-};
-
-DT_MACHINE_START(LPC18XXDT, "NXP LPC18xx/43xx (Device Tree)")
-	.dt_compat = lpc18xx_43xx_compat,
-MACHINE_END
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2023-12-22 14:22 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-15 16:02 [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
2023-05-15 16:02 ` [PATCH 02/10] ARM: mach-asm9260: Move ASM9260 support into Kconfig.platforms Andrew Davis
2023-05-15 16:02 ` [PATCH 03/10] ARM: mach-rda: Move RDA Micro " Andrew Davis
2023-05-15 16:02 ` [PATCH 04/10] ARM: mach-uniphier: Move Socionext UniPhier " Andrew Davis
2023-05-15 16:02 ` [PATCH 05/10] ARM: mach-moxart: Move MOXA ART " Andrew Davis
2023-05-15 16:02 ` [PATCH 06/10] ARM: mach-airoha: Rework support and directory structure Andrew Davis
2023-05-15 16:31   ` Russell King (Oracle)
2023-07-13 18:44     ` Andrew Davis
2023-07-14  7:52       ` Arnd Bergmann
2023-05-15 16:02 ` [PATCH 07/10] ARM: mach-digicolor: " Andrew Davis
2023-05-15 16:02 ` [PATCH 08/10] ARM: mach-hpe: " Andrew Davis
2023-12-22 14:21   ` Arnd Bergmann
2023-05-15 16:02 ` [PATCH 09/10] ARM: mach-lpc18xx: " Andrew Davis
2023-05-15 16:02 ` [PATCH 10/10] ARM: mach-sunplus: " Andrew Davis
2023-05-15 16:31 ` [PATCH 01/10] ARM: Kconfig: move platform selection into its own Kconfig file Andrew Davis
  -- strict thread matches above, loose matches on Subject: below --
2023-03-06 16:34 Andrew Davis
2023-03-06 16:34 ` [PATCH 09/10] ARM: mach-lpc18xx: Rework support and directory structure Andrew Davis

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).