Skip to content

Commit d65a24e

Browse files
committed
fix(esp32c5): Erase during flashing above 16MB
This commit updates stub version for ESP32-C5 to ensure that the erase operation works correctly when flashing images larger than 16MB. This also adds test to verify the fix.
1 parent 3ea646f commit d65a24e

File tree

4 files changed

+36
-5
lines changed

4 files changed

+36
-5
lines changed

ci/download_flasher_stubs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"STUB_SET_VERSION": "1",
1313
"DOWNLOAD_URL": "https://github.com/espressif/esptool-legacy-flasher-stub/releases/download",
1414
"TAG_URL": "https://github.com/espressif/esptool-legacy-flasher-stub/releases/tag",
15-
"VERSION": "v1.7.1",
15+
"VERSION": "v1.7.2",
1616
"FILE_LIST": (
1717
"esp32",
1818
"esp32c2",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Licensing
22

3-
The binaries in JSON format distributed in this directory are released as Free Software under GNU General Public License Version 2 or later. They were released at https://github.com/espressif/esptool-legacy-flasher-stub/releases/tag/v1.7.1 from where the sources can be obtained.
3+
The binaries in JSON format distributed in this directory are released as Free Software under GNU General Public License Version 2 or later. They were released at https://github.com/espressif/esptool-legacy-flasher-stub/releases/tag/v1.7.2 from where the sources can be obtained.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
2-
"entry": 1082132396,
3-
"text": "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",
2+
"entry": 1082132526,
3+
"text": "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",
44
"text_start": 1082130432,
5-
"data": "GACEQDwMgECKDIBAIg2AQAAOgEBoDoBAFg6AQHAKgEC0DYBA/A2AQEANgEAgCoBAaA2AQCAKgEAaDIBAVgyAQIoMgEAiDYBALAyAQJoKgEDICoBAKAyAQCwSgECKDIBAzg+AQOQRgEBeCYBADBKAQF4JgEBeCYBAXgmAQF4JgEBeCYBAXgmAQF4JgEBeCYBAdA+AQF4JgEAIEYBA5BGAQA==",
5+
"data": "GACEQL4MgEAMDYBApA2AQIIOgEDqDoBAmA6AQPIKgEA2DoBAfg6AQMINgECiCoBA6g2AQKIKgECcDIBA2AyAQAwNgECkDYBArgyAQBwLgEBKC4BAqgyAQK4SgEAMDYBAUBCAQGYSgEDgCYBAjhKAQOAJgEDgCYBA4AmAQOAJgEDgCYBA4AmAQOAJgEDgCYBA9g+AQOAJgECKEYBAZhKAQA==",
66
"data_start": 1082469300,
77
"bss_start": 1082392576
88
}

test/test_esptool.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,37 @@ def test_write_larger_area_to_32M_flash(self):
548548
self.run_esptool("write-flash {} images/one_kb_all_ef.bin".format(hex(offset2)))
549549
self.verify_readback(offset, 1 * 1024 * 1024, "images/one_mb.bin")
550550

551+
@pytest.mark.skipif(
552+
int(os.getenv("ESPTOOL_TEST_FLASH_SIZE", "0")) < 32, reason="needs 32MB flash"
553+
)
554+
def test_verify_erase_between_32M_flash(self):
555+
"""
556+
Test writing two 1KB binaries with random data after 16MB boundary and
557+
verify hashes.
558+
"""
559+
BASE_OFFSET = 16 * 1024 * 1024 # 16MB boundary
560+
FILE_SIZE = 1 * 1024 # 1KB
561+
562+
binary1 = tempfile.NamedTemporaryFile(delete=False, suffix=".bin")
563+
binary2 = tempfile.NamedTemporaryFile(delete=False, suffix=".bin")
564+
565+
try:
566+
for _ in range(FILE_SIZE):
567+
binary1.write(struct.pack("B", random.randrange(0, 256)))
568+
binary2.write(struct.pack("B", random.randrange(0, 256)))
569+
binary1.close()
570+
binary2.close()
571+
572+
output1 = self.run_esptool(f"write-flash {BASE_OFFSET} {binary1.name}")
573+
assert "Hash of data verified" in output1
574+
575+
output2 = self.run_esptool(f"write-flash {BASE_OFFSET} {binary2.name}")
576+
assert "Hash of data verified" in output2
577+
578+
finally:
579+
os.unlink(binary1.name)
580+
os.unlink(binary2.name)
581+
551582
def test_correct_offset(self):
552583
"""Verify writing at an offset actually writes to that offset."""
553584
self.run_esptool("write-flash 0x2000 images/sector.bin")

0 commit comments

Comments
 (0)