Commit 9eda352e authored by Johny Mattsson's avatar Johny Mattsson
Browse files

Workaround for DIO mode leaving flash in write-protect.

parent 8394333c
...@@ -262,6 +262,15 @@ class ESPROM: ...@@ -262,6 +262,15 @@ class ESPROM:
return data return data
""" Abuse the loader protocol to force flash to be left in write mode """
def flash_unlock_dio(self):
# Enable flash write mode
self.flash_begin(0, 0)
# Reset the chip rather than call flash_finish(), which would have
# write protected the chip again (why oh why does it do that?!)
self.mem_begin(0,0,0,0x40100000)
self.mem_finish(0x40000080)
""" Perform a chip erase of SPI flash """ """ Perform a chip erase of SPI flash """
def flash_erase(self): def flash_erase(self):
# Trick ROM to initialize SFlash # Trick ROM to initialize SFlash
...@@ -560,7 +569,10 @@ if __name__ == '__main__': ...@@ -560,7 +569,10 @@ if __name__ == '__main__':
seq += 1 seq += 1
print print
print '\nLeaving...' print '\nLeaving...'
esp.flash_finish(False) if args.flash_mode == 'dio':
esp.flash_unlock_dio()
else:
esp.flash_finish(False)
elif args.operation == 'run': elif args.operation == 'run':
esp.run() esp.run()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment