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 -- 2.43.7

