OSDN Git Service

client 0.6.2 release
[unagi/old-svn-converted.git] / client / tag / 0.6.2 / anago / flashdevice.nut
diff --git a/client/tag/0.6.2/anago/flashdevice.nut b/client/tag/0.6.2/anago/flashdevice.nut
new file mode 100644 (file)
index 0000000..4d347a4
--- /dev/null
@@ -0,0 +1,106 @@
+//bit is masking MSB
+function mask_get(bit)
+{
+       local t = 1 << (bit + 1);
+       return t - 1;
+}
+local mega = 0x20000;
+local MASK_A14 = mask_get(14);
+local MASK_A10 = mask_get(10);
+device <- {
+       ["dummy"] = {
+               capacity = 16 * mega, pagesize = 1,
+               erase_wait = 0, erase_require = false,
+               retry = false,
+               id_manufacurer = 0xf1, id_device = 0xf1,
+               command_mask = 0
+       },
+       ["W29C020"] = {
+               capacity = 2 * mega, pagesize = 0x80,
+               erase_wait = 50, erase_require = false,
+               retry = false,
+               id_manufacurer = 0xda, id_device = 0x45,
+               command_mask = MASK_A14
+       },
+       ["W29C040"] = {
+               capacity = 4 * mega, pagesize = 0x100,
+               erase_wait = 50, erase_require = false,
+               retry = true,
+               id_manufacurer = 0xda, id_device = 0x46,
+               command_mask = MASK_A14
+       },
+       ["W49F002"] = {
+               capacity = 2 * mega, pagesize = 1,
+               erase_wait = 100, erase_require = true,
+               retry = false,
+               id_manufacurer = 0xda, id_device = 0xae,
+               command_mask = MASK_A14
+       },
+       ["AT49F002"] = {
+               capacity = 2 * mega, pagesize = 1,
+               erase_wait = 100, erase_require = true,
+               retry = true,
+               id_manufacurer = 0x1f, id_device = 0x08,
+               command_mask = MASK_A14
+       },
+       ["EN29F002T"] = {
+               capacity = 2 * mega, pagesize = 1,
+               erase_wait = 2000, erase_require = true,
+               retry = false,
+               id_manufacurer = 0x1c, id_device = 0x92,
+               command_mask = MASK_A14
+       },
+       ["AM29F040B"] = {
+               capacity = 4 * mega, pagesize = 1,
+               erase_wait = 8000, erase_require = true,
+               retry = false,
+               id_manufacurer = 0x01, id_device = 0xa4,
+               command_mask = MASK_A10
+       },
+       //command mask is not written in datasheet!
+       ["PM29F002T"] = {
+               capacity = 2 * mega, pagesize = 1,
+               erase_wait = 500, erase_require = true,
+               retry = false,
+               id_manufacurer = 0x9d, id_device = 0x1d,
+               command_mask = MASK_A10 //maybe A10-A0
+       },
+       //chip erase time is not written in datasheet!!
+       ["MBM29F080A"] = {
+               capacity = 8 * mega, pagesize = 1,
+               erase_wait = 8000, erase_require = true,
+               retry = false,
+               id_manufacurer = 0x04, id_device = 0xd5,
+               command_mask = MASK_A10
+       },
+       ["SST39SF040"] = {
+               capacity = 4 * mega, pagesize = 1,
+               erase_wait = 100, erase_require = true,
+               retry = false,
+               id_manufacurer = 0xbf, id_device = 0xb7,
+               command_mask = MASK_A14
+       }
+};
+function flash_device_get(name)
+{
+       return device[name];
+}
+
+//listup for GUI
+//device table -> device name list array
+{
+       device_list<-[];
+       foreach(v, i in device){
+               device_list.append(v);
+       }
+       device_list.sort();
+}
+
+function flash_device_number_get()
+{
+       return device_list.len();
+}
+function flash_device_name_get(i)
+{
+       return device_list[i];
+}