]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tools/tinyos/misc/tos-deluge
Workaround the erase problems with AT45DB
[tinyos-2.x.git] / tools / tinyos / misc / tos-deluge
index 1277ba5df2be3172653c6264c5577421cb2dee4a..7a215a0e474cd82ced693d022feef1351ea33016 100755 (executable)
@@ -186,12 +186,15 @@ def read(imgNum, offset, length):
 
 def erase(imgNum):
     # Note: the normal erase doesn't work properly on AT45DB. A
-    # workaroud is to overwrite the metadata of the Deluge image.
-    #
-    #sreqpkt = FMReqPacket((FM_CMD_ERASE, imgNum, 0, 0, []))
-    #success = am.write(sreqpkt, FM_AMID)
-    #return handleResponse(success, "ERROR: Unable to erase the flash volume")
+    # workaround is to do the normal erase (to make happy STM45P)
+    # and then overwrite the metadata (to make happy AT45DB).
 
+    sreqpkt = FMReqPacket((FM_CMD_ERASE, imgNum, 0, 0, []))
+    success = am.write(sreqpkt, FM_AMID)
+    result = handleResponse(success, "ERROR: Unable to erase the flash volume")
+    if result: return True;
+
+    print 'Attempt the workaround for AT45DB...'
     sreqpkt = FMReqPacket((FM_CMD_WRITE, imgNum, 0, 0, []))
     sreqpkt.data = [0xFF] * DELUGE_IDENT_SIZE
     sreqpkt.length = DELUGE_IDENT_SIZE