rtas_flash: fix blockCnt iteration for (blockCnt = 0; blockCnt <= FLASHSIZE; blockCnt += FLASH_BLOCK_SIZE) will iterate more than FLASHSIZE, thus causing overwriting. Change <= to < to limit block count correctly. Signed-off-by: Minsoo Choo <minsoo@minsoo.io> Message-ID: <20260520220212.525-3-minsoo@minsoo.io> Signed-off-by: Thomas Huth <th.huth@posteo.eu>
diff --git a/board-js2x/rtas/rtas_flash.c b/board-js2x/rtas/rtas_flash.c index aa61603..0234087 100644 --- a/board-js2x/rtas/rtas_flash.c +++ b/board-js2x/rtas/rtas_flash.c
@@ -243,7 +243,7 @@ } printf("\r\nErasing Flash: 0x "); - for (blockCnt = 0; blockCnt <= FLASHSIZE; blockCnt += FLASH_BLOCK_SIZE) { + for (blockCnt = 0; blockCnt < FLASHSIZE; blockCnt += FLASH_BLOCK_SIZE) { print_block(blockCnt); erase_flash_block(blockCnt); } @@ -251,7 +251,7 @@ progress = FLASHSIZE / 38; print_writing(); - for (blockCnt = 0; blockCnt <= FLASHSIZE; blockCnt += BUFSIZE) { + for (blockCnt = 0; blockCnt < FLASHSIZE; blockCnt += BUFSIZE) { uint64_t *srcPtr = (uint64_t *)(flash + blockCnt); uint64_t *destPtr = (uint64_t *)manage_flash_buffer; uint64_t cnt = BUFSIZE / 8;