Remove duplicated code

Corresponding to flashrom svn r14 and coreboot v2 svn r1456.
diff --git a/jedec.c b/jedec.c
index bb4a874..2f153db 100644
--- a/jedec.c
+++ b/jedec.c
@@ -30,44 +30,89 @@
 
 int probe_jedec (struct flashchip * flash)
 {
-	volatile char * bios = flash->virt_addr;
-	unsigned char  id1, id2;
+        volatile char * bios = flash->virt_addr;
+        unsigned char  id1, id2;
 
-	*(volatile char *) (bios + 0x5555) = 0xAA;
-	*(volatile char *) (bios + 0x2AAA) = 0x55;
-	*(volatile char *) (bios + 0x5555) = 0x90;
+        *(volatile char *) (bios + 0x5555) = 0xAA;
+        myusec_delay(10);
+        *(volatile char *) (bios + 0x2AAA) = 0x55;
+        myusec_delay(10);
+        *(volatile char *) (bios + 0x5555) = 0x90;
+        myusec_delay(10);
 
-	myusec_delay(10);
+        id1 = *(volatile unsigned char *) bios;
+        id2 = *(volatile unsigned char *) (bios + 0x01);
 
-	id1 = *(volatile unsigned char *) bios;
-	id2 = *(volatile unsigned char *) (bios + 0x01);
-
-	*(volatile char *) (bios + 0x5555) = 0xAA;
-	*(volatile char *) (bios + 0x2AAA) = 0x55;
-	*(volatile char *) (bios + 0x5555) = 0xF0;
-
-	myusec_delay(10);
+        *(volatile char *) (bios + 0x5555) = 0xAA;
+        myusec_delay(10);
+        *(volatile char *) (bios + 0x2AAA) = 0x55;
+        myusec_delay(10);
+        *(volatile char *) (bios + 0x5555) = 0xF0;
+        myusec_delay(10);
 
 	printf("%s: id1 0x%x, id2 0x%x\n", __FUNCTION__, id1, id2);
-	if (id1 == flash->manufacture_id && id2 == flash->model_id)
-		return 1;
+        if (id1 == flash->manufacture_id && id2 == flash->model_id)
+                return 1;
 
-	return 0;
+        return 0;
+}
+
+int erase_sector_jedec (volatile char * bios, unsigned int page)
+{
+	/* Chip erase function does not exist for LPC mode on 49lf040.
+	 * Erase sector-by-sector instead. */
+	volatile unsigned char *Temp;
+
+        /*  Issue the Sector Erase command to 40LF040   */
+        Temp  = bios + 0x5555; 	/* set up address to be C000:5555h      */
+        *Temp = 0xAA;		/* write data 0xAA to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x2AAA;	/* set up address to be C000:2AAAh      */
+        *Temp = 0x55;		/* write data 0x55 to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x5555;	/* set up address to be C000:5555h      */
+        *Temp = 0x80;		/* write data 0x80 to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x5555;	/* set up address to be C000:5555h      */
+        *Temp = 0xAA;		/* write data 0xAA to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x2AAA;	/* set up address to be C000:2AAAh      */
+        *Temp = 0x55;		/* write data 0x55 to the address       */
+	myusec_delay(10);
+        Temp  = bios + page;	/* set up address to be the current sector */
+        *Temp = 0x30;		/* write data 0x30 to the address       */
+	
+	/* wait for Toggle bit ready         */
+	toggle_ready_jedec(bios);
+
+	return(0);
 }
 
 int erase_jedec (struct flashchip * flash)
 {
-	volatile char * bios = flash->virt_addr;
+	volatile unsigned char * bios = flash->virt_addr;
+	volatile unsigned char *Temp;
 
-	*(volatile char *) (bios + 0x5555) = 0xAA;
-	*(volatile char *) (bios + 0x2AAA) = 0x55;
-	*(volatile char *) (bios + 0x5555) = 0x80;
-
-	*(volatile char *) (bios + 0x5555) = 0xAA;
-	*(volatile char *) (bios + 0x2AAA) = 0x55;
-	*(volatile char *) (bios + 0x5555) = 0x10;
-
+        /*  Issue the Sector Erase command to 39SF020   */
+        Temp  = bios + 0x5555;	/* set up address to be C000:5555h      */
+        *Temp = 0xAA;		/* write data 0xAA to the address       */
 	myusec_delay(10);
+        Temp  = bios + 0x2AAA;	/* set up address to be C000:2AAAh      */
+        *Temp = 0x55;		/* write data 0x55 to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x5555;	/* set up address to be C000:5555h      */
+        *Temp = 0x80;		/* write data 0x80 to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x5555;	/* set up address to be C000:5555h      */
+        *Temp = 0xAA;		/* write data 0xAA to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x2AAA;	/* set up address to be C000:2AAAh      */
+        *Temp = 0x55;		/* write data 0x55 to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x5555;	/* set up address to be C000:5555h      */
+        *Temp = 0x10;		/* write data 0x55 to the address       */
+	myusec_delay(10);
+
 	toggle_ready_jedec(bios);
 
 	return(0);