Skip to content

Commit bb716c7

Browse files
3rdIterationclaude
andcommitted
fix: stop esptool-js patching bootloader header (ets_loader.c 78 bootloop)
Passing explicit flashMode/flashFreq/flashSize makes esptool-js patch the bootloader image header in flash without recomputing the appended SHA-256 digest. The ESP32-S3 ROM verifies that digest when loading the second-stage bootloader, rejects the image (ets_loader.c 78) and the device bootloops. Use 'keep' so the image is written byte-identical to the build output. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 3a4624c commit bb716c7

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

flasher/index.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,9 +202,12 @@ <h1>Jade Web Flasher</h1>
202202
tdeck: {
203203
name: 'LilyGO T-Deck',
204204
chip: 'ESP32-S3',
205-
flashMode: 'qio',
206-
flashFreq: '80m',
207-
flashSize: '16MB',
205+
// 'keep' is required: esptool-js patches the bootloader header when a
206+
// mode/freq/size is given, but does not recompute the appended SHA-256,
207+
// and the ESP32-S3 ROM rejects the image (ets_loader.c 78 bootloop).
208+
flashMode: 'keep',
209+
flashFreq: 'keep',
210+
flashSize: 'keep',
208211
layout: [
209212
{ offset: '0x0', file: 'bootloader.bin' },
210213
{ offset: '0x8000', file: 'partition-table.bin' },

0 commit comments

Comments
 (0)