]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
Replace the erase with a write in tos-deluge to avoid the erase inconsistencies on...
authorrazvanm <razvanm>
Fri, 1 Jan 2010 08:53:40 +0000 (08:53 +0000)
committerrazvanm <razvanm>
Fri, 1 Jan 2010 08:53:40 +0000 (08:53 +0000)
tools/tinyos/misc/tos-deluge

index d9c8746377b88c39822dd952dc8bf54f2edc834a..1277ba5df2be3172653c6264c5577421cb2dee4a 100755 (executable)
@@ -185,9 +185,20 @@ def read(imgNum, offset, length):
     return r
 
 def erase(imgNum):
-    sreqpkt = FMReqPacket((FM_CMD_ERASE, imgNum, 0, 0, []))
+    # 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")
+
+    sreqpkt = FMReqPacket((FM_CMD_WRITE, imgNum, 0, 0, []))
+    sreqpkt.data = [0xFF] * DELUGE_IDENT_SIZE
+    sreqpkt.length = DELUGE_IDENT_SIZE
     success = am.write(sreqpkt, FM_AMID)
-    return handleResponse(success, "ERROR: Unable to erase the flash volume")
+    result = handleResponse(success, "ERROR: Unable to erase the flash volume")
+    if not result: return False;
+    return sync(imgNum)
 
 def sync(imgNum):
     sreqpkt = FMReqPacket((FM_CMD_SYNC, imgNum, 0, 0, []))