Skip to contentSkip to conversation

Fastboot OEM commands

PATCH New Rob Herring 4 participants 14 messages Jan 26, 2015 – Feb 12, 2015 USB

lore
Share & tools
lore
#0 lore raw

cover Fastboot OEM commands

This series adds fastboot oem sub-command infrastructure and support for "oem format" command which partitions and formats the storage device. The partition layout is set within the u-boot env and is implemented using the "gpt write" command.

Rob

Michael Scott (1):
fastboot: add "fastboot oem" command support

Rob Herring (1):
fastboot: add support for "oem format" command

 drivers/usb/gadget/f_fastboot.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
Signature · 1 line
2.1.0
#1 lore raw

PATCH 1/2 fastboot: add "fastboot oem" command support

From: Michael Scott <[email protected]>

Add code stub to handle "fastboot oem __" command. As unlock is a common fastboot command, distinguish that it is not implemented.

---
 drivers/usb/gadget/f_fastboot.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
drivers/usb/gadget/f_fastboot.c +15 -0
index 310175a..e2fda86 100644
@@ -513,6 +513,17 @@ static void cb_flash(struct usb_ep *ep, struct usb_request *req)
 }
 #endif
 
+static void cb_oem(struct usb_ep *ep, struct usb_request *req)
+{
+	char *cmd = req->buf;
+	if (strncmp("unlock", cmd + 4, 8) == 0) {
+		fastboot_tx_write_str("FAILnot implemented");
+	}
+	else {
+		fastboot_tx_write_str("FAILunknown oem command");
+	}
+}
+
 struct cmd_dispatch_info {
 	char *cmd;
 	void (*cb)(struct usb_ep *ep, struct usb_request *req);
@@ -541,6 +552,10 @@ static const struct cmd_dispatch_info cmd_dispatch_info[] = {
 		.cb = cb_flash,
 	},
 #endif
+	{
+		.cmd = "oem",
+		.cb = cb_oem,
+	},
 };
 
 static void rx_handler_command(struct usb_ep *ep, struct usb_request *req)
Signature · 1 line
2.1.0
#2 lore raw

PATCH 1/2 fastboot: add "fastboot oem" command support

Hi Rob,

Quoted 18 lines

From: Michael Scott <[email protected]>

Add code stub to handle "fastboot oem __" command. As unlock is a common fastboot command, distinguish that it is not implemented.

---
 drivers/usb/gadget/f_fastboot.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
(quoted diff) +0 -0

b/drivers/usb/gadget/f_fastboot.c index 310175a..e2fda86 100644

drivers/usb/gadget/f_fastboot.c +0 -0
@@ -513,6 +513,17 @@ static void cb_flash(struct usb_ep *ep, struct
 usb_request *req) }
 #endif

drivers/usb/gadget/f_fastboot.c static void cb_flash(struct usb_ep *ep, struct · line 524

Quoted 10 lines
drivers/usb/gadget/f_fastboot.c +9 -0
 
+static void cb_oem(struct usb_ep *ep, struct usb_request *req)
+{
+	char *cmd = req->buf;
+	if (strncmp("unlock", cmd + 4, 8) == 0) {
+		fastboot_tx_write_str("FAILnot implemented");
+	}
+	else {
+		fastboot_tx_write_str("FAILunknown oem command");
+	}

Just a minor comment - those braces could be removed.

BTW: Marek shall I take those patches to dfu tree or would you take them to -usb tree ?

Quoted 17 lines
drivers/usb/gadget/f_fastboot.c +6 -0
+}
+
 struct cmd_dispatch_info {
 	char *cmd;
 	void (*cb)(struct usb_ep *ep, struct usb_request *req);
@@ -541,6 +552,10 @@ static const struct cmd_dispatch_info
 cmd_dispatch_info[] = { .cb = cb_flash,
 	},
 #endif
+	{
+		.cmd = "oem",
+		.cb = cb_oem,
+	},
 };
 
 static void rx_handler_command(struct usb_ep *ep, struct usb_request

*req)

Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
#3 lore raw

PATCH 1/2 fastboot: add "fastboot oem" command support

Quoted 1 line · Lukasz Majewski

Hi Rob,

Hi all!

Quoted 33 lines
Quoted 20 lines

From: Michael Scott <[email protected]>

Add code stub to handle "fastboot oem __" command. As unlock is a common fastboot command, distinguish that it is not implemented.

---

 drivers/usb/gadget/f_fastboot.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
(quoted diff) +0 -0

b/drivers/usb/gadget/f_fastboot.c index 310175a..e2fda86 100644

drivers/usb/gadget/f_fastboot.c +0 -0
@@ -513,6 +513,17 @@ static void cb_flash(struct usb_ep *ep, struct
 usb_request *req) }
 
 #endif

