On Tue, Aug 17, 2021 at 02:59:07AM +0000, Hongbo Wang wrote: > > On Mon, Aug 16, 2021 at 06:03:52AM +0000, Hongbo Wang wrote: > > > > I was going to suggest as an alternative to define a device tree > > > > overlay file with the changes in the CPU port assignment, instead of > > > > defining a wholly new DTS for the LS1028A reference design board. > > > > But I am pretty sure that it is not possible to specify a > > > > /delete-property/ inside a device tree overlay file, so that won't actually work. > > > > > > hi Vladimir, > > > > > > if don't specify "/delete-property/" in this dts file, the > > > corresponding dtb will not work well, so I add it to delete 'ethernet' property > > > from mscc_felix_port4 explicitly. > > > > Judging by the reply, I am not actually sure you've understood what has been > > said. > > > > I said: > > > > There is an option to create a device tree overlay: > > > > https://www.kernel.org/doc/html/latest/devicetree/overlay-notes.html > > > > We use these for the riser cards on the LS1028A-QDS boards. > > > > https://source.codeaurora.org/external/qoriq/qoriq-components/linux/tree/ar > > ch/arm64/boot/dts/freescale/fsl-ls1028a-qds-13bb.dts?h=LSDK-20.12-V5.4 > > > > They are included as usual in a U-Boot ITB file: > > > > / { > > images { > > /* Base DTB */ > > ls1028aqds-dtb { > > description = "ls1028aqds-dtb"; > > data = /incbin/("arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dtb"); > > type = "flat_dt"; > > arch = "arm64"; > > os = "linux"; > > compression = "none"; > > load = <0x90000000>; > > hash@1 { > > algo = "crc32"; > > }; > > }; > > /* Overlay */ > > fdt@ls1028aqds-13bb { > > description = "ls1028aqds-13bb"; > > data = /incbin/("arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-13bb.dtb"); > > type = "flat_dt"; > > arch = "arm64"; > > load = <0x90010000>; > > }; > > }; > > }; > > > > In U-Boot, you apply the overlay as following: > > > > tftp $kernel_addr_r boot.itb && bootm > > $kernel_addr_r#ls1028aqds#ls1028aqds-13bb > > > > It would have been nice to have a similar device tree overlay that changes the > > DSA master from eno2 to eno3, and for that overlay to be able to be applied > > (or not) from U-Boot. > > > > But it's _not_ possible, because you cannot put the /delete-property/ (that you > > need to have) in the .dtbo file. Or if you put it, it will not delete the property > > from the base dtb. > > > > That's all I said. > > thanks for the detailed explanation, > I have got your point. > > thanks, > hongbo I'm replying to a very old topic here, but I don't think this made too much progress (NXP still carries a downstream fsl-ls1028a-rdb-dsa-swp5-eno3.dts, for a use case which is valid: using one of the 2 internal Ethernet ports between the switch and the SoC as a plain data port, rather than a CPU port). I've found what I think is a satisfactory solution for myself. Rather than carrying an entirely new device tree just to move around the DSA master from &enetc_port2 to &enetc_port3, I'm building upon the changes for multiple CPU ports which Shawn has accepted now. https://lore.kernel.org/linux-arm-kernel/20220831160124.914453-1-olteanv@xxxxxxxxx/ With that patch set, what Hongbo tried to add here simply becomes: &mscc_felix_port4 { /delete-property/ ethernet; }; I've already expressed discontent with the fact that it isn't possible to move just this action to a device tree overlay and apply it to whatever LS1028A based board, not just the RDB. However, I found that it is possible to do this instead, just from within the U-Boot shell: fdt addr $fdt_addr_r fdt rm /soc/pcie@1f0000000/ethernet-switch@0,5/ports/port@4 ethernet ... bootm $kernel_addr_r - $fdt_addr_r which is even more convenient, because this way, the board device trees now don't even need to be compiled with the dtc "-@" option (to include the __symbols__ node required for dtb overlays). It's likely that some of the people copied here do fancier tricks with dynamic editing of the FDT already, on a day by day basis. In that case, what can I say, have a good rest of the day ;)