flash.h 2.1 KB
Newer Older
Ronald G. Minnich's avatar
Ronald G. Minnich committed
1 2 3
#ifndef __FLASH_H__
#define __FLASH_H__ 1

4 5 6 7 8 9 10 11
#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
12
	volatile char * virt_addr;
13 14 15 16 17
	int total_size;
	int page_size;

	int (*probe) (struct flashchip * flash);
	int (*erase) (struct flashchip * flash);
Ronald G. Minnich's avatar
Ronald G. Minnich committed
18 19 20
	int (*write) (struct flashchip * flash, unsigned char * buf);
	int (*read)  (struct flashchip * flash, unsigned char * buf);

Ronald G. Minnich's avatar
Ronald G. Minnich committed
21 22
	int fd_mem;
	volatile char *virt_addr_2;
23 24 25 26 27 28 29 30 31 32 33 34 35 36
};

#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
37
#define SST_39SF020       0xB6    /* SST 39SF020  device        */
David Hendricks's avatar
David Hendricks committed
38 39
#define SST_39VF020       0xD6    /* SST 39VF020  device        */
#define SST_49LF040	  0x51	/* SST 49LF040 device */
40 41 42 43 44
#define SST_49LF080A	  0x5B	/* SST 48LF080A device */
#define SST_49LF002A	  0x57	/* SST 49LF002A device*/
#define SST_49LF003A	  0x1B	/* SST 49LF003A device*/
#define SST_49LF004A	  0x60	/* SST 49LF004A device*/
#define SST_49LF008A	  0x5A	/* SST 49LF008A device*/
45

46 47 48
#define PMC_ID            0x9D  /* PMC Manufacturer ID[B code   */
#define PMC_49FL004       0x6E  /* PMC 49FL004 device code      */

49
#define WINBOND_ID        0xDA	/* Winbond Manufacture ID code	*/
Andrew Ip's avatar
Andrew Ip committed
50
#define W_29C011          0xC1	/* Winbond w29c011 device code*/
51
#define W_29C020C         0x45	/* Winbond w29c020c device code*/
Andrew Ip's avatar
Andrew Ip committed
52
#define W_49F002U         0x0B	/* Winbond w29c020c device code*/
53

54 55 56
#define ST_ID       	  0x20	
#define ST_M29F400BT      0xD5

Ronald G. Minnich's avatar
Ronald G. Minnich committed
57 58 59 60
#define MSYSTEMS_ID       0x156f
#define MSYSTEMS_MD2200   0xdb /* ? */
#define MSYSTEMS_MD2800   0x30 /* hmm -- both 0x30 */
#define MSYSTEMS_MD2802   0x30 /* hmm -- both 0x30 */
61

Ronald G. Minnich's avatar
Ronald G. Minnich committed
62
extern void myusec_delay(int time);
63 64
extern void myusec_calibrate_delay();
extern int enable_flash_write(void);
Ronald G. Minnich's avatar
Ronald G. Minnich committed
65
#endif /* !__FLASH_H__ */