caravel_board icon indicating copy to clipboard operation
caravel_board copied to clipboard

Fixed writing unaligned sections that may overlap page boundaries of SPI-flash (GF180)

Open shaos opened this issue 2 years ago • 2 comments

Re-created PR for updated repo

One example that was written incorrectly by old version of utility:

...
@000009B0
00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 
03 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 
00 00 00 00 02 00 00 00 03 00 00 00 02 00 00 00 
00 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 
06 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 
00 00 00 00 02 00 00 00 06 00 00 00 02 00 00 00 
12 00 00 00 02 00 00 00 00 00 00 00 08 00 00 00 
00 00 00 00 60 00 00 00 20 00 00 00 60 00 00 00 
40 00 00 00 60 00 00 00 62 00 00 00 E2 00 00 00 
62 00 00 00 60 00 00 00 62 00 00 00 E2 00 00 00 
E0 00 00 00 60 00 00 00 61 00 00 00 60 00 00 00 
61 00 00 00 60 00 00 00 FF FF FF FF 00 00 00 00 

Previously utility tried to write 256 bytes overlapping to next page 0xA00 and that extensive part was not written properly, corrupting beginning of the current page.

Now fixed utility is doing

  • erase the flash (entirely as before);
  • read file to buffer (filling holes with FFs and at the end up to the next page boundary);
  • write buffer to flash page by page (so no going through page boundaries while writing);
  • verify by reading flash page by page (comparing with buffer, not file).

shaos avatar Aug 02 '23 05:08 shaos

Updated my branch one more time to match current state of efabless/caravel_board

shaos avatar Sep 19 '23 01:09 shaos

Updated my branch one more time to match current state of efabless/caravel_board

shaos avatar Oct 28 '23 19:10 shaos