OSDN Git Service

5e19362d59cc6febdd1368d8203eec89edbbec8e
[unagi/old-svn-converted.git] / client / trunk / anago / flashdevice.nut
1 //bit is masking MSB
2 function mask_get(bit)
3 {
4         local t = 1 << (bit + 1);
5         return t - 1;
6 }
7 function flash_device_get(name)
8 {
9         local mega = 0x20000;
10         local MASK_A14 = mask_get(14);
11         local MASK_A10 = mask_get(10);
12         local device = {
13                 ["dummy"] = {
14                         capacity = 16 * mega, pagesize = 1,
15                         erase_wait = 0, erase_require = false,
16                         retry = false,
17                         id_manufacurer = 0xf1, id_device = 0xf1,
18                         command_mask = 0
19                 },
20                 ["W29C020"] = {
21                         capacity = 2 * mega, pagesize = 0x80,
22                         erase_wait = 50, erase_require = false,
23                         retry = false,
24                         id_manufacurer = 0xda, id_device = 0x45,
25                         command_mask = MASK_A14
26                 },
27                 ["W29C040"] = {
28                         capacity = 4 * mega, pagesize = 0x100,
29                         erase_wait = 50, erase_require = false,
30                         retry = true,
31                         id_manufacurer = 0xda, id_device = 0x46,
32                         command_mask = MASK_A14
33                 },
34                 ["W49F002"] = {
35                         capacity = 2 * mega, pagesize = 1,
36                         erase_wait = 100, erase_require = true,
37                         retry = false,
38                         id_manufacurer = 0xda, id_device = 0xae,
39                         command_mask = MASK_A14
40                 },
41                 ["AT49F002"] = {
42                         capacity = 2 * mega, pagesize = 1,
43                         erase_wait = 100, erase_require = true,
44                         retry = true,
45                         id_manufacurer = 0x1f, id_device = 0x08,
46                         command_mask = MASK_A14
47                 },
48                 ["EN29F002T"] = {
49                         capacity = 2 * mega, pagesize = 1,
50                         erase_wait = 2000, erase_require = true,
51                         retry = false,
52                         id_manufacurer = 0x1c, id_device = 0x92,
53                         command_mask = MASK_A14
54                 },
55                 ["AM29F040B"] = {
56                         capacity = 4 * mega, pagesize = 1,
57                         erase_wait = 8000, erase_require = true,
58                         retry = false,
59                         id_manufacurer = 0x01, id_device = 0xa4,
60                         command_mask = MASK_A10
61                 },
62                 //command mask is not written in datasheet!
63                 ["PM29F002T"] = {
64                         capacity = 2 * mega, pagesize = 1,
65                         erase_wait = 500, erase_require = true,
66                         retry = false,
67                         id_manufacurer = 0x9d, id_device = 0x1d,
68                         command_mask = MASK_A10 //maybe A10-A0
69                 },
70                 //chip erase time is not written in datasheet!!
71                 ["MBM29F080A"] = {
72                         capacity = 8 * mega, pagesize = 1,
73                         erase_wait = 8000, erase_require = true,
74                         retry = false,
75                         id_manufacurer = 0x04, id_device = 0xd5,
76                         command_mask = MASK_A10
77                 },
78                 ["SST39SF040"] = {
79                         capacity = 4 * mega, pagesize = 1,
80                         erase_wait = 100, erase_require = true,
81                         retry = false,
82                         id_manufacurer = 0xbf, id_device = 0xb7,
83                         command_mask = MASK_A14
84                 }
85         };
86         return device[name];
87 }