[PATCH v2 1/9] arch: arm: dts: stratix10: Switch to using upstream Linux DT config
Yuslaimi, Alif Zakuan
alif.zakuan.yuslaimi at altera.com
Thu May 14 07:35:36 CEST 2026
Hi Tien Fong,
On 7/5/2026 4:37 pm, Chee, Tien Fong wrote:
> Hi Alif,
>
>
> On 28/4/2026 11:48 am, alif.zakuan.yuslaimi at altera.com wrote:
>> From: Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi at altera.com>
>>
>> Migrate the legacy Stratix10 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: Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi at altera.com>
>> ---
>
>
> Please add the change log for each version.
>
>
Noted, I will add change log for related patches in v3.
>> arch/arm/dts/Makefile | 3 +-
>> arch/arm/dts/socfpga_stratix10-u-boot.dtsi | 158 +++++++
>> arch/arm/dts/socfpga_stratix10.dtsi | 430 ------------------
>> .../dts/socfpga_stratix10_socdk-u-boot.dtsi | 143 +++++-
>> arch/arm/dts/socfpga_stratix10_socdk.dts | 143 ------
>> configs/socfpga_stratix10_defconfig | 3 +-
>> 6 files changed, 286 insertions(+), 594 deletions(-)
>> delete mode 100644 arch/arm/dts/socfpga_stratix10.dtsi
>> delete mode 100644 arch/arm/dts/socfpga_stratix10_socdk.dts
>>
>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>> index bff341d6118..2832123218f 100644
>> --- a/arch/arm/dts/Makefile
>> +++ b/arch/arm/dts/Makefile
>> @@ -460,8 +460,7 @@ dtb-$(CONFIG_ARCH_SOCFPGA) += \
>> socfpga_cyclone5_vining_fpga.dtb \
>> socfpga_cyclone5_ac501soc.dtb \
>> socfpga_cyclone5_ac550soc.dtb \
>> - socfpga_n5x_socdk.dtb \
>> - socfpga_stratix10_socdk.dtb
>> + socfpga_n5x_socdk.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_stratix10-u-boot.dtsi b/arch/arm/
>> dts/socfpga_stratix10-u-boot.dtsi
>> index 3e3a3780469..a3b4c0564f9 100644
>> --- a/arch/arm/dts/socfpga_stratix10-u-boot.dtsi
>> +++ b/arch/arm/dts/socfpga_stratix10-u-boot.dtsi
>> @@ -3,6 +3,164 @@
>> * U-Boot additions
>> *
>> * Copyright (C) 2020 Intel Corporation <www.intel.com>
>> + * Copyright (C) 2026 Altera Corporation <www.altera.com>
>> */
>> #include "socfpga_soc64_fit-u-boot.dtsi"
>> +
>> +/{
>> + aliases {
>> + spi0 = &qspi;
>> + i2c0 = &i2c1;
>> + freeze_br0 = &freeze_controller;
>> + };
>> +
>> + memory at 0 {
>> + device_type = "memory";
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>
>
> make dtbs_check (Linux dt-validate) will flag it as a schema violation
> since memory nodes must not define #address-cells / #size-cells because
> no child node according to the dt spec.
>
> Remove both properties from the memory at 0
>
> [...]
>
>
Removing these properties will result in boot failure in SPL during DDR
init.
fdtdec_decode_ram_size() in lib/fdtdec.c applied #cells to the wrong DT
node, triggering libfdt’s default #size-cells = 1, which misparses reg
encoded for #size-cells = <2> which is the way to describe 64-bit
physical addresses and sizes ≥ 4 GiB for Stratix10.
Refer commit - 90c08fa038451d6d7b7d8711bfd829b61d64c490
>> diff --git a/arch/arm/dts/socfpga_stratix10_socdk-u-boot.dtsi b/arch/
>> arm/dts/socfpga_stratix10_socdk-u-boot.dtsi
>> index ef0df769762..da19943ec3b 100644
>> --- a/arch/arm/dts/socfpga_stratix10_socdk-u-boot.dtsi
>> +++ b/arch/arm/dts/socfpga_stratix10_socdk-u-boot.dtsi
>> @@ -3,47 +3,154 @@
>> * U-Boot additions
>> *
>> * Copyright (C) 2019-2022 Intel Corporation <www.intel.com>
>> + * Copyright (C) 2026 Altera Corporation <www.altera.com>
>> */
>> #include "socfpga_stratix10-u-boot.dtsi"
>> /{
>> - aliases {
>> - spi0 = &qspi;
>> - freeze_br0 = &freeze_controller;
>> + chosen {
>> + stdout-path = "serial0:115200n8";
>> + u-boot,spl-boot-order = &mmc,&flash0,&nand;
>> };
>> - soc {
>> - freeze_controller: freeze_controller at f9000450 {
>> - compatible = "altr,freeze-bridge-controller";
>> - reg = <0xf9000450 0x00000010>;
>> - status = "disabled";
>> + memory at 0 {
>> + /* 4GB */
>> + reg = <0 0x00000000 0 0x80000000>,
>> + <1 0x80000000 0 0x80000000>;
>> + };
>> +};
>> +
>> +&qspi {
>> + status = "okay";
>> +};
>> +
>> +&gmac0 {
>> + mdio0 {
>> + ethernet_phy0: ethernet-phy at 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 */
>> };
>> };
>> };
>> -&clkmgr {
>> +&mmc {
>> + drvsel = <3>;
>> + smplsel = <2>;
>> bootph-all;
>> };
>> &qspi {
>> - status = "okay";
>> - bootph-all;
>> + /delete-property/ clocks;
>> };
>> &flash0 {
>> - compatible = "jedec,spi-nor";
>> - spi-max-frequency = <100000000>;
>> + reg = <0>;
>> spi-tx-bus-width = <4>;
>> spi-rx-bus-width = <4>;
>> bootph-all;
>> +
>> + m25p,fast-read;
>> + cdns,page-size = <256>;
>> + cdns,block-size = <16>;
>> + cdns,tshsl-ns = <50>;
>> + cdns,tsd2d-ns = <50>;
>> + cdns,tchsh-ns = <4>;
>> + cdns,tslch-ns = <4>;
>> + /delete-property/ cdns,read-delay;
>> +
>> + partitions {
>> + compatible = "fixed-partitions";
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> +
>> + qspi_boot: partition at 0 {
>> + label = "u-boot";
>> + reg = <0x0 0x04200000>;
>> + };
>> +
>> + root: partition at 4200000 {
>> + label = "root";
>> + reg = <0x04200000 0x0BE00000>;
>> + };
>> + };
>> };
>> -&sysmgr {
>> - bootph-all;
>> +&fdt_0_blob {
>> + filename = "dts/upstream/src/arm64/altera/
>> socfpga_stratix10_socdk.dtb";
>> };
>> -&watchdog0 {
>> - status = "okay";
>> - bootph-all;
>> +&images {
>> + fdt-1 {
>> + description = "socfpga_socdk_nand";
>> + type = "flat_dt";
>> + compression = "none";
>> + fdt_1_blob: blob-ext {
>> + filename = "dts/upstream/src/arm64/altera/
>> socfpga_stratix10_socdk_nand.dtb";
>> + };
>> + hash {
>> + algo = "crc32";
>> + };
>> + };
>> +
>> + fdt-2 {
>> + description = "socfpga_socdk_emmc";
>> + type = "flat_dt";
>> + compression = "none";
>> + fdt_2_blob: blob-ext {
>> + filename = "dts/upstream/src/arm64/altera/
>> socfpga_stratix10_socdk_emmc.dtb";
>
>
> This file is absent. Binman references dts/upstream/src/arm64/altera/
> socfpga_stratix10_socdk_emmc.dtb.
>
> If those source DTS files do not exist in the upstream tree, binman
> fails with a file-not-found error at image build time
>
>
> Best regards,
>
> Tien Fong
>
More information about the U-Boot
mailing list