drivers/usb/gadget/f_fastboot.c static void cb_flash(struct usb_ep *ep, struct · line 525

Quoted 10 lines
drivers/usb/gadget/f_fastboot.c +9 -0
 
+static void cb_oem(struct usb_ep *ep, struct usb_request *req)
+{
+	char *cmd = req->buf;
+	if (strncmp("unlock", cmd + 4, 8) == 0) {
+		fastboot_tx_write_str("FAILnot implemented");
+	}
+	else {
+		fastboot_tx_write_str("FAILunknown oem command");
+	}

Just a minor comment - those braces could be removed.

Quoted 2 lines

BTW: Marek shall I take those patches to dfu tree or would you take them to -usb tree ?

Take them through DFU please, thank you!

Best regards,
Marek Vasut

#4 lore raw

PATCH 1/2 fastboot: add "fastboot oem" command support

In reply to Lukasz Majewski
Quoted 21 lines · Lukasz Majewski

Hi Rob,

Quoted 19 lines

From: Michael Scott <[email protected]>

Add code stub to handle "fastboot oem __" command. As unlock is a common fastboot command, distinguish that it is not implemented.

---
 drivers/usb/gadget/f_fastboot.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
(quoted diff) +0 -0

b/drivers/usb/gadget/f_fastboot.c index 310175a..e2fda86 100644

drivers/usb/gadget/f_fastboot.c +0 -0
@@ -513,6 +513,17 @@ static void cb_flash(struct usb_ep *ep, struct
 usb_request *req) }
 #endif
 
Quoted 11 lines

drivers/usb/gadget/f_fastboot.c static void cb_flash(struct usb_ep *ep, struct usb_request *req) · line 524

Quoted 9 lines
drivers/usb/gadget/f_fastboot.c +9 -0
+static void cb_oem(struct usb_ep *ep, struct usb_request *req)
+{
+     char *cmd = req->buf;
+     if (strncmp("unlock", cmd + 4, 8) == 0) {
+             fastboot_tx_write_str("FAILnot implemented");
+     }
+     else {
+             fastboot_tx_write_str("FAILunknown oem command");
+     }

Just a minor comment - those braces could be removed.

When the format command is added in the next patch, then they need to be added back if you want all clauses to be the same (braces or not).

Rob

Quoted 29 lines

BTW: Marek shall I take those patches to dfu tree or would you take them to -usb tree ?

Quoted 16 lines
drivers/usb/gadget/f_fastboot.c +6 -0
+}
+
 struct cmd_dispatch_info {
      char *cmd;
      void (*cb)(struct usb_ep *ep, struct usb_request *req);
@@ -541,6 +552,10 @@ static const struct cmd_dispatch_info
 cmd_dispatch_info[] = { .cb = cb_flash,
      },
 #endif
+     {
+             .cmd = "oem",
+             .cb = cb_oem,
+     },
 };
 
 static void rx_handler_command(struct usb_ep *ep, struct usb_request
Quoted 1 line

*req)

--
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

#5 lore raw

PATCH 1/2 fastboot: add "fastboot oem" command support

Hi Rob,

Quoted 35 lines
Quoted 21 lines · Lukasz Majewski

Hi Rob,

Quoted 19 lines

From: Michael Scott <[email protected]>

Add code stub to handle "fastboot oem __" command. As unlock is a common fastboot command, distinguish that it is not implemented.

---
 drivers/usb/gadget/f_fastboot.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
(quoted diff) +0 -0

b/drivers/usb/gadget/f_fastboot.c index 310175a..e2fda86 100644

drivers/usb/gadget/f_fastboot.c +0 -0
@@ -513,6 +513,17 @@ static void cb_flash(struct usb_ep *ep, struct
 usb_request *req) }
 #endif
 
Quoted 11 lines

drivers/usb/gadget/f_fastboot.c static void cb_flash(struct usb_ep *ep, struct usb_request *req) · line 524

Quoted 9 lines
drivers/usb/gadget/f_fastboot.c +9 -0
+static void cb_oem(struct usb_ep *ep, struct usb_request *req)
+{
+     char *cmd = req->buf;
+     if (strncmp("unlock", cmd + 4, 8) == 0) {
+             fastboot_tx_write_str("FAILnot implemented");
+     }
+     else {
+             fastboot_tx_write_str("FAILunknown oem command");
+     }

Just a minor comment - those braces could be removed.

Quoted 2 lines

When the format command is added in the next patch, then they need to be added back if you want all clauses to be the same (braces or not).

Then the patch can stay as it is. Thanks for explanation :-)

