Added support for SST49LF040
[coreboot.git] / util / flash_and_burn / flash.h
1 #ifndef __FLASH_H__
2 #define __FLASH_H__ 1
3
4 #include <sys/io.h>
5 #include <unistd.h>
6
7 struct flashchip {
8         char * name;
9         int manufacture_id;
10         int model_id;
11
12         volatile char * virt_addr;
13         int total_size;
14         int page_size;
15
16         int (*probe) (struct flashchip * flash);
17         int (*erase) (struct flashchip * flash);
18         int (*write) (struct flashchip * flash, unsigned char * buf);
19         int (*read)  (struct flashchip * flash, unsigned char * buf);
20
21         int fd_mem;
22         volatile char *virt_addr_2;
23 };
24
25 #define AMD_ID            0x01
26 #define AM_29F040B        0xA4
27
28 #define ATMEL_ID          0x1F    /* Winbond Manufacture ID code        */
29 #define AT_29C040A        0xA4    /* Winbond w29c020c device code*/
30
31 #define MX_ID             0xC2
32 #define MX_29F002         0xB0
33
34 #define SST_ID            0xBF  /* SST Manufacturer ID[B code   */
35 #define SST_29EE020A      0x10  /* SST 29EE020 device code      */
36 #define SST_28SF040       0x04    /* SST 29EE040 device code    */
37 #define SST_39SF020       0xB6    /* SST 39SF020  device        */
38 #define SST_39VF020       0xD6    /* SST 39VF020  device        */
39 #define SST_49LF040       0x51  /* SST 49LF040 device */
40
41 #define PMC_ID            0x9D  /* PMC Manufacturer ID[B code   */
42 #define PMC_49FL004       0x6E  /* PMC 49FL004 device code      */
43
44 #define WINBOND_ID        0xDA  /* Winbond Manufacture ID code  */
45 #define W_29C011          0xC1  /* Winbond w29c011 device code*/
46 #define W_29C020C         0x45  /* Winbond w29c020c device code*/
47 #define W_49F002U         0x0B  /* Winbond w29c020c device code*/
48
49 #define ST_ID             0x20  
50 #define ST_M29F400BT      0xD5
51
52 #define MSYSTEMS_ID       0x156f
53 #define MSYSTEMS_MD2200   0xdb /* ? */
54 #define MSYSTEMS_MD2800   0x30 /* hmm -- both 0x30 */
55 #define MSYSTEMS_MD2802   0x30 /* hmm -- both 0x30 */
56
57 extern void myusec_delay(int time);
58
59 #endif /* !__FLASH_H__ */