
Hi Sumit,
On 2024-05-15 10:49, Sumit Garg wrote:
Hi Jonas,
On Wed, 15 May 2024 at 13:11, Jonas Karlman jonas@kwiboo.se wrote:
Hi Tom,
On 2024-05-14 18:42, Tom Rini wrote:>
git-subtree-dir: dts/upstream git-subtree-split: 7e08733c96c84eb323f47e9b248c924e2ac6272a
This moves OF_UPSTREAM to be tracking the v6.9 release and is for the -next branch. To test these changes yourself locally, either use my "WIP/14May2024-next" branch or run: ./dts/update-dts-subtree.sh pull v6.9-dts yourself locally. I intend to wait a few days to apply this to -next, to give people time to test.
There are currently more boards/SoCs that use OF_UPSTREAM in master branch than in next branch, a few Rockchip SoCs and other boards/SoCs.
Glad to see more OF_UPSTREAM adoption.
Next dts/upstream sync will probably be good to do together with a merge of master into next :-)
I don't have any particular opinion here and rather leave it upto Tom how he would like to merge stuff.
Also what is the expected sync cadence of dts/upstream? Linux v6.10 will probably be released shortly after U-Boot v2024.07. So will next sync be to v6.10-dts if that happens in the U-Boot merge window or do we expect 2024.10 to use v6.9 DTs if the v6.10 release gets delayed and miss the U-Boot merge window?
Linux kernel typically have all major DT changes in -rc1 and fixes in later -rcX, so for next branch I would suggest an early sync to a v6.10-rcX-dts tag, and then sync to the final v6.10-dts tag once v6.10 gets released. That should give more time for testing, migration and cleanup using v6.10 DTs in time for a 2024.10 release.
I can see the reasoning for an aggressive DT syncing approach, it has been brought up in the past too. And the major reason for the current moderate sync approach [1] is to limit any DT ABI breakages for U-Boot, we are even prone to breakages with syncs against major Linux kernel releases (eg. v6.10-dts etc.). It has been a long time discussion topic where we have been advocating about requirements for DT ABI stability [2].
So having DT syncs done during the merge window will shorten the testing window for developers/maintainers. And more syncs means a multiplicative factor for testing. However, time will tell with more and more platforms adopting OF_UPSTREAM, if there are any real DT ABI breakages seen in the future. But surely if they are very rare then I am open to adopting aggressive DT sync approaches.
I agree that syncing multiple rcX tags may not be that helpful, but an approach where maybe rc1, rc2 or rc3 and then the final tag is merged or something similar. At least when we can foresee when next Linux version will be released close to an U-Boot release. At least early in U-Boot release cycle know what Linux version dts/upstream will be targeted.
My main concern is how to best handle new boards and features/drivers. E.g. for Rockchip the RK3588 SoC is under active development, new boards and features/drivers are actively added/fixed in upstream Linux.
New Rockchip boards have typically been added after board DT have been merged into linux maintainer tree. Now if we wait until merge window to do a dts/upstream sync, the result may be that it may take up to three U-Boot releases until a new board is easily added using dts/upstream.
Another approach could be that we add new boards using !OF_UPSTREAM once they are merged into linux maintainer tree. And then migrate the board to use OF_UPSTREAM once the board finally ends up in dts/upstream.
But that can also be problematic when board .dts-file start referencing nodes/symbols not yet added in the soc .dts-file in dts/upstream. Adding the "missing" but maintainer merged soc nodes to the soc u-boot.dtsi could be one way to work around such issue.
Anyway, some guidance, predictability and earlier sync related to dts/upstream would be much appreciated :-)
Regards, Jonas
[1] https://docs.u-boot.org/en/latest/develop/devicetree/control.html#resyncing-... [2] https://www.mail-archive.com/boot-architecture@lists.linaro.org/msg02162.htm...
-Sumit
Regards, Jonas