From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:08
Hi,
All three Intel arm64 SoCFPGA architectures (Agilex, N5X and Stratix 10)
are basically flavors/platforms of the same architecture. At least from
the Linux point of view. Up to a point that N5X and Agilex share DTSI.
Having three top-level architectures for the same one barely makes
sense and complicates driver selection.
Additionally it was pointed out that ARCH_SOCFPGA name is too generic.
There are other vendors making SoC+FPGA designs, so the name should be
changed to have real vendor (currently: Intel).
Dependencies / merging
======================
1. Patch 1 is used as base, so other changes depend on its hunks.
I put it at beginning as it is something close to a fix, so candidate
for stable (even though I did not mark it like that).
2. Patch 2: everything depends on it.
3. 64-bit path:
3a. Patches 3-7: depend on patch 2, from 64-bit point of view.
3b. Patch 8: depends on 2-7 as it finally removes 64-bit ARCH_XXX
symbols.
4. 32-bit path:
4a. Patches 9-14: depend on 2, from 32-bit point of view.
4b. Patch 15: depends on 9-14 as it finally removes 32-bit ARCH_SOCFPGA
symbol.
If the patches look good, proposed merging is via SoC tree (after
getting acks from everyone). Sharing immutable branches is also a way.
Changes since v2
================
1. Several new patches and changes.
2. Rename ARCH_SOCFPGA to ARCH_INTEL_SOCFPGA on 32-bit and 64-bit.
3. Enable compile testing of 32-bit socfpga clock drivers.
4. Split changes per subsystems for easier review.
5. I already received an ack from Lee Jones, but I did not add it as
there was big refactoring. Please kindly ack one more time if it
looks good.
Changes since v1
================
1. New patch 3: arm64: socfpga: rename ARCH_STRATIX10 to ARCH_SOCFPGA64.
2. New patch 4: arm64: intel: merge Agilex and N5X into ARCH_SOCFPGA64.
3. Fix build is.sue reported by kernel test robot (with ARCH_STRATIX10
and COMPILE_TEST but without selecting some of the clocks).
RFT
===
I tested compile builds on few configurations, so I hope kbuild 0-day
will check more options (please give it few days on the lists).
I compare the generated autoconf.h and found no issues. Testing on real
hardware would be appreciated.
Best regards,
Krzysztof
Krzysztof Kozlowski (15):
clk: socfpga: allow building N5X clocks with ARCH_N5X
ARM: socfpga: introduce common ARCH_INTEL_SOCFPGA
mfd: altera: merge ARCH_SOCFPGA and ARCH_STRATIX10
net: stmmac: merge ARCH_SOCFPGA and ARCH_STRATIX10
clk: socfpga: build together Stratix 10, Agilex and N5X clock drivers
clk: socfpga: merge ARCH_SOCFPGA and ARCH_STRATIX10
EDAC: altera: merge ARCH_SOCFPGA and ARCH_STRATIX10
arm64: socfpga: merge Agilex and N5X into ARCH_INTEL_SOCFPGA
clk: socfpga: allow compile testing of Stratix 10 / Agilex clocks
clk: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs (and
compile test)
dmaengine: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
fpga: altera: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
i2c: altera: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
reset: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
ARM: socfpga: drop ARCH_SOCFPGA
arch/arm/Kconfig | 2 +-
arch/arm/Kconfig.debug | 6 +++---
arch/arm/Makefile | 2 +-
arch/arm/boot/dts/Makefile | 2 +-
arch/arm/configs/multi_v7_defconfig | 2 +-
arch/arm/configs/socfpga_defconfig | 2 +-
arch/arm/mach-socfpga/Kconfig | 4 ++--
arch/arm64/Kconfig.platforms | 17 ++++-------------
arch/arm64/boot/dts/altera/Makefile | 2 +-
arch/arm64/boot/dts/intel/Makefile | 6 +++---
arch/arm64/configs/defconfig | 3 +--
drivers/clk/Kconfig | 1 +
drivers/clk/Makefile | 4 +---
drivers/clk/socfpga/Kconfig | 19 +++++++++++++++++++
drivers/clk/socfpga/Makefile | 11 +++++------
drivers/dma/Kconfig | 2 +-
drivers/edac/Kconfig | 2 +-
drivers/edac/altera_edac.c | 17 +++++++++++------
drivers/firmware/Kconfig | 2 +-
drivers/fpga/Kconfig | 8 ++++----
drivers/i2c/busses/Kconfig | 2 +-
drivers/mfd/Kconfig | 4 ++--
drivers/net/ethernet/stmicro/stmmac/Kconfig | 4 ++--
drivers/reset/Kconfig | 6 +++---
24 files changed, 71 insertions(+), 59 deletions(-)
create mode 100644 drivers/clk/socfpga/Kconfig
--
2.25.1
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:06
Simplify 32-bit and 64-bit Intel SoCFPGA Kconfig options by having only
one for both of them. This the common practice for other platforms.
Additionally, the ARCH_SOCFPGA is too generic as SoCFPGA designs come
from multiple vendors.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/net/ethernet/stmicro/stmmac/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:07
On a multiplatform kernel there is little benefit in splitting each
clock driver per platform because space savings are minimal. Such split
also complicates the code, especially after adding compile testing.
Build all arm64 Intel SoCFPGA clocks together with one entry in
Makefile. This also removed duplicated line in the Makefile (selecting
common part of clocks per platform).
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/clk/socfpga/Kconfig | 6 +++---
drivers/clk/socfpga/Makefile | 7 +++----
2 files changed, 6 insertions(+), 7 deletions(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:08
Simplify 32-bit and 64-bit Intel SoCFPGA Kconfig options by having only
one for both of them. This the common practice for other platforms.
Additionally, the ARCH_SOCFPGA is too generic as SoCFPGA designs come
from multiple vendors.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/clk/Makefile | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:08
Simplify 32-bit and 64-bit Intel SoCFPGA Kconfig options by having only
one for both of them. This the common practice for other platforms.
Additionally, the ARCH_SOCFPGA is too generic as SoCFPGA designs come
from multiple vendors.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/edac/Kconfig | 2 +-
drivers/edac/altera_edac.c | 17 +++++++++++------
2 files changed, 12 insertions(+), 7 deletions(-)
@@ -1501,8 +1501,13 @@ static int altr_portb_setup(struct altr_edac_device_dev *device)dci->mod_name=ecc_name;dci->dev_name=ecc_name;-/* Update the PortB IRQs - A10 has 4, S10 has 2, Index accordingly */-#ifdef CONFIG_ARCH_STRATIX10+/*+*UpdatethePortBIRQs-A10has4,S10has2,Indexaccordingly+*+*FIXME:Insteadofifdefswithdifferentarchitecturesthedriver+*shouldproperlyusecompatibles.+*/+#ifdef CONFIG_64BITaltdev->sb_irq=irq_of_parse_and_map(np,1);#elsealtdev->sb_irq=irq_of_parse_and_map(np,2);
@@ -1521,7 +1526,7 @@ static int altr_portb_setup(struct altr_edac_device_dev *device)gotoerr_release_group_1;}-#ifdef CONFIG_ARCH_STRATIX10+#ifdef CONFIG_64BIT/* Use IRQ to determine SError origin instead of assigning IRQ */rc=of_property_read_u32_index(np,"interrupts",1,&altdev->db_irq);if(rc){
@@ -1931,7 +1936,7 @@ static int altr_edac_a10_device_add(struct altr_arria10_edac *edac,gotoerr_release_group1;}-#ifdef CONFIG_ARCH_STRATIX10+#ifdef CONFIG_64BIT/* Use IRQ to determine SError origin instead of assigning IRQ */rc=of_property_read_u32_index(np,"interrupts",0,&altdev->db_irq);if(rc){
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:08
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.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
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(-)
@@ -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
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:09
The Intel's eASIC N5X (ARCH_N5X) architecture shares a lot with Agilex
(ARCH_AGILEX) so it uses the same socfpga_agilex.dtsi, with minor
changes. Also the clock drivers are the same.
However the clock drivers won't be build without ARCH_AGILEX. One could
assume that ARCH_N5X simply depends on ARCH_AGILEX but this was not
modeled in Kconfig. In current stage the ARCH_N5X is simply
unbootable.
Add a separate Kconfig entry for clocks used by both ARCH_N5X and
ARCH_AGILEX so the necessary objects will be built if either of them is
selected.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/clk/Kconfig | 1 +
drivers/clk/Makefile | 1 +
drivers/clk/socfpga/Kconfig | 6 ++++++
drivers/clk/socfpga/Makefile | 4 ++--
4 files changed, 10 insertions(+), 2 deletions(-)
create mode 100644 drivers/clk/socfpga/Kconfig
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:09
Simplify 32-bit and 64-bit Intel SoCFPGA Kconfig options by having only
one for both of them. This the common practice for other platforms.
Additionally, the ARCH_SOCFPGA is too generic as SoCFPGA designs come
from multiple vendors.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
arch/arm/Kconfig | 2 +-
arch/arm/Kconfig.debug | 6 +++---
arch/arm/Makefile | 2 +-
arch/arm/boot/dts/Makefile | 2 +-
arch/arm/mach-socfpga/Kconfig | 4 ++++
arch/arm64/Kconfig.platforms | 4 ++++
arch/arm64/boot/dts/altera/Makefile | 2 +-
7 files changed, 15 insertions(+), 7 deletions(-)
@@ -20,6 +21,9 @@ menuconfig ARCH_SOCFPGAselectPL310_ERRATA_769419ifARCH_SOCFPGA+configARCH_INTEL_SOCFPGA+bool+configSOCFPGA_SUSPENDbool"Suspend to RAM on SOCFPGA"help
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:27:09
Simplify 32-bit and 64-bit Intel SoCFPGA Kconfig options by having only
one for both of them. This the common practice for other platforms.
Additionally, the ARCH_SOCFPGA is too generic as SoCFPGA designs come
from multiple vendors.
The side effect is that the MFD_ALTERA_A10SR will now be available for
both 32-bit and 64-bit Intel SoCFPGA, even though it is used only for
32-bit.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/mfd/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:28:03
The Stratix 10 / Agilex / N5X clocks do not use anything other than OF
or COMMON_CLK so they should be compile testable on most of the
platforms.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/clk/Makefile | 2 +-
drivers/clk/socfpga/Kconfig | 15 ++++++++++++---
2 files changed, 13 insertions(+), 4 deletions(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:28:37
ARCH_SOCFPGA is being renamed to ARCH_INTEL_SOCFPGA so adjust the
32-bit ARM drivers to rely on new symbol.
There is little point to share clock controller drivers between 32-bit
and 64-bit platforms because there will not be a generic image for both
of them. Therefore add a new Kconfig entry for building 32-bit clock
driverss, similar to one for 64-bit. This allows enabling compile
testing.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/clk/socfpga/Kconfig | 6 +++++-
drivers/clk/socfpga/Makefile | 4 ++--
2 files changed, 7 insertions(+), 3 deletions(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:28:40
ARCH_SOCFPGA is being renamed to ARCH_INTEL_SOCFPGA so adjust the
32-bit ARM drivers to rely on new symbol.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/fpga/Kconfig | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:28:41
ARCH_SOCFPGA is being renamed to ARCH_INTEL_SOCFPGA so adjust the
32-bit ARM drivers to rely on new symbol.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/reset/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:28:42
Simplify 32-bit and 64-bit Intel SoCFPGA Kconfig options by having only
one for both of them. After conversion of all
drivers to use the new ARCH_INTEL_SOCFPGA, the remaining ARM option can
be removed.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
arch/arm/configs/multi_v7_defconfig | 2 +-
arch/arm/configs/socfpga_defconfig | 2 +-
arch/arm/mach-socfpga/Kconfig | 8 ++------
3 files changed, 4 insertions(+), 8 deletions(-)
@@ -20,10 +19,7 @@ menuconfig ARCH_SOCFPGAselectPL310_ERRATA_753970ifPL310selectPL310_ERRATA_769419-ifARCH_SOCFPGA-configARCH_INTEL_SOCFPGA-bool-+ifARCH_INTEL_SOCFPGAconfigSOCFPGA_SUSPENDbool"Suspend to RAM on SOCFPGA"help
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:28:42
ARCH_SOCFPGA is being renamed to ARCH_INTEL_SOCFPGA so adjust the
32-bit ARM drivers to rely on new symbol.
The side effect is that the I2C_ALTERA will now be available for both
32-bit and 64-bit Intel SoCFPGA, even though it is used only for 32-bit.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/i2c/busses/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 15:28:43
ARCH_SOCFPGA is being renamed to ARCH_INTEL_SOCFPGA so adjust the
32-bit ARM drivers to rely on new symbol.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/dma/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Tom Rix <trix@redhat.com> Date: 2021-03-11 18:27:22
On 3/11/21 7:25 AM, Krzysztof Kozlowski wrote:
Hi,
All three Intel arm64 SoCFPGA architectures (Agilex, N5X and Stratix 10)
are basically flavors/platforms of the same architecture. At least from
the Linux point of view. Up to a point that N5X and Agilex share DTSI.
Having three top-level architectures for the same one barely makes
sense and complicates driver selection.
Additionally it was pointed out that ARCH_SOCFPGA name is too generic.
There are other vendors making SoC+FPGA designs, so the name should be
changed to have real vendor (currently: Intel).
Dependencies / merging
======================
1. Patch 1 is used as base, so other changes depend on its hunks.
I put it at beginning as it is something close to a fix, so candidate
for stable (even though I did not mark it like that).
2. Patch 2: everything depends on it.
3. 64-bit path:
3a. Patches 3-7: depend on patch 2, from 64-bit point of view.
3b. Patch 8: depends on 2-7 as it finally removes 64-bit ARCH_XXX
symbols.
4. 32-bit path:
4a. Patches 9-14: depend on 2, from 32-bit point of view.
4b. Patch 15: depends on 9-14 as it finally removes 32-bit ARCH_SOCFPGA
symbol.
If the patches look good, proposed merging is via SoC tree (after
getting acks from everyone). Sharing immutable branches is also a way.
Changes since v2
================
1. Several new patches and changes.
2. Rename ARCH_SOCFPGA to ARCH_INTEL_SOCFPGA on 32-bit and 64-bit.
3. Enable compile testing of 32-bit socfpga clock drivers.
4. Split changes per subsystems for easier review.
5. I already received an ack from Lee Jones, but I did not add it as
there was big refactoring. Please kindly ack one more time if it
looks good.
Changes since v1
================
1. New patch 3: arm64: socfpga: rename ARCH_STRATIX10 to ARCH_SOCFPGA64.
2. New patch 4: arm64: intel: merge Agilex and N5X into ARCH_SOCFPGA64.
3. Fix build is.sue reported by kernel test robot (with ARCH_STRATIX10
and COMPILE_TEST but without selecting some of the clocks).
RFT
===
I tested compile builds on few configurations, so I hope kbuild 0-day
will check more options (please give it few days on the lists).
I compare the generated autoconf.h and found no issues. Testing on real
hardware would be appreciated.
Best regards,
Krzysztof
Krzysztof Kozlowski (15):
clk: socfpga: allow building N5X clocks with ARCH_N5X
ARM: socfpga: introduce common ARCH_INTEL_SOCFPGA
mfd: altera: merge ARCH_SOCFPGA and ARCH_STRATIX10
net: stmmac: merge ARCH_SOCFPGA and ARCH_STRATIX10
clk: socfpga: build together Stratix 10, Agilex and N5X clock drivers
clk: socfpga: merge ARCH_SOCFPGA and ARCH_STRATIX10
EDAC: altera: merge ARCH_SOCFPGA and ARCH_STRATIX10
arm64: socfpga: merge Agilex and N5X into ARCH_INTEL_SOCFPGA
clk: socfpga: allow compile testing of Stratix 10 / Agilex clocks
clk: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs (and
compile test)
dmaengine: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
fpga: altera: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
i2c: altera: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
reset: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
ARM: socfpga: drop ARCH_SOCFPGA
arch/arm/Kconfig | 2 +-
arch/arm/Kconfig.debug | 6 +++---
arch/arm/Makefile | 2 +-
arch/arm/boot/dts/Makefile | 2 +-
arch/arm/configs/multi_v7_defconfig | 2 +-
arch/arm/configs/socfpga_defconfig | 2 +-
arch/arm/mach-socfpga/Kconfig | 4 ++--
arch/arm64/Kconfig.platforms | 17 ++++-------------
arch/arm64/boot/dts/altera/Makefile | 2 +-
arch/arm64/boot/dts/intel/Makefile | 6 +++---
arch/arm64/configs/defconfig | 3 +--
drivers/clk/Kconfig | 1 +
drivers/clk/Makefile | 4 +---
drivers/clk/socfpga/Kconfig | 19 +++++++++++++++++++
drivers/clk/socfpga/Makefile | 11 +++++------
drivers/dma/Kconfig | 2 +-
drivers/edac/Kconfig | 2 +-
drivers/edac/altera_edac.c | 17 +++++++++++------
drivers/firmware/Kconfig | 2 +-
drivers/fpga/Kconfig | 8 ++++----
drivers/i2c/busses/Kconfig | 2 +-
drivers/mfd/Kconfig | 4 ++--
drivers/net/ethernet/stmicro/stmmac/Kconfig | 4 ++--
drivers/reset/Kconfig | 6 +++---
24 files changed, 71 insertions(+), 59 deletions(-)
create mode 100644 drivers/clk/socfpga/Kconfig
Thanks for changing the config name.
Please review checkpatch --strict on this set, the typical complaint is
clk: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs (and compile test)
WARNING: please write a paragraph that describes the config symbol fully
#35: FILE: drivers/clk/socfpg/Kconfig:11:
+config CLK_INTEL_SOCFPGA32
Tom
From: Krzysztof Kozlowski <hidden> Date: 2021-03-11 18:48:18
On 11/03/2021 19:26, Tom Rix wrote:
On 3/11/21 7:25 AM, Krzysztof Kozlowski wrote:
quoted
Hi,
All three Intel arm64 SoCFPGA architectures (Agilex, N5X and Stratix 10)
are basically flavors/platforms of the same architecture. At least from
the Linux point of view. Up to a point that N5X and Agilex share DTSI.
Having three top-level architectures for the same one barely makes
sense and complicates driver selection.
Additionally it was pointed out that ARCH_SOCFPGA name is too generic.
There are other vendors making SoC+FPGA designs, so the name should be
changed to have real vendor (currently: Intel).
Dependencies / merging
======================
1. Patch 1 is used as base, so other changes depend on its hunks.
I put it at beginning as it is something close to a fix, so candidate
for stable (even though I did not mark it like that).
2. Patch 2: everything depends on it.
3. 64-bit path:
3a. Patches 3-7: depend on patch 2, from 64-bit point of view.
3b. Patch 8: depends on 2-7 as it finally removes 64-bit ARCH_XXX
symbols.
4. 32-bit path:
4a. Patches 9-14: depend on 2, from 32-bit point of view.
4b. Patch 15: depends on 9-14 as it finally removes 32-bit ARCH_SOCFPGA
symbol.
If the patches look good, proposed merging is via SoC tree (after
getting acks from everyone). Sharing immutable branches is also a way.
Changes since v2
================
1. Several new patches and changes.
2. Rename ARCH_SOCFPGA to ARCH_INTEL_SOCFPGA on 32-bit and 64-bit.
3. Enable compile testing of 32-bit socfpga clock drivers.
4. Split changes per subsystems for easier review.
5. I already received an ack from Lee Jones, but I did not add it as
there was big refactoring. Please kindly ack one more time if it
looks good.
Changes since v1
================
1. New patch 3: arm64: socfpga: rename ARCH_STRATIX10 to ARCH_SOCFPGA64.
2. New patch 4: arm64: intel: merge Agilex and N5X into ARCH_SOCFPGA64.
3. Fix build is.sue reported by kernel test robot (with ARCH_STRATIX10
and COMPILE_TEST but without selecting some of the clocks).
RFT
===
I tested compile builds on few configurations, so I hope kbuild 0-day
will check more options (please give it few days on the lists).
I compare the generated autoconf.h and found no issues. Testing on real
hardware would be appreciated.
Best regards,
Krzysztof
Krzysztof Kozlowski (15):
clk: socfpga: allow building N5X clocks with ARCH_N5X
ARM: socfpga: introduce common ARCH_INTEL_SOCFPGA
mfd: altera: merge ARCH_SOCFPGA and ARCH_STRATIX10
net: stmmac: merge ARCH_SOCFPGA and ARCH_STRATIX10
clk: socfpga: build together Stratix 10, Agilex and N5X clock drivers
clk: socfpga: merge ARCH_SOCFPGA and ARCH_STRATIX10
EDAC: altera: merge ARCH_SOCFPGA and ARCH_STRATIX10
arm64: socfpga: merge Agilex and N5X into ARCH_INTEL_SOCFPGA
clk: socfpga: allow compile testing of Stratix 10 / Agilex clocks
clk: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs (and
compile test)
dmaengine: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
fpga: altera: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
i2c: altera: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
reset: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs
ARM: socfpga: drop ARCH_SOCFPGA
arch/arm/Kconfig | 2 +-
arch/arm/Kconfig.debug | 6 +++---
arch/arm/Makefile | 2 +-
arch/arm/boot/dts/Makefile | 2 +-
arch/arm/configs/multi_v7_defconfig | 2 +-
arch/arm/configs/socfpga_defconfig | 2 +-
arch/arm/mach-socfpga/Kconfig | 4 ++--
arch/arm64/Kconfig.platforms | 17 ++++-------------
arch/arm64/boot/dts/altera/Makefile | 2 +-
arch/arm64/boot/dts/intel/Makefile | 6 +++---
arch/arm64/configs/defconfig | 3 +--
drivers/clk/Kconfig | 1 +
drivers/clk/Makefile | 4 +---
drivers/clk/socfpga/Kconfig | 19 +++++++++++++++++++
drivers/clk/socfpga/Makefile | 11 +++++------
drivers/dma/Kconfig | 2 +-
drivers/edac/Kconfig | 2 +-
drivers/edac/altera_edac.c | 17 +++++++++++------
drivers/firmware/Kconfig | 2 +-
drivers/fpga/Kconfig | 8 ++++----
drivers/i2c/busses/Kconfig | 2 +-
drivers/mfd/Kconfig | 4 ++--
drivers/net/ethernet/stmicro/stmmac/Kconfig | 4 ++--
drivers/reset/Kconfig | 6 +++---
24 files changed, 71 insertions(+), 59 deletions(-)
create mode 100644 drivers/clk/socfpga/Kconfig
Thanks for changing the config name.
Please review checkpatch --strict on this set, the typical complaint is
clk: socfpga: use ARCH_INTEL_SOCFPGA also for 32-bit ARM SoCs (and compile test)
WARNING: please write a paragraph that describes the config symbol fully
#35: FILE: drivers/clk/socfpg/Kconfig:11:
+config CLK_INTEL_SOCFPGA32
This symbol is not visible to the user, not selectable, so documenting
it more than what is already written in option title (the one going
after "bool") makes little sense. We don't do it for such drivers.
Mostly because it would be duplication of the option title or include
useless information (it's like documenting "int i" with "counter used
for loop"). The checkpatch complains if this is less than three lines,
but it is not possible to write here anything meaningful for more than
one line.
Really, it does not make sense. If you think otherwise, please suggest
the text which is not duplicating option title and does not include
common stuff from clocks.
Best regards,
Krzysztof
From: Moritz Fischer <mdf@kernel.org> Date: 2021-03-11 22:49:16
Hi Krzysztof,
On Thu, Mar 11, 2021 at 04:27:35PM +0100, Krzysztof Kozlowski wrote:
ARCH_SOCFPGA is being renamed to ARCH_INTEL_SOCFPGA so adjust the
32-bit ARM drivers to rely on new symbol.
Signed-off-by: Krzysztof Kozlowski <redacted>
From: Lee Jones <hidden> Date: 2021-03-22 15:11:36
On Thu, 11 Mar 2021, Krzysztof Kozlowski wrote:
Simplify 32-bit and 64-bit Intel SoCFPGA Kconfig options by having only
one for both of them. This the common practice for other platforms.
Additionally, the ARCH_SOCFPGA is too generic as SoCFPGA designs come
from multiple vendors.
The side effect is that the MFD_ALTERA_A10SR will now be available for
both 32-bit and 64-bit Intel SoCFPGA, even though it is used only for
32-bit.
Signed-off-by: Krzysztof Kozlowski <redacted>
---
drivers/mfd/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Acked-by: Lee Jones <redacted>
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
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
@@ -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
From: Krzysztof Kozlowski <hidden> Date: 2021-04-06 16:15:39
On Tue, 6 Apr 2021 at 18:10, Guenter Roeck [off-list ref] wrote:
On Thu, Mar 11, 2021 at 04:25:38PM +0100, Krzysztof Kozlowski wrote:
quoted
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.