My use case involves having u-boot manage two firmware partitions, one for new firmware and another one for the “known good” firmware or “fallback” firmware, something similar to the following images.
The thing is, in order to make this work (and it does work on our imx6 and am335x projects), you have to set the absolute memory address where you store u-boot environment variables required to boot from those partitions.
Now, in order to be able to use these absolute memory addresses, I need to be able to know the size for everything won’t change (we normally use images generated by genimage).
If any partition (GPT here) changes the size you set up on the configuration files, then the absolute addresses are going to be wrong and the system will not boot.
I understand Nvidia seems to be generating the GPT based on the xml file provided and does not allow passing the GPT as an independent file.
It’s also not possible to write partitions in an arbitrary fashion since I would have used that as a workaround for my use case.
In addition it doesn’t respect the size provided in field for the GP1 partition on the xml file.
On the development kit I was able to bypass this issue by directly writing the desired image using dd (I didn’t even notice the issue since I would not use flash.sh at all).
Unfortunately that’s not possible on the production module in a straightforward manner.
In conclusion, I would like to be able to write my image to emmc / sd in an arbitrary fashion since this would greatly simplify the process.
If that was found to be undesirable, being able to properly control the size for this partition would still help me.