On Thu, Mar 11, 2021 at 04:25:38PM +0100, Krzysztof Kozlowski wrote: > Agilex, N5X and Stratix 10 share all quite similar arm64 hard cores and > SoC-part. Up to a point that N5X uses the same DTSI as Agilex. From > the Linux kernel point of view these are flavors of the same > architecture so there is no need for three top-level arm64 > architectures. Simplify this by merging all three architectures into > ARCH_INTEL_SOCFPGA and dropping the other ARCH* arm64 Kconfig entries. > > The side effect is that the INTEL_STRATIX10_SERVICE will now be > available for both 32-bit and 64-bit Intel SoCFPGA, even though it is > used only for 64-bit. Did you try to compile, say, arm:allmodconfig with this patch applied ? Because for me that results in: In file included from <command-line>: drivers/firmware/stratix10-rsu.c: In function 'rsu_status_callback': include/linux/compiler_types.h:320:38: error: call to '__compiletime_assert_177' declared with attribute error: FIELD_GET: type of reg too small for mask and lots of similar errors. Guenter > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> > --- > arch/arm64/Kconfig.platforms | 21 ++++----------------- > arch/arm64/boot/dts/intel/Makefile | 6 +++--- > arch/arm64/configs/defconfig | 3 +-- > drivers/clk/Makefile | 2 -- > drivers/clk/socfpga/Kconfig | 4 ++-- > drivers/firmware/Kconfig | 2 +- > drivers/fpga/Kconfig | 2 +- > drivers/reset/Kconfig | 2 +- > 8 files changed, 13 insertions(+), 29 deletions(-) > > diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms > index ecab67a1afb8..ce50dd129eec 100644 > --- a/arch/arm64/Kconfig.platforms > +++ b/arch/arm64/Kconfig.platforms > @@ -8,16 +8,6 @@ config ARCH_ACTIONS > help > This enables support for the Actions Semiconductor S900 SoC family. > > -config ARCH_AGILEX > - bool "Intel's Agilex SoCFPGA Family" > - help > - This enables support for Intel's Agilex SoCFPGA Family. > - > -config ARCH_N5X > - bool "Intel's eASIC N5X SoCFPGA Family" > - help > - This enables support for Intel's eASIC N5X SoCFPGA Family. > - > config ARCH_SUNXI > bool "Allwinner sunxi 64-bit SoC Family" > select ARCH_HAS_RESET_CONTROLLER > @@ -254,14 +244,11 @@ config ARCH_SEATTLE > help > This enables support for AMD Seattle SOC Family > > -config ARCH_STRATIX10 > - bool "Altera's Stratix 10 SoCFPGA Family" > - select ARCH_INTEL_SOCFPGA > - help > - This enables support for Altera's Stratix 10 SoCFPGA Family. > - > config ARCH_INTEL_SOCFPGA > - bool > + bool "Intel's SoCFPGA ARMv8 Families" > + help > + This enables support for Intel's SoCFPGA ARMv8 families: > + Stratix 10 (ex. Altera), Agilex and eASIC N5X. > > config ARCH_SYNQUACER > bool "Socionext SynQuacer SoC Family" > diff --git a/arch/arm64/boot/dts/intel/Makefile b/arch/arm64/boot/dts/intel/Makefile > index 3a052540605b..0b5477442263 100644 > --- a/arch/arm64/boot/dts/intel/Makefile > +++ b/arch/arm64/boot/dts/intel/Makefile > @@ -1,5 +1,5 @@ > # SPDX-License-Identifier: GPL-2.0-only > -dtb-$(CONFIG_ARCH_AGILEX) += socfpga_agilex_socdk.dtb \ > - socfpga_agilex_socdk_nand.dtb > +dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += socfpga_agilex_socdk.dtb \ > + socfpga_agilex_socdk_nand.dtb \ > + socfpga_n5x_socdk.dtb > dtb-$(CONFIG_ARCH_KEEMBAY) += keembay-evm.dtb > -dtb-$(CONFIG_ARCH_N5X) += socfpga_n5x_socdk.dtb > diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig > index d612f633b771..cf8a3009b858 100644 > --- a/arch/arm64/configs/defconfig > +++ b/arch/arm64/configs/defconfig > @@ -28,7 +28,6 @@ CONFIG_KALLSYMS_ALL=y > # CONFIG_COMPAT_BRK is not set > CONFIG_PROFILING=y > CONFIG_ARCH_ACTIONS=y > -CONFIG_ARCH_AGILEX=y > CONFIG_ARCH_SUNXI=y > CONFIG_ARCH_ALPINE=y > CONFIG_ARCH_BCM2835=y > @@ -50,7 +49,7 @@ CONFIG_ARCH_RENESAS=y > CONFIG_ARCH_ROCKCHIP=y > CONFIG_ARCH_S32=y > CONFIG_ARCH_SEATTLE=y > -CONFIG_ARCH_STRATIX10=y > +CONFIG_ARCH_INTEL_SOCFPGA=y > CONFIG_ARCH_SYNQUACER=y > CONFIG_ARCH_TEGRA=y > CONFIG_ARCH_SPRD=y > diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile > index 1e29e5ad107a..96802294d35a 100644 > --- a/drivers/clk/Makefile > +++ b/drivers/clk/Makefile > @@ -105,8 +105,6 @@ obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ > obj-$(CONFIG_COMMON_CLK_SAMSUNG) += samsung/ > obj-$(CONFIG_CLK_SIFIVE) += sifive/ > obj-$(CONFIG_ARCH_INTEL_SOCFPGA) += socfpga/ > -obj-$(CONFIG_ARCH_AGILEX) += socfpga/ > -obj-$(CONFIG_ARCH_N5X) += socfpga/ > obj-$(CONFIG_PLAT_SPEAR) += spear/ > obj-y += sprd/ > obj-$(CONFIG_ARCH_STI) += st/ > diff --git a/drivers/clk/socfpga/Kconfig b/drivers/clk/socfpga/Kconfig > index bc102e0f0be0..b6c5b9737174 100644 > --- a/drivers/clk/socfpga/Kconfig > +++ b/drivers/clk/socfpga/Kconfig > @@ -2,5 +2,5 @@ > config CLK_INTEL_SOCFPGA64 > bool > # Intel Stratix / Agilex / N5X clock controller support > - default (ARCH_AGILEX || ARCH_N5X || ARCH_STRATIX10) > - depends on ARCH_AGILEX || ARCH_N5X || ARCH_STRATIX10 > + default ARM64 && ARCH_INTEL_SOCFPGA > + depends on ARM64 && ARCH_INTEL_SOCFPGA > diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig > index 3f14dffb9669..6a4e882e448d 100644 > --- a/drivers/firmware/Kconfig > +++ b/drivers/firmware/Kconfig > @@ -206,7 +206,7 @@ config FW_CFG_SYSFS_CMDLINE > > config INTEL_STRATIX10_SERVICE > tristate "Intel Stratix10 Service Layer" > - depends on (ARCH_STRATIX10 || ARCH_AGILEX) && HAVE_ARM_SMCCC > + depends on ARCH_INTEL_SOCFPGA && HAVE_ARM_SMCCC > default n > help > Intel Stratix10 service layer runs at privileged exception level, > diff --git a/drivers/fpga/Kconfig b/drivers/fpga/Kconfig > index 5ff9438b7b46..fd325e9c5ce6 100644 > --- a/drivers/fpga/Kconfig > +++ b/drivers/fpga/Kconfig > @@ -60,7 +60,7 @@ config FPGA_MGR_ZYNQ_FPGA > > config FPGA_MGR_STRATIX10_SOC > tristate "Intel Stratix10 SoC FPGA Manager" > - depends on (ARCH_STRATIX10 && INTEL_STRATIX10_SERVICE) > + depends on (ARCH_INTEL_SOCFPGA && INTEL_STRATIX10_SERVICE) > help > FPGA manager driver support for the Intel Stratix10 SoC. > > diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig > index 4171c6f76385..b1e8efa16166 100644 > --- a/drivers/reset/Kconfig > +++ b/drivers/reset/Kconfig > @@ -183,7 +183,7 @@ config RESET_SCMI > > config RESET_SIMPLE > bool "Simple Reset Controller Driver" if COMPILE_TEST > - default ARCH_AGILEX || ARCH_ASPEED || ARCH_BCM4908 || ARCH_BITMAIN || ARCH_REALTEK || ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || ARC > + default ARCH_ASPEED || ARCH_BCM4908 || ARCH_BITMAIN || ARCH_REALTEK || ARCH_STM32 || (ARCH_INTEL_SOCFPGA && ARM64) || ARCH_SUNXI || ARC > help > This enables a simple reset controller driver for reset lines that > that can be asserted and deasserted by toggling bits in a contiguous, > -- > 2.25.1 >