summaryrefslogtreecommitdiffstats
path: root/flash.h
diff options
context:
space:
mode:
Diffstat (limited to 'flash.h')
-rw-r--r--flash.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/flash.h b/flash.h
new file mode 100644
index 0000000..3b763a7
--- /dev/null
+++ b/flash.h
@@ -0,0 +1,44 @@
+#include <sys/io.h>
+#include <unistd.h>
+
+struct flashchip {
+ char * name;
+ int manufacture_id;
+ int model_id;
+
+ char * virt_addr;
+ int total_size;
+ int page_size;
+
+ int (*probe) (struct flashchip * flash);
+ int (*erase) (struct flashchip * flash);
+ int (*write) (struct flashchip * flash, char * buf);
+};
+
+#define AMD_ID 0x01
+#define AM_29F040B 0xA4
+
+#define ATMEL_ID 0x1F /* Winbond Manufacture ID code */
+#define AT_29C040A 0xA4 /* Winbond w29c020c device code*/
+
+#define MX_ID 0xC2
+#define MX_29F002 0xB0
+
+#define SST_ID 0xBF /* SST Manufacturer ID[B code */
+#define SST_29EE020A 0x10 /* SST 29EE020 device code */
+#define SST_28SF040 0x04 /* SST 29EE040 device code */
+
+#define WINBOND_ID 0xDA /* Winbond Manufacture ID code */
+#define W_29C020C 0x45 /* Winbond w29c020c device code*/
+
+extern int probe_28sf040 (struct flashchip * flash);
+extern int erase_28sf040 (struct flashchip * flash);
+extern int write_28sf040 (struct flashchip * flash, char * buf);
+
+extern int probe_29f040b (struct flashchip * flash);
+extern int erase_29f040b (struct flashchip * flash);
+extern int write_29f040b (struct flashchip * flash, char * buf);
+
+extern int probe_29f002 (struct flashchip * flash);
+extern int erase_29f002 (struct flashchip * flash);
+extern int write_29f002 (struct flashchip * flash, char * buf);
OpenPOWER on IntegriCloud