From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Rae Date: Wed, 11 Feb 2015 11:44:55 -0800 Subject: [U-Boot] [PATCH 2/2] fastboot: add support for "oem format" command In-Reply-To: <1422308941-23543-3-git-send-email-robh@kernel.org> References: <1422308941-23543-1-git-send-email-robh@kernel.org> <1422308941-23543-3-git-send-email-robh@kernel.org> Message-ID: <54DBB137.6050406@broadcom.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 15-01-26 01:49 PM, Rob Herring wrote: > Add "oem format" command to write partition table. This relies on the > env variable partitions to contain the list of partitions as required by > the gpt command. > > Note that this does not erase any data other than the partition table. > > Signed-off-by: Rob Herring > --- > drivers/usb/gadget/f_fastboot.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c > index e2fda86..f7d84bf 100644 > --- a/drivers/usb/gadget/f_fastboot.c > +++ b/drivers/usb/gadget/f_fastboot.c > @@ -516,6 +516,17 @@ static void cb_flash(struct usb_ep *ep, struct usb_request *req) > static void cb_oem(struct usb_ep *ep, struct usb_request *req) > { > char *cmd = req->buf; > +#ifdef CONFIG_FASTBOOT_FLASH > + if (strncmp("format", cmd + 4, 6) == 0) { > + char cmdbuf[32]; > + sprintf(cmdbuf, "gpt write mmc %x $partitions", > + CONFIG_FASTBOOT_FLASH_MMC_DEV); > + if (run_command(cmdbuf, 0)) > + fastboot_tx_write_str("FAIL"); > + else > + fastboot_tx_write_str("OKAY"); > + } else > +#endif > if (strncmp("unlock", cmd + 4, 8) == 0) { > fastboot_tx_write_str("FAILnot implemented"); > } > Please clarify the "partitions" env variable. For example, if I have (snippet from the 'mmc part' command): 3 0x00011000 0x000117ff "u-boot" attrs: 0x0000000000000000 type: ebcf4a1c-b9e7-8f06-9885-3bd8b4a46cff guid: d5b495eb-57aa-fc70-23bb-d1897fa4e840 7 0x0001c000 0x00023fff "kernel" attrs: 0x0000000000000000 type: 3c3ea4a6-5eaa-7f7c-1cb7-9374b8191c5d guid: 43b9c433-a106-68bf-aff4-890416fc87d7 what would the corresponding "partitions" env variable look like? Thanks, Steve PS. from doc/README.gpt: 148 Creating GPT partitions in U-Boot: 149 ============== 150 151 To restore GUID partition table one needs to: 152 1. Define partition layout in the environment. 153 Format of partitions layout: 154 "partitions=uuid_disk=...;name=u-boot,size=60MiB,uuid=...; 155 name=kernel,size=60MiB,uuid=...;" 156 or 157 "partitions=uuid_disk=${uuid_gpt_disk};name=${uboot_name}, 158 size=${uboot_size},uuid=${uboot_uuid};" 159 160 Fields 'name', 'size' and 'uuid' are mandatory for every partition. 161 The field 'start' is optional. 162 163 option: CONFIG_RANDOM_UUID 164 If any partition "UUID" no exists then it is randomly generated. 165 166 2. Define 'CONFIG_EFI_PARTITION' and 'CONFIG_CMD_GPT' 167 168 2. From u-boot prompt type: 169 gpt write mmc 0 $partitions How can dump the current "uuid_disk=" (not in the 'mmc part' command?) Is the "uuid=" parameter the 'type:' or the 'guid:' in the 'mmc part' command?