On 23/6/2026 10:02 am, Chen Huei Lok wrote:
Migrate the legacy n5x platform to use the upstream Linux device tree
configuration. This helps reduce maintenance overhead and aligns U-Boot
with the Linux kernel's DTS hierarchy and naming conventions.

This change improves consistency between U-Boot and Linux by removing
custom/legacy DTS handling and instead relying on the standardized
definitions provided by the upstream Linux DTS.

Signed-off-by: Chen Huei Lok <[email protected]>
---

Changes in v4:
- Remove the now-unused in-tree vendor arch/arm/dts/socfpga_n5x_socdk.dts,
   superseded by dts/upstream/src/arm64/intel/socfpga_n5x_socdk.dts once
   OF_UPSTREAM is enabled (matches the Stratix10 DT-switch patch)

Changes in v3:
- Fix CONFIG_OF_UPSTREAM position in defconfig: correctly placed after
   CONFIG_CMD_FS_GENERIC per canonical savedefconfig ordering (was
   placed at end of file in v2)

  arch/arm/dts/Makefile                      |   3 +-
  arch/arm/dts/socfpga_n5x-u-boot.dtsi       |  17 ++-
  arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi |  13 +--
  arch/arm/dts/socfpga_n5x_socdk.dts         | 122 ---------------------
  configs/socfpga_n5x_defconfig              |   3 +-
  5 files changed, 24 insertions(+), 134 deletions(-)
  delete mode 100644 arch/arm/dts/socfpga_n5x_socdk.dts

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index cbb58180814..c753564f134 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -452,8 +452,7 @@ dtb-$(CONFIG_ARCH_SOCFPGA) +=                               
\
        socfpga_cyclone5_sr1500.dtb                     \
        socfpga_cyclone5_vining_fpga.dtb                \
        socfpga_cyclone5_ac501soc.dtb                   \
-       socfpga_cyclone5_ac550soc.dtb                   \
-       socfpga_n5x_socdk.dtb
+       socfpga_cyclone5_ac550soc.dtb
dtb-$(CONFIG_TARGET_DRA7XX_EVM) += dra72-evm.dtb dra7-evm.dtb \
        dra72-evm-revc.dtb dra71-evm.dtb dra76-evm.dtb
diff --git a/arch/arm/dts/socfpga_n5x-u-boot.dtsi 
b/arch/arm/dts/socfpga_n5x-u-boot.dtsi
index dbfd2abfd59..16b92ef48f4 100644
--- a/arch/arm/dts/socfpga_n5x-u-boot.dtsi
+++ b/arch/arm/dts/socfpga_n5x-u-boot.dtsi
@@ -10,7 +10,13 @@
  #include <dt-bindings/clock/n5x-clock.h>
