
On 15-01-23 09:38 AM, Rob Herring wrote:
On Fri, Dec 12, 2014 at 5:51 PM, Steve Rae srae@broadcom.com wrote:
Implement a feature to allow fastboot to write the downloaded image to the space reserved for the Protective MBR and the Primary GUID Partition Table. Additionally, prepare and write the Backup GUID Partition Table.
I've been looking at how to do the same thing here. This is an area that suffers from each vendor doing whatever they want. Using vendor download/flash tools here is painful. They are all different because that is where the value add is. ;) What tool do you use on the host side to create the image? I have seen some vendor code to do it, or you could use parted plus a disk file and extract the partition table from it. I find either method a bit fragile and non-standard IMHO.
We use an internal tool -- however, I also note that ALL of the source code for our tool is "GPL-2.0+" (expect for one file which is Public Domain) Is U-Boot (Denx) interested in supporting a "host tool"?
The 2 options I've come up with are 1) enable USB MS and use whatever host side tool you like or 2) use the existing "gpt write" command in u-boot and tie that into fastboot "oem format" command. The advantage and disadvantage of the latter is that it hides the partitioning details in u-boot from the user, but requires changing the u-boot env to change partition layout. The partitioning requirements are pretty SOC specific it seems.
We also have code which creates the GPT tables from a "fastboot oem format" command, and (if I understand correctly) we have code that implements a "gpt" command line, which creates the GPT tables from env variables... If there is interest here, I could investigate further.
I'm not saying we can't support both, but having some standardization here would be good.
Rob
I wasn't trying to promote an exclusive solution with this patch (which has been accepted - Thanks!). I was just trying to have an incremental change to the existing "fastboot flash" command (to handle the GPT Tables).
Thanks, Steve
[... snip ...]