From 34127dff316085df27fefe040f83756602183099 Mon Sep 17 00:00:00 2001 From: Julian Braha Date: Wed, 15 Apr 2026 00:18:33 +0100 Subject: powerpc: fix dead default for SYS_L3_SIZE The 'default ... if SYS_L3_SIZE_512KB' statement is written twice, making the second instance dead code. Based on the context, I believe the author of the code intended to set a default value of '1048576' when SYS_L3_SIZE_1024KB is set. This dead code was detected by kconfirm, a static analysis tool for Kconfig. Fixes: b85d75951fe ("powerpc: Migrate SYS_L3_SIZE to Kconfig") Signed-off-by: Julian Braha Signed-off-by: Peng Fan --- arch/powerpc/cpu/mpc85xx/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig index 55152ab227e..cb564b32c07 100644 --- a/arch/powerpc/cpu/mpc85xx/Kconfig +++ b/arch/powerpc/cpu/mpc85xx/Kconfig @@ -1375,7 +1375,7 @@ config SYS_L3_SIZE int default 262144 if SYS_L3_SIZE_256KB default 524288 if SYS_L3_SIZE_512KB - default 1048576 if SYS_L3_SIZE_512KB + default 1048576 if SYS_L3_SIZE_1024KB config SYS_PPC64 bool -- cgit v1.2.3 From 33ff22c0b169401ab555e8508c06da1848a2d539 Mon Sep 17 00:00:00 2001 From: Ye Li Date: Thu, 16 Apr 2026 21:48:38 +0800 Subject: arm: layerscape: Check zero size memory bank before lmb_add In layerspace's lmb_arch_add_memory implementation, all memory bank are added to lmb, even some is with zero size. This will cause lmb treating it as overlap with available memory by lmb_addrs_overlap and merge with available memory. Finally causing available memory start address changed to 0. For example, on LX2160, before zero memory bank added to lmb, there are two available memory regions: - region 0, start 0x80000000, size 0x7be00000 - region 1, start 0x2080000000, size 0x700000000 After zero size memory bank added, merge to one region: - region 0, start 0, size 0x2780000000 This wrong new region causes efi_memory_init issue when allocating bounce buffer because of conflict address (with uboot reserved) is allocated. Signed-off-by: Ye Li Reviewed-by: Peng Fan Signed-off-by: Peng Fan --- arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c index cfbaa475701..7f0cb28f52d 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c @@ -1549,7 +1549,8 @@ void lmb_arch_add_memory(void) gd->arch.resv_ram < ram_start + ram_size) ram_size = gd->arch.resv_ram - ram_start; #endif - lmb_add(ram_start, ram_size); + if (ram_size > 0) + lmb_add(ram_start, ram_size); } } #endif -- cgit v1.2.3 From 5a0343350a1786a74fb68cf52ba3e7a171accd6e Mon Sep 17 00:00:00 2001 From: Ye Li Date: Fri, 17 Apr 2026 22:14:36 +0800 Subject: arm: dts: fsl-ls1088a-qds: Fix missed -u-boot.dtsi LS1088AQDS u-boot contains multiple DTB files: fsl-ls1088a-qds-21-x.dtb and fsl-ls1088a-qds-29-x.dtb. It does not use default device tree fsl-ls1088a-qds.dtb However, the nodes updated in fsl-ls1088a-qds-u-boot.dtsi are not included for fsl-ls1088a-qds-21-x.dts and fsl-ls1088a-qds-29-x.dts, so fail to get any output from serial. Signed-off-by: Ye Li Tested-by: Wei Lu Reviewed-by: Peng Fan Signed-off-by: Peng Fan --- arch/arm/dts/fsl-ls1088a-qds-21-x-u-boot.dtsi | 9 +++++++++ arch/arm/dts/fsl-ls1088a-qds-29-x-u-boot.dtsi | 9 +++++++++ 2 files changed, 18 insertions(+) create mode 100644 arch/arm/dts/fsl-ls1088a-qds-21-x-u-boot.dtsi create mode 100644 arch/arm/dts/fsl-ls1088a-qds-29-x-u-boot.dtsi diff --git a/arch/arm/dts/fsl-ls1088a-qds-21-x-u-boot.dtsi b/arch/arm/dts/fsl-ls1088a-qds-21-x-u-boot.dtsi new file mode 100644 index 00000000000..1d58f1c593b --- /dev/null +++ b/arch/arm/dts/fsl-ls1088a-qds-21-x-u-boot.dtsi @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2024 NXP + * + */ + +#include + +#include "fsl-ls1088a-qds-u-boot.dtsi" diff --git a/arch/arm/dts/fsl-ls1088a-qds-29-x-u-boot.dtsi b/arch/arm/dts/fsl-ls1088a-qds-29-x-u-boot.dtsi new file mode 100644 index 00000000000..1d58f1c593b --- /dev/null +++ b/arch/arm/dts/fsl-ls1088a-qds-29-x-u-boot.dtsi @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2024 NXP + * + */ + +#include + +#include "fsl-ls1088a-qds-u-boot.dtsi" -- cgit v1.2.3 From 8e33f7ac90943eee152bb0651c1daa0c6ba138ad Mon Sep 17 00:00:00 2001 From: Ye Li Date: Fri, 17 Apr 2026 22:14:37 +0800 Subject: arm: dts: fsl-ls1088a: Set dpmac nodes default to disabled Disable ethernet controller dpmac nodes in fsl-ls1088a.dtsi. Board dts is responsible to enable them. Otherwise will meet failure from ldpaa_eth driver on LS1088AQDS board, because only few dpmac controllers can be enabled on this board. Signed-off-by: Ye Li Tested-by: Wei Lu Reviewed-by: Peng Fan Signed-off-by: Peng Fan --- arch/arm/dts/fsl-ls1088a.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/dts/fsl-ls1088a.dtsi b/arch/arm/dts/fsl-ls1088a.dtsi index e5fb137ac02..9a62f148d8e 100644 --- a/arch/arm/dts/fsl-ls1088a.dtsi +++ b/arch/arm/dts/fsl-ls1088a.dtsi @@ -978,51 +978,61 @@ dpmac1: ethernet@1 { compatible = "fsl,qoriq-mc-dpmac"; reg = <1>; + status = "disabled"; }; dpmac2: ethernet@2 { compatible = "fsl,qoriq-mc-dpmac"; reg = <2>; + status = "disabled"; }; dpmac3: ethernet@3 { compatible = "fsl,qoriq-mc-dpmac"; reg = <3>; + status = "disabled"; }; dpmac4: ethernet@4 { compatible = "fsl,qoriq-mc-dpmac"; reg = <4>; + status = "disabled"; }; dpmac5: ethernet@5 { compatible = "fsl,qoriq-mc-dpmac"; reg = <5>; + status = "disabled"; }; dpmac6: ethernet@6 { compatible = "fsl,qoriq-mc-dpmac"; reg = <6>; + status = "disabled"; }; dpmac7: ethernet@7 { compatible = "fsl,qoriq-mc-dpmac"; reg = <7>; + status = "disabled"; }; dpmac8: ethernet@8 { compatible = "fsl,qoriq-mc-dpmac"; reg = <8>; + status = "disabled"; }; dpmac9: ethernet@9 { compatible = "fsl,qoriq-mc-dpmac"; reg = <9>; + status = "disabled"; }; dpmac10: ethernet@a { compatible = "fsl,qoriq-mc-dpmac"; reg = <0xa>; + status = "disabled"; }; }; }; -- cgit v1.2.3 From 5fadfd623af0354c2549a03dbce092397189aee1 Mon Sep 17 00:00:00 2001 From: Ye Li Date: Fri, 17 Apr 2026 22:15:28 +0800 Subject: arm: dts: fsl-ls1088a: Enable SD device Due to update of fsl-ls1088a.dtsi in previous patch, the esdhc node is disabled, so u-boot can't to probe any eSDHC controller. Fixes: fd4f7b0158d0 ("arm: dts: fsl-ls1088a: move and sync existing bindings to be under /soc") Signed-off-by: Ye Li Tested-by: Wei Lu Reviewed-by: Peng Fan Signed-off-by: Peng Fan --- arch/arm/dts/fsl-ls1088a-u-boot.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/dts/fsl-ls1088a-u-boot.dtsi b/arch/arm/dts/fsl-ls1088a-u-boot.dtsi index efcfdd96aef..e2755740e5d 100644 --- a/arch/arm/dts/fsl-ls1088a-u-boot.dtsi +++ b/arch/arm/dts/fsl-ls1088a-u-boot.dtsi @@ -61,3 +61,6 @@ compatible = "fsl,layerscape-dwc3", "snps,dwc3"; }; +&esdhc { + status = "okay"; +}; -- cgit v1.2.3 From d47f02d9ca01b9f6e0fcb2be6dd8392eeae7d8f9 Mon Sep 17 00:00:00 2001 From: Ye Li Date: Fri, 17 Apr 2026 22:15:29 +0800 Subject: arm: dts: fsl-ls1088a: Enable USB nodes Enable USB nodes in -u-boot.dtsi. After sync dts with kernel, USB nodes status are set to disabled. So "usb start" does not work on ls1088ardb and ls1088aqds. Fixes: 10ff7e6b043b ("arm: dts: fsl-ls1088a: sync usb controller nodes with Linux") Signed-off-by: Ye Li Tested-by: Wei Lu Reviewed-by: Peng Fan Signed-off-by: Peng Fan --- arch/arm/dts/fsl-ls1088a-u-boot.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/dts/fsl-ls1088a-u-boot.dtsi b/arch/arm/dts/fsl-ls1088a-u-boot.dtsi index e2755740e5d..8ae45f6a638 100644 --- a/arch/arm/dts/fsl-ls1088a-u-boot.dtsi +++ b/arch/arm/dts/fsl-ls1088a-u-boot.dtsi @@ -55,10 +55,12 @@ &usb0 { compatible = "fsl,layerscape-dwc3", "snps,dwc3"; + status = "okay"; }; &usb1 { compatible = "fsl,layerscape-dwc3", "snps,dwc3"; + status = "okay"; }; &esdhc { -- cgit v1.2.3 From 8c60833124ce3a17d6d508f081a06e9d05c8402c Mon Sep 17 00:00:00 2001 From: Ye Li Date: Fri, 17 Apr 2026 22:16:36 +0800 Subject: arm: dts: layerscape: Fix DT build warning in SPI nodes There are lots of DT warning in layerscape DTS files like: node name for SPI buses should be 'spi' and SPI bus unit address format error. Update the spi node name and flash node name to avoid build warning Signed-off-by: Ye Li Acked-by: Peng Fan Signed-off-by: Peng Fan --- arch/arm/dts/fsl-ls1012a-qds.dtsi | 6 +++--- arch/arm/dts/fsl-ls1012a.dtsi | 4 ++-- arch/arm/dts/fsl-ls1028a-qds.dtsi | 14 +++++++------- arch/arm/dts/fsl-ls1043a-qds.dtsi | 6 +++--- arch/arm/dts/fsl-ls1043a-rdb.dts | 2 +- arch/arm/dts/fsl-ls1043a.dtsi | 6 +++--- arch/arm/dts/fsl-ls1046a-qds.dtsi | 6 +++--- arch/arm/dts/fsl-ls1046a.dtsi | 6 +++--- arch/arm/dts/fsl-ls1088a-qds.dtsi | 6 +++--- arch/arm/dts/fsl-ls2080a-qds.dtsi | 6 +++--- arch/arm/dts/fsl-ls2080a-rdb.dts | 2 +- arch/arm/dts/fsl-ls2080a.dtsi | 4 ++-- arch/arm/dts/fsl-ls2081a-rdb.dts | 2 +- arch/arm/dts/fsl-ls2088a-rdb-qspi.dts | 2 +- arch/arm/dts/fsl-lx2160a-qds.dtsi | 18 +++++++++--------- arch/arm/dts/fsl-lx2160a.dtsi | 8 ++++---- arch/arm/dts/fsl-lx2162a-qds.dts | 18 +++++++++--------- arch/arm/dts/ls1021a.dtsi | 6 +++--- 18 files changed, 61 insertions(+), 61 deletions(-) diff --git a/arch/arm/dts/fsl-ls1012a-qds.dtsi b/arch/arm/dts/fsl-ls1012a-qds.dtsi index 910d2a5c778..194ab344350 100644 --- a/arch/arm/dts/fsl-ls1012a-qds.dtsi +++ b/arch/arm/dts/fsl-ls1012a-qds.dtsi @@ -17,7 +17,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q128a { + dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -25,7 +25,7 @@ spi-max-frequency = <1000000>; /* input clock */ }; - dflash1: sst25wf040b { + dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -33,7 +33,7 @@ reg = <1>; }; - dflash2: en25s64 { + dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-ls1012a.dtsi b/arch/arm/dts/fsl-ls1012a.dtsi index 796d72fc9ed..b0f3fd79094 100644 --- a/arch/arm/dts/fsl-ls1012a.dtsi +++ b/arch/arm/dts/fsl-ls1012a.dtsi @@ -48,7 +48,7 @@ clocks = <&sysclk>; }; - dspi0: dspi@2100000 { + dspi0: spi@2100000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -178,7 +178,7 @@ clocks = <&clockgen 4 0>; }; - qspi: quadspi@1550000 { + qspi: spi@1550000 { compatible = "fsl,ls1021a-qspi"; #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm/dts/fsl-ls1028a-qds.dtsi b/arch/arm/dts/fsl-ls1028a-qds.dtsi index 3b063d0257d..6d3f08bd678 100644 --- a/arch/arm/dts/fsl-ls1028a-qds.dtsi +++ b/arch/arm/dts/fsl-ls1028a-qds.dtsi @@ -26,7 +26,7 @@ bus-num = <0>; status = "okay"; - dflash0: sst25wf040b { + dflash0: sst25wf040b@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -36,7 +36,7 @@ reg = <0>; }; - dflash1: en25s64 { + dflash1: en25s64@1 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -45,7 +45,7 @@ spi-cpha; reg = <1>; }; - dflash2: n25q128a { + dflash2: n25q128a@2 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -60,7 +60,7 @@ bus-num = <0>; status = "okay"; - dflash3: sst25wf040b { + dflash3: sst25wf040b@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -70,7 +70,7 @@ reg = <0>; }; - dflash4: en25s64 { + dflash4: en25s64@1 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -79,7 +79,7 @@ spi-cpha; reg = <1>; }; - dflash5: n25q128a { + dflash5: n25q128a@2 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -94,7 +94,7 @@ bus-num = <0>; status = "okay"; - dflash8: en25s64 { + dflash8: en25s64@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; diff --git a/arch/arm/dts/fsl-ls1043a-qds.dtsi b/arch/arm/dts/fsl-ls1043a-qds.dtsi index 5e02cd91d75..fa1bda51108 100644 --- a/arch/arm/dts/fsl-ls1043a-qds.dtsi +++ b/arch/arm/dts/fsl-ls1043a-qds.dtsi @@ -21,7 +21,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q128a { + dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -31,7 +31,7 @@ reg = <0>; }; - dflash1: sst25wf040b { + dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -41,7 +41,7 @@ reg = <1>; }; - dflash2: en25s64 { + dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-ls1043a-rdb.dts b/arch/arm/dts/fsl-ls1043a-rdb.dts index f5b3bb68b3d..80787907df6 100644 --- a/arch/arm/dts/fsl-ls1043a-rdb.dts +++ b/arch/arm/dts/fsl-ls1043a-rdb.dts @@ -28,7 +28,7 @@ bus-num = <0>; status = "okay"; - dspiflash: n25q12a { + dspiflash: n25q12a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-ls1043a.dtsi b/arch/arm/dts/fsl-ls1043a.dtsi index 21643a1d951..7337d3cecb6 100644 --- a/arch/arm/dts/fsl-ls1043a.dtsi +++ b/arch/arm/dts/fsl-ls1043a.dtsi @@ -54,7 +54,7 @@ clocks = <&sysclk>; }; - dspi0: dspi@2100000 { + dspi0: spi@2100000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -67,7 +67,7 @@ status = "disabled"; }; - dspi1: dspi@2110000 { + dspi1: spi@2110000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -306,7 +306,7 @@ clock-names = "ipg"; status = "disabled"; }; - qspi: quadspi@1550000 { + qspi: spi@1550000 { compatible = "fsl,ls1021a-qspi"; #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm/dts/fsl-ls1046a-qds.dtsi b/arch/arm/dts/fsl-ls1046a-qds.dtsi index d66824975c5..706405ba805 100644 --- a/arch/arm/dts/fsl-ls1046a-qds.dtsi +++ b/arch/arm/dts/fsl-ls1046a-qds.dtsi @@ -21,7 +21,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q128a { + dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -31,7 +31,7 @@ reg = <0>; }; - dflash1: sst25wf040b { + dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -41,7 +41,7 @@ reg = <1>; }; - dflash2: en25s64 { + dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-ls1046a.dtsi b/arch/arm/dts/fsl-ls1046a.dtsi index 44ee4c5808d..ceb5d6b3356 100644 --- a/arch/arm/dts/fsl-ls1046a.dtsi +++ b/arch/arm/dts/fsl-ls1046a.dtsi @@ -54,7 +54,7 @@ clocks = <&sysclk>; }; - dspi0: dspi@2100000 { + dspi0: spi@2100000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -67,7 +67,7 @@ status = "disabled"; }; - dspi1: dspi@2110000 { + dspi1: spi@2110000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -311,7 +311,7 @@ status = "disabled"; }; - qspi: quadspi@1550000 { + qspi: spi@1550000 { compatible = "fsl,ls1021a-qspi"; #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm/dts/fsl-ls1088a-qds.dtsi b/arch/arm/dts/fsl-ls1088a-qds.dtsi index 4d21d4fbd5e..83635a2e40d 100644 --- a/arch/arm/dts/fsl-ls1088a-qds.dtsi +++ b/arch/arm/dts/fsl-ls1088a-qds.dtsi @@ -144,7 +144,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q128a { + dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -152,7 +152,7 @@ spi-max-frequency = <1000000>; /* input clock */ }; - dflash1: sst25wf040b { + dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -160,7 +160,7 @@ reg = <1>; }; - dflash2: en25s64 { + dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-ls2080a-qds.dtsi b/arch/arm/dts/fsl-ls2080a-qds.dtsi index cb7851f2cc0..f442baa8bfe 100644 --- a/arch/arm/dts/fsl-ls2080a-qds.dtsi +++ b/arch/arm/dts/fsl-ls2080a-qds.dtsi @@ -31,7 +31,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q128a { + dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -40,7 +40,7 @@ spi-cpha; reg = <0>; }; - dflash1: sst25wf040b { + dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; @@ -49,7 +49,7 @@ spi-cpha; reg = <1>; }; - dflash2: en25s64 { + dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-ls2080a-rdb.dts b/arch/arm/dts/fsl-ls2080a-rdb.dts index 0a87caeba96..5a9b5c06e23 100644 --- a/arch/arm/dts/fsl-ls2080a-rdb.dts +++ b/arch/arm/dts/fsl-ls2080a-rdb.dts @@ -22,7 +22,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q512a { + dflash0: n25q512a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-ls2080a.dtsi b/arch/arm/dts/fsl-ls2080a.dtsi index d754eb4d5cc..c1173a95f24 100644 --- a/arch/arm/dts/fsl-ls2080a.dtsi +++ b/arch/arm/dts/fsl-ls2080a.dtsi @@ -118,7 +118,7 @@ interrupts = <0 35 0x4>; /* Level high type */ }; - dspi: dspi@2100000 { + dspi: spi@2100000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -127,7 +127,7 @@ spi-num-chipselects = <6>; }; - qspi: quadspi@1550000 { + qspi: spi@1550000 { compatible = "fsl,ls2080a-qspi"; #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm/dts/fsl-ls2081a-rdb.dts b/arch/arm/dts/fsl-ls2081a-rdb.dts index b0b7ef08a02..61f0ed9b821 100644 --- a/arch/arm/dts/fsl-ls2081a-rdb.dts +++ b/arch/arm/dts/fsl-ls2081a-rdb.dts @@ -25,7 +25,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q512a { + dflash0: n25q512a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-ls2088a-rdb-qspi.dts b/arch/arm/dts/fsl-ls2088a-rdb-qspi.dts index a609290000f..1884946cc7a 100644 --- a/arch/arm/dts/fsl-ls2088a-rdb-qspi.dts +++ b/arch/arm/dts/fsl-ls2088a-rdb-qspi.dts @@ -113,7 +113,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q512a { + dflash0: n25q512a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; diff --git a/arch/arm/dts/fsl-lx2160a-qds.dtsi b/arch/arm/dts/fsl-lx2160a-qds.dtsi index e96605b1b4f..dfdad5fb31f 100644 --- a/arch/arm/dts/fsl-lx2160a-qds.dtsi +++ b/arch/arm/dts/fsl-lx2160a-qds.dtsi @@ -31,7 +31,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q128a { + dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -40,7 +40,7 @@ spi-cpha; reg = <0>; }; - dflash1: sst25wf040b { + dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -49,7 +49,7 @@ spi-cpha; reg = <1>; }; - dflash2: en25s64 { + dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -64,7 +64,7 @@ bus-num = <0>; status = "okay"; - dflash3: n25q128a { + dflash3: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -73,7 +73,7 @@ spi-cpha; reg = <0>; }; - dflash4: sst25wf040b { + dflash4: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -82,7 +82,7 @@ spi-cpha; reg = <1>; }; - dflash5: en25s64 { + dflash5: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -97,7 +97,7 @@ bus-num = <0>; status = "okay"; - dflash6: n25q128a { + dflash6: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -106,7 +106,7 @@ spi-cpha; reg = <0>; }; - dflash7: sst25wf040b { + dflash7: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -115,7 +115,7 @@ spi-cpha; reg = <1>; }; - dflash8: en25s64 { + dflash8: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; diff --git a/arch/arm/dts/fsl-lx2160a.dtsi b/arch/arm/dts/fsl-lx2160a.dtsi index 680c69c7b73..4b4b1c100b8 100644 --- a/arch/arm/dts/fsl-lx2160a.dtsi +++ b/arch/arm/dts/fsl-lx2160a.dtsi @@ -134,7 +134,7 @@ <1 10 0x8>; /* Hypervisor PPI, active-low */ }; - fspi: flexspi@20c0000 { + fspi: spi@20c0000 { compatible = "nxp,lx2160a-fspi"; #address-cells = <1>; #size-cells = <0>; @@ -221,7 +221,7 @@ status = "disabled"; }; - dspi0: dspi@2100000 { + dspi0: spi@2100000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -230,7 +230,7 @@ spi-num-chipselects = <6>; }; - dspi1: dspi@2110000 { + dspi1: spi@2110000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -239,7 +239,7 @@ spi-num-chipselects = <6>; }; - dspi2: dspi@2120000 { + dspi2: spi@2120000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm/dts/fsl-lx2162a-qds.dts b/arch/arm/dts/fsl-lx2162a-qds.dts index 0ca30df8620..b333af6d63c 100644 --- a/arch/arm/dts/fsl-lx2162a-qds.dts +++ b/arch/arm/dts/fsl-lx2162a-qds.dts @@ -41,7 +41,7 @@ bus-num = <0>; status = "okay"; - dflash0: n25q128a { + dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -50,7 +50,7 @@ spi-cpha; reg = <0>; }; - dflash1: sst25wf040b { + dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -59,7 +59,7 @@ spi-cpha; reg = <1>; }; - dflash2: en25s64 { + dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -74,7 +74,7 @@ bus-num = <0>; status = "okay"; - dflash3: n25q128a { + dflash3: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -83,7 +83,7 @@ spi-cpha; reg = <0>; }; - dflash4: sst25wf040b { + dflash4: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -92,7 +92,7 @@ spi-cpha; reg = <1>; }; - dflash5: en25s64 { + dflash5: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -107,7 +107,7 @@ bus-num = <0>; status = "okay"; - dflash6: n25q128a { + dflash6: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -116,7 +116,7 @@ spi-cpha; reg = <0>; }; - dflash7: sst25wf040b { + dflash7: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; @@ -125,7 +125,7 @@ spi-cpha; reg = <1>; }; - dflash8: en25s64 { + dflash8: en25s64@2 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-flash"; diff --git a/arch/arm/dts/ls1021a.dtsi b/arch/arm/dts/ls1021a.dtsi index 4f65ee765e3..005a40eff23 100644 --- a/arch/arm/dts/ls1021a.dtsi +++ b/arch/arm/dts/ls1021a.dtsi @@ -205,7 +205,7 @@ clocks = <&sysclk>; }; - dspi0: dspi@2100000 { + dspi0: spi@2100000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -218,7 +218,7 @@ status = "disabled"; }; - dspi1: dspi@2110000 { + dspi1: spi@2110000 { compatible = "fsl,vf610-dspi"; #address-cells = <1>; #size-cells = <0>; @@ -231,7 +231,7 @@ status = "disabled"; }; - qspi: quadspi@1550000 { + qspi: spi@1550000 { compatible = "fsl,ls1021a-qspi"; #address-cells = <1>; #size-cells = <0>; -- cgit v1.2.3 From aedaa8250b1fa7a885fb63c683cb3757e831d838 Mon Sep 17 00:00:00 2001 From: Ye Li Date: Fri, 17 Apr 2026 22:16:37 +0800 Subject: arm: dts: layerscape: Fix SPI flash compatible string issue When CONFIG_DM_SPI_FLASH is enabled, sf command will default find device from DT which requires to use "jedec,spi-nor" compatible string not obsoleted "spi-flash". So update NXP LS DTS to use new compatible string Signed-off-by: Ye Li Acked-by: Peng Fan Signed-off-by: Peng Fan --- arch/arm/dts/fsl-ls1028a-qds.dtsi | 14 +++++++------- arch/arm/dts/fsl-lx2160a-qds.dtsi | 18 +++++++++--------- arch/arm/dts/fsl-lx2162a-qds.dts | 18 +++++++++--------- arch/arm/dts/ls1021a-tsn.dts | 2 +- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/arch/arm/dts/fsl-ls1028a-qds.dtsi b/arch/arm/dts/fsl-ls1028a-qds.dtsi index 6d3f08bd678..ac5b2d9dde9 100644 --- a/arch/arm/dts/fsl-ls1028a-qds.dtsi +++ b/arch/arm/dts/fsl-ls1028a-qds.dtsi @@ -29,7 +29,7 @@ dflash0: sst25wf040b@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -39,7 +39,7 @@ dflash1: en25s64@1 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -48,7 +48,7 @@ dflash2: n25q128a@2 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -63,7 +63,7 @@ dflash3: sst25wf040b@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -73,7 +73,7 @@ dflash4: en25s64@1 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -82,7 +82,7 @@ dflash5: n25q128a@2 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -97,7 +97,7 @@ dflash8: en25s64@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; diff --git a/arch/arm/dts/fsl-lx2160a-qds.dtsi b/arch/arm/dts/fsl-lx2160a-qds.dtsi index dfdad5fb31f..6fa36de0622 100644 --- a/arch/arm/dts/fsl-lx2160a-qds.dtsi +++ b/arch/arm/dts/fsl-lx2160a-qds.dtsi @@ -34,7 +34,7 @@ dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -43,7 +43,7 @@ dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -52,7 +52,7 @@ dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -67,7 +67,7 @@ dflash3: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -76,7 +76,7 @@ dflash4: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -85,7 +85,7 @@ dflash5: en25s64@2 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -100,7 +100,7 @@ dflash6: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -109,7 +109,7 @@ dflash7: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -118,7 +118,7 @@ dflash8: en25s64@2 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; diff --git a/arch/arm/dts/fsl-lx2162a-qds.dts b/arch/arm/dts/fsl-lx2162a-qds.dts index b333af6d63c..4eaf982529d 100644 --- a/arch/arm/dts/fsl-lx2162a-qds.dts +++ b/arch/arm/dts/fsl-lx2162a-qds.dts @@ -44,7 +44,7 @@ dflash0: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -53,7 +53,7 @@ dflash1: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -62,7 +62,7 @@ dflash2: en25s64@2 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -77,7 +77,7 @@ dflash3: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -86,7 +86,7 @@ dflash4: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -95,7 +95,7 @@ dflash5: en25s64@2 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -110,7 +110,7 @@ dflash6: n25q128a@0 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -119,7 +119,7 @@ dflash7: sst25wf040b@1 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; @@ -128,7 +128,7 @@ dflash8: en25s64@2 { #address-cells = <1>; #size-cells = <1>; - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <3000000>; spi-cpol; spi-cpha; diff --git a/arch/arm/dts/ls1021a-tsn.dts b/arch/arm/dts/ls1021a-tsn.dts index e74d0956194..b5d9caa73e6 100644 --- a/arch/arm/dts/ls1021a-tsn.dts +++ b/arch/arm/dts/ls1021a-tsn.dts @@ -173,7 +173,7 @@ status = "okay"; flash@0 { - compatible = "spi-flash"; + compatible = "jedec,spi-nor"; spi-max-frequency = <20000000>; reg = <0>; }; -- cgit v1.2.3 From d360217d4a3536b022aadbd887a26573c3f01852 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 1 May 2026 11:36:02 +1000 Subject: arm: gpio: include integer type definitions for gpio.h Both consumers and sub-arch specific versions of gpio.h may reference stdint or other non-C90 type definitions. Ensure the common ones are available by including linux/types.h before any other headers. This issue came to light when the usb onboard hub driver was enabled for ten64_tfa_defconfig: In file included from ./arch/arm/include/asm/gpio.h:2, from common/usb_onboard_hub.c:10: ./arch/arm/include/asm/arch/gpio.h:17:9: error: unknown type name 'ulong' 17 | ulong addr; ./arch/arm/include/asm/arch/gpio.h:18:9: error: unknown type name 'ulong' 18 | ulong size; ./arch/arm/include/asm/arch/gpio.h:19:9: error: unknown type name 'uint' 19 | uint ngpios; (In this instance, the cited errors actually originate from arch/arm/include/asm/arch-fsl-layerscape/gpio.h, which is included by the arm top level asm/gpio.h) Implemented as per suggestion from Quentin Schulz in Link: Signed-off-by: Mathew McBride Link: https://lore.kernel.org/u-boot/35038a9a-fa5a-4f9f-b34e-17cc80a7824c@cherry.de/ Signed-off-by: Peng Fan --- arch/arm/include/asm/gpio.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h index 650783ae732..eba7bae9351 100644 --- a/arch/arm/include/asm/gpio.h +++ b/arch/arm/include/asm/gpio.h @@ -1,3 +1,5 @@ +#include + #ifdef CONFIG_GPIO_EXTRA_HEADER #include #endif -- cgit v1.2.3 From 024c3e86eaa39059f19a3196a4d44a1a30f3cd3c Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 1 May 2026 11:36:03 +1000 Subject: board: ten64: add fdt fixup to hide usb hub topology The USB Hub (microchip,usb5744) can enter a dis-/reconnect loop if a driver tries to re-initialise the hub over I2C. On the Ten64 board, this process only needs to be run once per system reset cycle, which is carried out by U-Boot. As there are distributions shipping with the affected driver by default, the best solution is to remove the USB hub topology information from the FDT passed to the operating system, so the OS won't attempt to re-initialise the USB hub under any circumstance. Signed-off-by: Mathew McBride Signed-off-by: Peng Fan --- board/traverse/ten64/ten64.c | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/board/traverse/ten64/ten64.c b/board/traverse/ten64/ten64.c index d41bd2e9dee..c5fbf4b4a04 100644 --- a/board/traverse/ten64/ten64.c +++ b/board/traverse/ten64/ten64.c @@ -186,6 +186,58 @@ void fdt_fixup_board_enet(void *fdt) fdt_status_fail(fdt, offset); } +/* The onboard USB hub driver (microchip,usb5744) + * can cause a disconnect-reconnect loop if the operating system + * attempts to re-initialise the hub after U-Boot has already done it. + * (This process only needs to be done once per system RESET cycle) + * + * To avoid this condition, make the hub topology invisible + * to the operating system. + * It is also required to remove the hub on boards + * without it (RevD). + * + * The USB hub fixup may fail for legitimate reasons: + * 1. FDT has already been fixed. For example, the control + * FDT previously modified by board_fix_fdt is + * re-used for bootflow. + * 2. The FDT blob is based on an older version + * without the hub topology, such as older OpenWrt + * FIT images with their own device tree. + */ +int fdt_fixup_usb_hub(void *fdt) +{ + int usb1_hub2744_offset, usb1_hub5744_offset; + int i2c_usb5744_offset; + int err; + + usb1_hub2744_offset = fdt_path_offset(fdt, "/soc/usb@3110000/hub@1"); + + if (usb1_hub2744_offset < 0) + return usb1_hub2744_offset; + + err = fdt_del_node(fdt, usb1_hub2744_offset); + if (err) + return err; + + usb1_hub5744_offset = fdt_path_offset(fdt, "/soc/usb@3110000/hub@2"); + if (usb1_hub5744_offset < 0) + return usb1_hub5744_offset; + + err = fdt_del_node(fdt, usb1_hub5744_offset); + if (err) + return err; + + i2c_usb5744_offset = fdt_path_offset(fdt, "/soc/i2c@2000000/usb-hub@2d"); + if (i2c_usb5744_offset < 0) + return i2c_usb5744_offset; + + err = fdt_setprop_string(fdt, i2c_usb5744_offset, "status", "disabled"); + if (err) + return err; + + return 0; +} + /* Called after SoC board_late_init in fsl-layerscape/soc.c */ int fsl_board_late_init(void) { @@ -251,6 +303,11 @@ int ft_board_setup(void *blob, struct bd_info *bd) fdt_fixup_icid(blob); + /* This fixup may fail for legitimate + * reasons (see comments for fdt_fixup_usb_hub). + * Hence, errors with it are silently ignored. + */ + fdt_fixup_usb_hub(blob); return 0; } -- cgit v1.2.3 From 3b5f6b62b0507019070bd074fc4d60d0a2b3c42a Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 1 May 2026 11:36:04 +1000 Subject: board: ten64: remove USB hub references from internal FDT when needed More recent revisions of the Ten64 board do not have a USB Hub (USB5744). The references to the USB5744 need to be removed in U-Boot's internal FDT to avoid the USB5744 setup being invoked on these boards. Reviewed-by: Peng Fan Reviewed-by: Simon Glass Signed-off-by: Mathew McBride Signed-off-by: Peng Fan --- board/traverse/ten64/ten64.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/board/traverse/ten64/ten64.c b/board/traverse/ten64/ten64.c index c5fbf4b4a04..5941ed11a60 100644 --- a/board/traverse/ten64/ten64.c +++ b/board/traverse/ten64/ten64.c @@ -311,6 +311,19 @@ int ft_board_setup(void *blob, struct bd_info *bd) return 0; } +/* board_fix_fdt: fixup function for internal (U-Boot) FDT */ +int board_fix_fdt(void *fdt) +{ + u32 board_rev = ten64_get_board_rev(); + + /* Delete USB Hub references in U-Boot's FDT on + * boards without one. + */ + if (board_rev == TEN64_BOARD_REV_D) + fdt_fixup_usb_hub(fdt); + return 0; +} + #define MACADDRBITS(a, b) (u8)(((a) >> (b)) & 0xFF) /** Probe and return a udevice for the Ten64 board microcontroller. -- cgit v1.2.3 From 327ac9cc802778169141de7348d0efc9cb52ad22 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 1 May 2026 11:36:05 +1000 Subject: configs: ten64: enable OF_BOARD_FIXUP We have added board_fix_fdt to remove elements from U-Boot's internal FDT related to the USB hub, so CONFIG_OF_BOARD_FIXUP needs to be enabled to utilize it. Signed-off-by: Mathew McBride Signed-off-by: Peng Fan --- configs/ten64_tfa_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/ten64_tfa_defconfig b/configs/ten64_tfa_defconfig index a65209e8335..0254aa6b4a5 100644 --- a/configs/ten64_tfa_defconfig +++ b/configs/ten64_tfa_defconfig @@ -21,6 +21,7 @@ CONFIG_FIT_VERBOSE=y CONFIG_BOOTSTD_FULL=y CONFIG_BOOTSTD_BOOTCOMMAND=y CONFIG_DISTRO_DEFAULTS=y +CONFIG_OF_BOARD_FIXUP=y CONFIG_OF_BOARD_SETUP=y CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_USE_BOOTARGS=y -- cgit v1.2.3 From 6cdd17aed5044817403a9af1f40e5dddc730aeeb Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 1 May 2026 11:36:06 +1000 Subject: configs: ten64: enable USB_ONBOARD_HUB (USB5744) option Ten64 board revs A through C have a Microchip USB5744 hub on the board, which must be configured over I2C at boot time to become usable. This function has not been part of the mainline U-Boot for this board until now, as a mainline driver and device-tree binding is now available for the USB5744. Reviewed-by: Simon Glass Signed-off-by: Mathew McBride Signed-off-by: Peng Fan --- configs/ten64_tfa_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/ten64_tfa_defconfig b/configs/ten64_tfa_defconfig index 0254aa6b4a5..65363d013a0 100644 --- a/configs/ten64_tfa_defconfig +++ b/configs/ten64_tfa_defconfig @@ -90,6 +90,7 @@ CONFIG_FSL_DSPI=y CONFIG_FSL_QSPI=y CONFIG_TPM_ATMEL_TWI=y CONFIG_USB=y +CONFIG_USB_ONBOARD_HUB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_DWC3=y -- cgit v1.2.3 From 9bcbb5f26844c81128757824fd1cf261a0660cb9 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 1 May 2026 11:36:07 +1000 Subject: configs: ten64: switch to OF_UPSTREAM Two recent additions to the mainline device tree allow us to switch away from the local U-Boot copy: * Board/embedded controller (traverse,ten64-controller) is now in the mainline device tree. * USB Hub (USB5744) connections were also added to the mainline device tree but not in U-Boot. The LS1088A and Ten64 device trees in U-Boot were actually 'synced' to mainline some time ago, so the content (except for the changes mentioned above) is identical. Reviewed-by: Simon Glass Signed-off-by: Mathew McBride Signed-off-by: Peng Fan --- configs/ten64_tfa_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configs/ten64_tfa_defconfig b/configs/ten64_tfa_defconfig index 65363d013a0..26d41b3f366 100644 --- a/configs/ten64_tfa_defconfig +++ b/configs/ten64_tfa_defconfig @@ -7,7 +7,7 @@ CONFIG_ENV_SIZE=0x80000 CONFIG_ENV_OFFSET=0x500000 CONFIG_ENV_SECT_SIZE=0x80000 CONFIG_DM_GPIO=y -CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1088a-ten64" +CONFIG_DEFAULT_DEVICE_TREE="freescale/fsl-ls1088a-ten64" CONFIG_QSPI_AHB_INIT=y CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y @@ -24,6 +24,7 @@ CONFIG_DISTRO_DEFAULTS=y CONFIG_OF_BOARD_FIXUP=y CONFIG_OF_BOARD_SETUP=y CONFIG_OF_STDOUT_VIA_ALIAS=y +CONFIG_OF_UPSTREAM=y CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 ramdisk_size=0x3000000 default_hugepagesz=2m hugepagesz=2m hugepages=256" CONFIG_SYS_PBSIZE=532 -- cgit v1.2.3 From e7e0cd82b7617003c3517f5545a42a6e34617b00 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 1 May 2026 11:36:08 +1000 Subject: arm: dts: remove local copy of Ten64 board DTS This board has been migrated to the upstream / kernel device tree version (OF_UPSTREAM), so remove the old 'local' copies that are no longer required. However, the -u-boot.dtsi append needs to remain, because the SoC fsl-ls1088a-u-boot.dtsi is required for some devices (like PCIe controllers and DPAA2 ethernet) to properly enumerate under U-Boot. Reviewed-by: Simon Glass Signed-off-by: Mathew McBride Signed-off-by: Peng Fan --- arch/arm/dts/fsl-ls1088a-ten64-u-boot.dtsi | 8 - arch/arm/dts/fsl-ls1088a-ten64.dts | 388 ----------------------------- 2 files changed, 396 deletions(-) delete mode 100644 arch/arm/dts/fsl-ls1088a-ten64.dts diff --git a/arch/arm/dts/fsl-ls1088a-ten64-u-boot.dtsi b/arch/arm/dts/fsl-ls1088a-ten64-u-boot.dtsi index 4e6700d586e..0d64795bf44 100644 --- a/arch/arm/dts/fsl-ls1088a-ten64-u-boot.dtsi +++ b/arch/arm/dts/fsl-ls1088a-ten64-u-boot.dtsi @@ -18,11 +18,3 @@ ethernet9 = &dpmac1; }; }; - -&i2c0 { - uc: board-controller@7e { - compatible = "traverse,ten64-controller"; - reg = <0x7e>; - }; -}; - diff --git a/arch/arm/dts/fsl-ls1088a-ten64.dts b/arch/arm/dts/fsl-ls1088a-ten64.dts deleted file mode 100644 index 0d11440d88d..00000000000 --- a/arch/arm/dts/fsl-ls1088a-ten64.dts +++ /dev/null @@ -1,388 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -/* - * Device Tree file for Traverse Technologies Ten64 - * (LS1088A) board - * Based on fsl-ls1088a-rdb.dts - * Copyright 2017-2020 NXP - * Copyright 2019-2023 Traverse Technologies - * - * Author: Mathew McBride - */ - -/dts-v1/; - -#include "fsl-ls1088a.dtsi" - -#include -#include - -/ { - model = "Traverse Ten64"; - compatible = "traverse,ten64", "fsl,ls1088a"; - - aliases { - serial0 = &duart0; - serial1 = &duart1; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - - buttons { - compatible = "gpio-keys"; - - /* Fired by system controller when - * external power off (e.g ATX Power Button) - * asserted - */ - button-powerdn { - label = "External Power Down"; - gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - - /* Rear Panel 'ADMIN' button (GPIO_H) */ - button-admin { - label = "ADMIN button"; - gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>; - linux,code = ; - }; - }; - - leds { - compatible = "gpio-leds"; - - led-0 { - label = "ten64:green:sfp1:down"; - gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>; - }; - - led-1 { - label = "ten64:green:sfp2:up"; - gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>; - }; - - led-2 { - label = "ten64:admin"; - gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>; - }; - }; - - sfp_xg0: dpmac2-sfp { - compatible = "sff,sfp"; - i2c-bus = <&sfplower_i2c>; - tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>; - tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>; - mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>; - los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>; - maximum-power-milliwatt = <2000>; - }; - - sfp_xg1: dpmac1-sfp { - compatible = "sff,sfp"; - i2c-bus = <&sfpupper_i2c>; - tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>; - tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>; - mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>; - los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>; - maximum-power-milliwatt = <2000>; - }; -}; - -/* XG1 - Upper SFP */ -&dpmac1 { - sfp = <&sfp_xg1>; - pcs-handle = <&pcs1>; - phy-connection-type = "10gbase-r"; - managed = "in-band-status"; -}; - -/* XG0 - Lower SFP */ -&dpmac2 { - sfp = <&sfp_xg0>; - pcs-handle = <&pcs2>; - phy-connection-type = "10gbase-r"; - managed = "in-band-status"; -}; - -/* DPMAC3..6 is GE4 to GE8 */ -&dpmac3 { - phy-handle = <&mdio1_phy5>; - phy-connection-type = "qsgmii"; - managed = "in-band-status"; - pcs-handle = <&pcs3_0>; -}; - -&dpmac4 { - phy-handle = <&mdio1_phy6>; - phy-connection-type = "qsgmii"; - managed = "in-band-status"; - pcs-handle = <&pcs3_1>; -}; - -&dpmac5 { - phy-handle = <&mdio1_phy7>; - phy-connection-type = "qsgmii"; - managed = "in-band-status"; - pcs-handle = <&pcs3_2>; -}; - -&dpmac6 { - phy-handle = <&mdio1_phy8>; - phy-connection-type = "qsgmii"; - managed = "in-band-status"; - pcs-handle = <&pcs3_3>; -}; - -/* DPMAC7..10 is GE0 to GE3 */ -&dpmac7 { - phy-handle = <&mdio1_phy1>; - phy-connection-type = "qsgmii"; - managed = "in-band-status"; - pcs-handle = <&pcs7_0>; -}; - -&dpmac8 { - phy-handle = <&mdio1_phy2>; - phy-connection-type = "qsgmii"; - managed = "in-band-status"; - pcs-handle = <&pcs7_1>; -}; - -&dpmac9 { - phy-handle = <&mdio1_phy3>; - phy-connection-type = "qsgmii"; - managed = "in-band-status"; - pcs-handle = <&pcs7_2>; -}; - -&dpmac10 { - phy-handle = <&mdio1_phy4>; - phy-connection-type = "qsgmii"; - managed = "in-band-status"; - pcs-handle = <&pcs7_3>; -}; - -&duart0 { - status = "okay"; -}; - -&duart1 { - status = "okay"; -}; - -&emdio1 { - status = "okay"; - - mdio1_phy5: ethernet-phy@c { - reg = <0xc>; - }; - - mdio1_phy6: ethernet-phy@d { - reg = <0xd>; - }; - - mdio1_phy7: ethernet-phy@e { - reg = <0xe>; - }; - - mdio1_phy8: ethernet-phy@f { - reg = <0xf>; - }; - - mdio1_phy1: ethernet-phy@1c { - reg = <0x1c>; - }; - - mdio1_phy2: ethernet-phy@1d { - reg = <0x1d>; - }; - - mdio1_phy3: ethernet-phy@1e { - reg = <0x1e>; - }; - - mdio1_phy4: ethernet-phy@1f { - reg = <0x1f>; - }; -}; - -&esdhc { - status = "okay"; -}; - -&i2c0 { - status = "okay"; - - sfpgpio: gpio@76 { - compatible = "ti,tca9539"; - reg = <0x76>; - #gpio-cells = <2>; - gpio-controller; - - admin_led_lower { - gpio-hog; - gpios = <13 GPIO_ACTIVE_HIGH>; - output-low; - }; - }; - - at97sc: tpm@29 { - compatible = "atmel,at97sc3204t"; - reg = <0x29>; - }; -}; - -&i2c2 { - status = "okay"; - - rx8035: rtc@32 { - compatible = "epson,rx8035"; - reg = <0x32>; - }; -}; - -&i2c3 { - status = "okay"; - - i2c-mux@70 { - compatible = "nxp,pca9540"; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x70>; - - sfpupper_i2c: i2c@0 { - #address-cells = <1>; - #size-cells = <0>; - reg = <0>; - }; - - sfplower_i2c: i2c@1 { - #address-cells = <1>; - #size-cells = <0>; - reg = <1>; - }; - }; -}; - -&pcs_mdio1 { - status = "okay"; -}; - -&pcs_mdio2 { - status = "okay"; -}; - -&pcs_mdio3 { - status = "okay"; -}; - -&pcs_mdio7 { - status = "okay"; -}; - -&qspi { - status = "okay"; - - en25s64: flash@0 { - compatible = "jedec,spi-nor"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0>; - spi-max-frequency = <20000000>; - spi-rx-bus-width = <4>; - spi-tx-bus-width = <4>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "bl2"; - reg = <0 0x100000>; - }; - - partition@100000 { - label = "bl3"; - reg = <0x100000 0x200000>; - }; - - partition@300000 { - label = "mcfirmware"; - reg = <0x300000 0x200000>; - }; - - partition@500000 { - label = "ubootenv"; - reg = <0x500000 0x80000>; - }; - - partition@580000 { - label = "dpl"; - reg = <0x580000 0x40000>; - }; - - partition@5C0000 { - label = "dpc"; - reg = <0x5C0000 0x40000>; - }; - - partition@600000 { - label = "devicetree"; - reg = <0x600000 0x40000>; - }; - }; - }; - - nand: flash@1 { - compatible = "spi-nand"; - #address-cells = <1>; - #size-cells = <1>; - reg = <1>; - spi-max-frequency = <20000000>; - spi-rx-bus-width = <4>; - spi-tx-bus-width = <4>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - /* reserved for future boot direct from NAND flash - * (this would use the same layout as the 8MiB NOR flash) - */ - partition@0 { - label = "nand-boot-reserved"; - reg = <0 0x800000>; - }; - - /* recovery / install environment */ - partition@800000 { - label = "recovery"; - reg = <0x800000 0x2000000>; - }; - - /* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */ - partition@2800000 { - label = "ubia"; - reg = <0x2800000 0x6C00000>; - }; - - /* ubib (second OpenWrt) */ - partition@9400000 { - label = "ubib"; - reg = <0x9400000 0x6C00000>; - }; - }; - }; -}; - -&usb0 { - status = "okay"; -}; - -&usb1 { - status = "okay"; -}; -- cgit v1.2.3 From dea09737234b8d9b86d0922f31d3f2a68cef3a54 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 1 May 2026 11:36:09 +1000 Subject: configs: ten64: add USB start to preboot There are two reasons why the USB stack needs to be started before handing to bootflow or other boot sequences: 1. When a USB hub is present on the board, we need to do the required sequences to make it usable 2. To make USB storage devices 'visible' to bootflow without further intervention Signed-off-by: Mathew McBride Signed-off-by: Peng Fan --- configs/ten64_tfa_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configs/ten64_tfa_defconfig b/configs/ten64_tfa_defconfig index 26d41b3f366..7c1aaabfa4e 100644 --- a/configs/ten64_tfa_defconfig +++ b/configs/ten64_tfa_defconfig @@ -90,6 +90,8 @@ CONFIG_DM_SPI=y CONFIG_FSL_DSPI=y CONFIG_FSL_QSPI=y CONFIG_TPM_ATMEL_TWI=y +CONFIG_USE_PREBOOT=y +CONFIG_PREBOOT="usb start" CONFIG_USB=y CONFIG_USB_ONBOARD_HUB=y CONFIG_USB_XHCI_HCD=y -- cgit v1.2.3