/{
-       memory {
+       aliases {
+               spi0 = &qspi;
+               i2c0 = &i2c1;
+       };
+
+       memory@0 {
+               device_type = "memory";
                #address-cells = <2>;
                #size-cells = <2>;
                bootph-all;
@@ -121,6 +127,14 @@
&qspi {
        bootph-all;
+       compatible = "cdns,qspi-nor";
+       flash0: flash@0 {
+       };
+};
+
+&flash0 {
+       #address-cells = <1>;
+       #size-cells = <1>;
  };
&rst {
@@ -200,7 +214,6 @@
&usb0 {
        clocks = <&clkmgr N5X_USB_CLK>;
-       disable-over-current;
        bootph-all;
  };
diff --git a/arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi b/arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi
index 1f7e31bcae3..1bed87c1231 100644
--- a/arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi
+++ b/arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi
@@ -8,12 +8,11 @@
  #include "socfpga_n5x-u-boot.dtsi"
/{
-       aliases {
-               spi0 = &qspi;
-               i2c0 = &i2c1;
+       chosen {
+               u-boot,spl-boot-order = &mmc;
        };
- memory {
+       memory@0 {
                /*
                 * Memory type: DDR4 (non-interleaving mode)
                 * 16GB
@@ -38,10 +37,10 @@
  };
&flash0 {
-       compatible = "jedec,spi-nor";
-       spi-tx-bus-width = <4>;
-       spi-rx-bus-width = <4>;
        bootph-all;
+       cdns,page-size = <256>;
+       cdns,block-size = <16>;
+       /delete-property/ cdns,read-delay;
  };
&gmac0 {
diff --git a/arch/arm/dts/socfpga_n5x_socdk.dts 
b/arch/arm/dts/socfpga_n5x_socdk.dts
deleted file mode 100644
index 915b8f6380e..00000000000
--- a/arch/arm/dts/socfpga_n5x_socdk.dts
+++ /dev/null
@@ -1,122 +0,0 @@
-// SPDX-License-Identifier:     GPL-2.0
-/*
- * Copyright (C) 2020-2021, Intel Corporation
- */
-#include "socfpga_agilex.dtsi"
-
-/ {
-       model = "eASIC N5X SoCDK";
-
-       aliases {
-               serial0 = &uart0;
-               ethernet0 = &gmac0;
-               ethernet1 = &gmac1;
-               ethernet2 = &gmac2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       memory {
-               device_type = "memory";
-               /* We expect the bootloader to fill in the reg */
-               reg = <0 0 0 0>;
-       };
-
-       soc {
-               clocks {
-                       osc1 {
-                               clock-frequency = <25000000>;
-                       };
-               };
-       };
-};
-
-&gmac0 {
-       status = "okay";
-       phy-mode = "rgmii";
-       phy-handle = <&phy0>;
-       max-frame-size = <9000>;
-
-       mdio0 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "snps,dwmac-mdio";
-               phy0: ethernet-phy@0 {
-                       reg = <4>;
-
-                       txd0-skew-ps = <0>; /* -420ps */
-                       txd1-skew-ps = <0>; /* -420ps */
-                       txd2-skew-ps = <0>; /* -420ps */
-                       txd3-skew-ps = <0>; /* -420ps */
-                       rxd0-skew-ps = <420>; /* 0ps */
-                       rxd1-skew-ps = <420>; /* 0ps */
-                       rxd2-skew-ps = <420>; /* 0ps */
-                       rxd3-skew-ps = <420>; /* 0ps */
-                       txen-skew-ps = <0>; /* -420ps */
-                       txc-skew-ps = <900>; /* 0ps */
-                       rxdv-skew-ps = <420>; /* 0ps */
-                       rxc-skew-ps = <1680>; /* 780ps */
-               };
-       };
-};
-
-&gpio1 {
-       status = "okay";
-};
-
-&mmc {
-       status = "okay";
-       cap-sd-highspeed;
-       broken-cd;
-       bus-width = <4>;
-};
-
-&qspi {
-       status = "okay";
-       flash0: flash@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "mt25qu02g";
-               reg = <0>;
-               spi-max-frequency = <100000000>;
-
-               m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
-               cdns,read-delay = <3>;
-               cdns,tshsl-ns = <50>;
-               cdns,tsd2d-ns = <50>;
-               cdns,tchsh-ns = <4>;
-               cdns,tslch-ns = <4>;
-
-               partitions {
-                       compatible = "fixed-partitions";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-
-                       qspi_boot: partition@0 {
-                               label = "Boot and fpga data";
-                               reg = <0x0 0x034B0000>;
-                       };
-
-                       qspi_rootfs: partition@34B0000 {
-                               label = "Root Filesystem - JFFS2";
-                               reg = <0x034B0000 0x0EB50000>;
-                       };
-               };
-       };
-};
-
-&uart0 {
-       status = "okay";
-};
-
-&usb0 {
-       status = "okay";
-};
-
-&usb1 {
-       status = "okay";
-};
diff --git a/configs/socfpga_n5x_defconfig b/configs/socfpga_n5x_defconfig
index fc988ed3da2..d706366337f 100644
--- a/configs/socfpga_n5x_defconfig
+++ b/configs/socfpga_n5x_defconfig
@@ -10,7 +10,7 @@ CONFIG_SF_DEFAULT_MODE=0x2003
  CONFIG_ENV_SIZE=0x1000
  CONFIG_ENV_OFFSET=0x200
  CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="socfpga_n5x_socdk"
+CONFIG_DEFAULT_DEVICE_TREE="intel/socfpga_n5x_socdk"
  CONFIG_DM_RESET=y
  CONFIG_SPL_STACK=0xffe3f000
  CONFIG_SPL_TEXT_BASE=0xFFE00000
@@ -63,6 +63,7 @@ CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT4=y
  CONFIG_CMD_FAT=y
  CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_UPSTREAM=y
  CONFIG_ENV_IS_IN_MMC=y
  CONFIG_NET_RANDOM_ETHADDR=y
  CONFIG_SPL_DM_SEQ_ALIAS=y


Reviewed-by: Tien Fong Chee <[email protected]>

Best regards,
Tien Fong

Reply via email to