|
@@ -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
|