flash.h 2.07 KB
Newer Older
1 2 3 4 5 6 7 8
#include <sys/io.h>
#include <unistd.h>

struct flashchip {
	char * name;
	int manufacture_id;
	int model_id;

Ronald G. Minnich's avatar
Fixes  
Ronald G. Minnich committed
9
	volatile char * virt_addr;
10 11 12 13 14 15
	int total_size;
	int page_size;

	int (*probe) (struct flashchip * flash);
	int (*erase) (struct flashchip * flash);
	int (*write) (struct flashchip * flash, char * buf);
Ronald G. Minnich's avatar
Ronald G. Minnich committed
16 17
	int fd_mem;
	volatile char *virt_addr_2;
18 19 20 21 22 23 24 25 26 27 28 29 30 31
};

#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	*/
Ronald G. Minnich's avatar
Ronald G. Minnich committed
32
#define SST_39SF020       0xB6    /* SST 39SF020  device        */
Ollie Lho's avatar
Ollie Lho committed
33
#define SST_39VF020       0xD6    /* SST 39SF020  device        */
34 35

#define WINBOND_ID        0xDA	/* Winbond Manufacture ID code	*/
Andrew Ip's avatar
Andrew Ip committed
36
#define W_29C011          0xC1	/* Winbond w29c011 device code*/
37
#define W_29C020C         0x45	/* Winbond w29c020c device code*/
Andrew Ip's avatar
Andrew Ip committed
38
#define W_49F002U         0x0B	/* Winbond w29c020c device code*/
39

40 41 42
#define ST_ID       	  0x20	
#define ST_M29F400BT      0xD5

43 44 45 46
extern int probe_28sf040 (struct flashchip * flash);
extern int erase_28sf040 (struct flashchip * flash);
extern int write_28sf040 (struct flashchip * flash, char * buf);

Ronald G. Minnich's avatar
Ronald G. Minnich committed
47 48 49 50
extern int probe_39sf020 (struct flashchip * flash);
extern int erase_39sf020 (struct flashchip * flash);
extern int write_39sf020 (struct flashchip * flash, char * buf);

51 52 53 54 55 56 57
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);
Andrew Ip's avatar
Andrew Ip committed
58 59 60 61

extern int probe_49f002 (struct flashchip * flash);
extern int erase_49f002 (struct flashchip * flash);
extern int write_49f002 (struct flashchip * flash, char * buf);