Quoted 32 lines

Rob

Quoted 29 lines

BTW: Marek shall I take those patches to dfu tree or would you take them to -usb tree ?

Quoted 16 lines
drivers/usb/gadget/f_fastboot.c +6 -0
+}
+
 struct cmd_dispatch_info {
      char *cmd;
      void (*cb)(struct usb_ep *ep, struct usb_request *req);
@@ -541,6 +552,10 @@ static const struct cmd_dispatch_info
 cmd_dispatch_info[] = { .cb = cb_flash,
      },
 #endif
+     {
+             .cmd = "oem",
+             .cb = cb_oem,
+     },
 };
 
 static void rx_handler_command(struct usb_ep *ep, struct
Quoted 1 line

usb_request *req)

--
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
#6 lore raw

PATCH 1/2 fastboot: add "fastboot oem" command support

In reply to Rob Herring
Quoted 35 lines · Rob Herring

From: Michael Scott <[email protected]>

Add code stub to handle "fastboot oem __" command. As unlock is a common fastboot command, distinguish that it is not implemented.

---
  drivers/usb/gadget/f_fastboot.c | 15 +++++++++++++++
  1 file changed, 15 insertions(+)
drivers/usb/gadget/f_fastboot.c +11 -0
index 310175a..e2fda86 100644
@@ -513,6 +513,17 @@ static void cb_flash(struct usb_ep *ep, struct usb_request *req)
  }
  #endif
 
+static void cb_oem(struct usb_ep *ep, struct usb_request *req)
+{
+	char *cmd = req->buf;
+	if (strncmp("unlock", cmd + 4, 8) == 0) {
+		fastboot_tx_write_str("FAILnot implemented");
+	}
+	else {
+		fastboot_tx_write_str("FAILunknown oem command");
+	}
+}
+
  struct cmd_dispatch_info {
  	char *cmd;
  	void (*cb)(struct usb_ep *ep, struct usb_request *req);

drivers/usb/gadget/f_fastboot.c static const struct cmd_dispatch_info cmd_dispatch_info[] = { · line 561

Quoted 10 lines
drivers/usb/gadget/f_fastboot.c +4 -0
@@ -541,6 +552,10 @@ static const struct cmd_dispatch_info cmd_dispatch_info[] = {
  		.cb = cb_flash,
  	},
  #endif
+	{
+		.cmd = "oem",
+		.cb = cb_oem,
+	},
  };
 
  static void rx_handler_command(struct usb_ep *ep, struct usb_request *req)
#7 lore raw

PATCH 1/2 fastboot: add "fastboot oem" command support

In reply to Rob Herring

Hi Rob,

Quoted 44 lines

From: Michael Scott <[email protected]>

Add code stub to handle "fastboot oem __" command. As unlock is a common fastboot command, distinguish that it is not implemented.

---
 drivers/usb/gadget/f_fastboot.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
(quoted diff) +0 -0

b/drivers/usb/gadget/f_fastboot.c index 310175a..e2fda86 100644

drivers/usb/gadget/f_fastboot.c +15 -0
@@ -513,6 +513,17 @@ static void cb_flash(struct usb_ep *ep, struct
 usb_request *req) }
 #endif
 
+static void cb_oem(struct usb_ep *ep, struct usb_request *req)
+{
+	char *cmd = req->buf;
+	if (strncmp("unlock", cmd + 4, 8) == 0) {
+		fastboot_tx_write_str("FAILnot implemented");
+	}
+	else {
+		fastboot_tx_write_str("FAILunknown oem command");
+	}
+}
+
 struct cmd_dispatch_info {
 	char *cmd;
 	void (*cb)(struct usb_ep *ep, struct usb_request *req);
@@ -541,6 +552,10 @@ static const struct cmd_dispatch_info
 cmd_dispatch_info[] = { .cb = cb_flash,
 	},
 #endif
+	{
+		.cmd = "oem",
+		.cb = cb_oem,
+	},
 };
 
 static void rx_handler_command(struct usb_ep *ep, struct usb_request
Quoted 1 line

*req)

Applied to u-boot-dfu.

Thanks.

Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
#8 lore raw

PATCH 2/2 fastboot: add support for "oem format" command

In reply to Rob Herring

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.

---
 drivers/usb/gadget/f_fastboot.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
