On Tue, Dec 06, 2022 at 08:02:45PM +0100, Marek Vasut wrote:
On 12/6/22 11:16, Miquel Raynal wrote:
Hi Francesco,
Hello everyone,
francesco@dolcini.it wrote on Mon, 5 Dec 2022 20:07:18 +0100:
On Mon, Dec 05, 2022 at 07:52:08PM +0100, Marek Vasut wrote:
On 12/5/22 19:18, Miquel Raynal wrote:
marex@denx.de wrote on Mon, 5 Dec 2022 19:07:14 +0100:
On 12/5/22 18:58, Miquel Raynal wrote: > , it's not > complex to do, there are plenty of examples. This would be IMHO a > better step ahead rather than just a cell change. Anyway, I don't mind > reverting this once we've sorted this mess out and fixed U-Boot.
Won't we still have issues with older bootloader versions which paste partitions directly into this &gpmi {} node, and which needs to be fixed up in the parser in the end ?
I believe fdt_fixup_mtdparts() should be killed, so we should no longer have this problem.
The fdt_fixup_mtdparts is U-Boot code. If contemporary Linux kernel is booted with ancient U-Boot, then you would still get defective DT passed to Linux, and that should be fixed up by Linux. Removing fdt_fixup_mtdparts() from current mainline U-Boot won't solve this problem.
I think this is also what Francesco is trying to convey (please correct me if I'm wrong).
If we can get rid of fdt_fixup_mtdparts(), it means someone has to create the partitions. I guess the easy way would be to just provide mtdparts to Linux like all the other boards and let Linux deal with it.
This is based on an assumption that the platform kernel command line can be updated to insert such a workaround. If Francesco cannot update the bootloader, the kernel command line may be immutable all the same.
Exactly.
What I can do is update the latest stuff and enable people to upgrade, eventually. But here we are talking about a board that is just generally available in high volume to a multitude of people since years ... in practice the vast majority of the users will not upgrade it.
Then we can just assume in Linux that perhaps if the partitions are invalid (#size-cell is wrong?) then we should just stop their creation and fallback to another mechanism instead of failing entirely. This way no need for hackish changes in the parsers and compatibility is still valid with old U-Boot (if mtdparts was provided on the cmdline, to be checked). Otherwise we'll have to deal with it in Linux, that's a pity.
I am very much banking toward -- fix it up in the parser, just like any other firmware issue.
I agree again.
Esp. since the fix up is printing a warning, and it is like a 2-liner patch.
Here we might assess if we need more to handle the other weird situation in which a `partitions{}` node is present, U-Boot ignores it and the kernel fails to detect the partitions. As of today colibri-imx7 is not affected by this.
Francesco