qmod: Add 'e' command for erasing the EEPROM

Change-Id: Id7cb0db568dd3e9d796829bf0019d63048612998
diff --git a/firmware/libboard/qmod/source/board_qmod.c b/firmware/libboard/qmod/source/board_qmod.c
index 47a4cb6..acd090f 100644
--- a/firmware/libboard/qmod/source/board_qmod.c
+++ b/firmware/libboard/qmod/source/board_qmod.c
@@ -102,6 +102,26 @@
 	return 0;
 }
 
+static int erase_hub_eeprom(void)
+{
+	int i;
+
+	/* wait */
+	mdelay(100);
+
+	TRACE_INFO("Erasing EEPROM...\n\r");
+	/* write the EEPROM once */
+	for (i = 0; i < 256; i++) {
+		int rc = eeprom_write_byte(0x50, i, 0xff);
+		/* if the result was negative, repeat that write */
+		if (rc < 0)
+			i--;
+	}
+
+	return 0;
+}
+
+
 static void board_exec_dbg_cmd_st12only(int ch)
 {
 	uint32_t addr, val;
@@ -114,6 +134,9 @@
 	case 'E':
 		write_hub_eeprom();
 		break;
+	case 'e':
+		erase_hub_eeprom();
+		break;
 	case 'O':
 		printf("Setting PRTPWR_OVERRIDE\n\r");
 		PIO_Set(&pin_hubpwr_override);
@@ -161,6 +184,7 @@
 		printf("\tR\treset SAM3\n\r");
 		if (qmod_sam3_is_12()) {
 			printf("\tE\tprogram EEPROM\n\r");
+			printf("\te\tErase EEPROM\n\r");
 			printf("\tO\tEnable PRTPWR_OVERRIDE\n\r");
 			printf("\to\tDisable PRTPWR_OVERRIDE\n\r");
 			printf("\tH\tRelease HUB RESET (high)\n\r");