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 <r...@kernel.org>
---
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?
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot