Remove duplicated code
Corresponding to flashrom svn r14 and coreboot v2 svn r1456.
diff --git a/jedec.h b/jedec.h
index 40261fd..0b00c26 100644
--- a/jedec.h
+++ b/jedec.h
@@ -45,6 +45,8 @@
usleep(200);
}
+extern int erase_sector_jedec (volatile char * bios, unsigned int page);
+
extern __inline__ void write_page_jedec (volatile char * bios, char * src, volatile char * dst,
int page_size)
{
@@ -63,4 +65,40 @@
toggle_ready_jedec(dst-1);
}
+static __inline__ int write_sector_jedec(volatile char * bios,
+ unsigned char * src,
+ volatile unsigned char * dst,
+ unsigned int page_size)
+{
+ int i;
+ volatile char *Temp;
+
+ for (i = 0; i < page_size; i++) {
+ if (*dst != 0xff) {
+ printf("FATAL: dst %p not erased (val 0x%x\n", dst, *dst);
+ return(-1);
+ }
+ /* transfer data from source to destination */
+ if (*src == 0xFF) {
+ dst++, src++;
+ /* If the data is 0xFF, don't program it */
+ continue;
+ }
+ Temp = (bios + 0x5555);
+ *Temp = 0xAA;
+ Temp = bios + 0x2AAA;
+ *Temp = 0x55;
+ Temp = bios + 0x5555;
+ *Temp = 0xA0;
+ *dst = *src;
+ toggle_ready_jedec(bios);
+ if (*dst != *src)
+ printf("BAD! dst 0x%lx val 0x%x src 0x%x\n",
+ (unsigned long)dst, *dst, *src);
+ dst++, src++;
+ }
+
+ return(0);
+}
+
#endif /* !__JEDEC_H__ */