[msm8x60]: Add support for fastboot erase.

Change-Id: I7ca19dbe4e8fbcc80a2dbb12d7b93b34c624719a
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index fb2a216..2884229 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -87,7 +87,8 @@
 int target_is_emmc_boot(void);
 void reboot_device(unsigned);
 void target_battery_charging_enable(unsigned enable, unsigned disconnect);
-
+unsigned int mmc_write (unsigned long long data_addr,
+			unsigned int data_len, unsigned int* in);
 
 static void ptentry_to_tag(unsigned **ptr, struct ptentry *ptn)
 {
@@ -439,6 +440,29 @@
 	fastboot_okay("");
 }
 
+
+void cmd_erase_mmc(const char *arg, void *data, unsigned sz)
+{
+	unsigned long long ptn = 0;
+	unsigned int out[512] = {0};
+
+	ptn = mmc_ptn_offset(arg);
+	if(ptn == 0) {
+		fastboot_fail("partition table doesn't exist");
+		return;
+	}
+
+
+	/* Simple inefficient version of erase. Just writing
+	   0 in first block */
+	if (mmc_write(ptn , 512, (unsigned int *)out)) {
+		fastboot_fail("failed to erase partition");
+		return;
+	}
+	fastboot_okay("");
+}
+
+
 void cmd_flash_mmc(const char *arg, void *data, unsigned sz)
 {
 	unsigned long long ptn = 0;
@@ -637,14 +661,16 @@
 		udc_init(&surf_udc_device);
 
 	fastboot_register("boot", cmd_boot);
-	fastboot_register("erase:", cmd_erase);
+
 	if (target_is_emmc_boot())
 	{
 		fastboot_register("flash:", cmd_flash_mmc);
+		fastboot_register("erase:", cmd_erase_mmc);
 	}
 	else
 	{
 		fastboot_register("flash:", cmd_flash);
+		fastboot_register("erase:", cmd_erase);
 	}
 
 	fastboot_register("continue", cmd_continue);