Re: [PATCH v3 08/15] arm64: socfpga: merge Agilex and N5X into ARCH_INTEL_SOCFPGA

From: Guenter Roeck
Date: Tue Apr 06 2021 - 12:10:08 EST


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
>