drivers/usb/gadget/f_fastboot.c +11 -0
index e2fda86..f7d84bf 100644
@@ -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");
 	}
Signature · 1 line
2.1.0
#9 lore raw

PATCH 2/2 fastboot: add support for "oem format" command

Hi Rob,

Quoted 23 lines

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.

---
 drivers/usb/gadget/f_fastboot.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
(quoted diff) +0 -0

b/drivers/usb/gadget/f_fastboot.c index e2fda86..f7d84bf 100644

drivers/usb/gadget/f_fastboot.c +0 -0
@@ -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) {

drivers/usb/gadget/f_fastboot.c +4 -0
 	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",

drivers/usb/gadget/f_fastboot.c static void cb_flash(struct usb_ep *ep, struct usb_request *req) · line 532

Quoted 10 lines
drivers/usb/gadget/f_fastboot.c +7 -0
+			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");
 	}
Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
#10 lore raw

PATCH 2/2 fastboot: add support for "oem format" command

In reply to Rob Herring
Quoted 24 lines · Rob Herring

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.

---
  drivers/usb/gadget/f_fastboot.c | 11 +++++++++++
  1 file changed, 11 insertions(+)
drivers/usb/gadget/f_fastboot.c +4 -0
index e2fda86..f7d84bf 100644
@@ -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",

drivers/usb/gadget/f_fastboot.c static void cb_flash(struct usb_ep *ep, struct usb_request *req) · line 532

Quoted 10 lines
drivers/usb/gadget/f_fastboot.c +7 -0
+			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");
  	}
#11 lore raw

PATCH 2/2 fastboot: add support for "oem format" command

In reply to Rob Herring

Hi Rob,

Quoted 23 lines

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.

---
 drivers/usb/gadget/f_fastboot.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
(quoted diff) +0 -0

b/drivers/usb/gadget/f_fastboot.c index e2fda86..f7d84bf 100644

drivers/usb/gadget/f_fastboot.c +0 -0
@@ -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) {

drivers/usb/gadget/f_fastboot.c +4 -0
 	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",

drivers/usb/gadget/f_fastboot.c static void cb_flash(struct usb_ep *ep, struct usb_request *req) · line 532

Quoted 10 lines
drivers/usb/gadget/f_fastboot.c +7 -0
+			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");
 	}

Applied to u-boot-dfu.

Thanks.

Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
#12 lore raw

PATCH 2/2 fastboot: add support for "oem format" command

In reply to Rob Herring
Quoted 24 lines · Rob Herring

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.

---
  drivers/usb/gadget/f_fastboot.c | 11 +++++++++++
  1 file changed, 11 insertions(+)
drivers/usb/gadget/f_fastboot.c +4 -0
index e2fda86..f7d84bf 100644
@@ -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",

drivers/usb/gadget/f_fastboot.c static void cb_flash(struct usb_ep *ep, struct usb_request *req) · line 532

Quoted 10 lines
drivers/usb/gadget/f_fastboot.c +7 -0
+			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?

#13 lore raw

PATCH 2/2 fastboot: add support for "oem format" command

Quoted 44 lines · Steve Rae
Quoted 35 lines · Rob Herring

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.

---
  drivers/usb/gadget/f_fastboot.c | 11 +++++++++++
  1 file changed, 11 insertions(+)
drivers/usb/gadget/f_fastboot.c +11 -0
index e2fda86..f7d84bf 100644
@@ -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");
Quoted 2 lines
        }

Please clarify the "partitions" env variable.
For example, if I have (snippet from the 'mmc part' command):
3 0x00011000 0x000117ff "u-boot"

Quoted 8 lines
        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?

Here is what I have:

"partitions=" \
"name=DTIM,start=0x00200000,size=0x200000;" \
"name=recovery,start=0x00400000,size=0xb00000;" \
"name=bootloader,start=0x00F00000,size=0x100000;" \
"name=boot,start=0x01000000,size=0x1000000;" \
"name=dtb,start=0x02000000,size=0x1000000;" \
"name=system,start=0x03000000,size=0x30000000;" \
"name=vendor,start=0x33000000,size=0x10000000;" \
"name=cache,start=0x43000000,size=0x20000000;" \
"name=userdata,start=0x63000000,size=0x15d000000\0"

The main difference from mmc partition dump is start and size in bytes rather than start and end in blocks.

Quoted 8 lines

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?

There may not be a way to get the disk uuid currently other than dumping the raw partition table hex. The uuid is the guid. The type used is something corresponds "Windows data" which seems strange. Probably that should be configurable, but it doesn't seem to really matter.

Rob