- self.sendMessage([0x06, 0x00, 0x00, 0x00, 0x00])
-
- loadCount = (len(flashData) + 0xFF) / 0x100
- for i in xrange(0, loadCount):
- recv = self.sendMessage([0x14, 0x01, 0x00, 0x20])[2:0x102]
- if self.progressCallback != None:
- self.progressCallback(loadCount + i + 1, loadCount*2)
- for j in xrange(0, 0x100):
- if i * 0x100 + j < len(flashData) and flashData[i * 0x100 + j] != recv[j]:
- raise ispBase.IspError('Verify error at: 0x%x' % (i * 0x100 + j))
+ #Set load addr to 0, in case we have more then 64k flash we need to enable the address extension
+ flashSize = self.chip['pageSize'] * 2 * self.chip['pageCount']
+ if flashSize > 0xFFFF:
+ self.sendMessage([0x06, 0x80, 0x00, 0x00, 0x00])
+ else:
+ self.sendMessage([0x06, 0x00, 0x00, 0x00, 0x00])
+
+ loadCount = (len(flashData) + 0xFF) / 0x100
+ for i in xrange(0, loadCount):
+ recv = self.sendMessage([0x14, 0x01, 0x00, 0x20])[2:0x102]
+ if self.progressCallback is not None:
+ self.progressCallback(loadCount + i + 1, loadCount*2)
+ for j in xrange(0, 0x100):
+ if i * 0x100 + j < len(flashData) and flashData[i * 0x100 + j] != recv[j]:
+ raise ispBase.IspError('Verify error at: 0x%x' % (i * 0x100 + j))