Re: [U-Boot] [PATCH v6 16/18] fastboot: Add support for 'oem format' command

2018-05-22 Thread Simon Glass
On 22 May 2018 at 03:23, Alex Kiernan  wrote:
> Introduce 'oem format' which matches the USB implementation, guard this
> with CONFIG_FASTBOOT_CMD_OEM_FORMAT so that you can configure it out.
>
> Signed-off-by: Alex Kiernan 
> ---
>
> Changes in v6: None
> Changes in v5:
> - new
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
>
>  drivers/fastboot/Kconfig  |  8 
>  drivers/fastboot/fb_command.c | 33 +
>  include/fastboot.h|  3 +++
>  3 files changed, 44 insertions(+)

Reviewed-by: Simon Glass 
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v6 16/18] fastboot: Add support for 'oem format' command

2018-05-22 Thread Alex Kiernan
Introduce 'oem format' which matches the USB implementation, guard this
with CONFIG_FASTBOOT_CMD_OEM_FORMAT so that you can configure it out.

Signed-off-by: Alex Kiernan 
---

Changes in v6: None
Changes in v5:
- new

Changes in v4: None
Changes in v3: None
Changes in v2: None

 drivers/fastboot/Kconfig  |  8 
 drivers/fastboot/fb_command.c | 33 +
 include/fastboot.h|  3 +++
 3 files changed, 44 insertions(+)

diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
index 625f016600..bc25ea1d9c 100644
--- a/drivers/fastboot/Kconfig
+++ b/drivers/fastboot/Kconfig
@@ -124,6 +124,14 @@ config FASTBOOT_MBR_NAME
  specified on the "fastboot flash" command line matches the value
  defined here. The default target name for updating MBR is "mbr".
 
+config FASTBOOT_CMD_OEM_FORMAT
+   bool "Enable the 'oem format' command"
+   depends on FASTBOOT_FLASH_MMC && CMD_GPT
+   help
+ Add support for the "oem format" command from a client. This
+ relies on the env variable partitions to contain the list of
+ partitions as required by the gpt command.
+
 endif # FASTBOOT
 
 endmenu
diff --git a/drivers/fastboot/fb_command.c b/drivers/fastboot/fb_command.c
index af4f500694..200f9910c5 100644
--- a/drivers/fastboot/fb_command.c
+++ b/drivers/fastboot/fb_command.c
@@ -34,6 +34,9 @@ static void flash(char *, char *);
 static void erase(char *, char *);
 #endif
 static void reboot_bootloader(char *, char *);
+#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_FORMAT)
+static void oem_format(char *, char *);
+#endif
 
 static const struct {
const char *command;
@@ -77,6 +80,12 @@ static const struct {
.command = "set_active",
.dispatch = okay
},
+#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_FORMAT)
+   [FASTBOOT_COMMAND_OEM_FORMAT] = {
+   .command = "oem format",
+   .dispatch = oem_format,
+   },
+#endif
 };
 
 /**
@@ -300,3 +309,27 @@ static void reboot_bootloader(char *cmd_parameter, char 
*response)
else
fastboot_okay(NULL, response);
 }
+
+#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_FORMAT)
+/**
+ * oem_format() - Execute the OEM format command
+ *
+ * @cmd_parameter: Pointer to command parameter
+ * @response: Pointer to fastboot response buffer
+ */
+static void oem_format(char *cmd_parameter, char *response)
+{
+   char cmdbuf[32];
+
+   if (!env_get("partitions")) {
+   fastboot_fail("partitions not set", response);
+   } else {
+   sprintf(cmdbuf, "gpt write mmc %x $partitions",
+   CONFIG_FASTBOOT_FLASH_MMC_DEV);
+   if (run_command(cmdbuf, 0))
+   fastboot_fail("", response);
+   else
+   fastboot_okay(NULL, response);
+   }
+}
+#endif
diff --git a/include/fastboot.h b/include/fastboot.h
index 9a3d5ba693..1933b1d98e 100644
--- a/include/fastboot.h
+++ b/include/fastboot.h
@@ -33,6 +33,9 @@ enum {
FASTBOOT_COMMAND_REBOOT,
FASTBOOT_COMMAND_REBOOT_BOOTLOADER,
FASTBOOT_COMMAND_SET_ACTIVE,
+#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_FORMAT)
+   FASTBOOT_COMMAND_OEM_FORMAT,
+#endif
 
FASTBOOT_COMMAND_COUNT
 };
-- 
2.17.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot