From: razvanm Date: Fri, 1 Jan 2010 08:53:40 +0000 (+0000) Subject: Replace the erase with a write in tos-deluge to avoid the erase inconsistencies on... X-Git-Tag: rc_6_tinyos_2_1_1~78 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=39b08cee9389feb748dcf353b459eec1565a573a Replace the erase with a write in tos-deluge to avoid the erase inconsistencies on AT45DB. --- diff --git a/tools/tinyos/misc/tos-deluge b/tools/tinyos/misc/tos-deluge index d9c87463..1277ba5d 100755 --- a/tools/tinyos/misc/tos-deluge +++ b/tools/tinyos/misc/tos-deluge @@ -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, []))