Skip to content

Commit 9ffee12

Browse files
committed
flash/esp: Fixes PSRAM corruption by flasher stub
1 parent 87cef59 commit 9ffee12

23 files changed

+6362
-6336
lines changed

contrib/loaders/flash/esp/esp32/stub_flasher_chip.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ void stub_flash_state_prepare(struct stub_flash_state *state)
369369
WRITE_PERI_REG(SPI_SLAVE_REG(1), ESP32_STUB_FLASH_STATE_SPI_SLAVE_REG_VAL);
370370

371371
if ((READ_PERI_REG(SPI_CACHE_FCTRL_REG(0)) & SPI_CACHE_FLASH_USR_CMD) == 0) {
372+
STUB_LOGI("Attach spi flash...\n");
372373
esp_rom_spiflash_attach(spiconfig, 0);
373374
} else {
374375
WRITE_PERI_REG(SPI_CTRL_REG(1), 0x208000);

contrib/loaders/flash/esp/esp32/stub_flasher_code.inc

Lines changed: 799 additions & 793 deletions
Large diffs are not rendered by default.

contrib/loaders/flash/esp/esp32/stub_flasher_code_wlog.inc

Lines changed: 1080 additions & 1070 deletions
Large diffs are not rendered by default.
Lines changed: 57 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
1-
0xb4, 0x03, 0x09, 0x40, 0x50, 0x03, 0x09, 0x40, 0x84, 0x03, 0x09, 0x40,
2-
0x3c, 0x03, 0x09, 0x40, 0x1c, 0x04, 0x09, 0x40, 0x20, 0x0b, 0x09, 0x40,
3-
0xf8, 0x25, 0x09, 0x40, 0x48, 0x09, 0x09, 0x40, 0xa0, 0x09, 0x09, 0x40,
4-
0xcc, 0x25, 0x09, 0x40, 0xec, 0x09, 0x09, 0x40, 0xa8, 0x25, 0x09, 0x40,
5-
0xe8, 0x03, 0x09, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f,
6-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
7-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
8-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
9-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
10-
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x4e, 0x0e,
11-
0x72, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x00, 0x25, 0x73, 0x28,
12-
0x65, 0x72, 0x72, 0x29, 0x3a, 0x20, 0x73, 0x6c, 0x6f, 0x77, 0x63, 0x6c,
13-
0x6b, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x20, 0x76, 0x61, 0x6c,
14-
0x75, 0x65, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65,
15-
0x2c, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x6f,
16-
0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x00, 0x72, 0x74, 0x63, 0x5f,
17-
0x63, 0x6c, 0x6b, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x00, 0x25, 0x73, 0x28,
18-
0x77, 0x61, 0x72, 0x6e, 0x29, 0x3a, 0x20, 0x50, 0x6f, 0x74, 0x65, 0x6e,
19-
0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x6f, 0x67, 0x75, 0x73,
20-
0x20, 0x58, 0x54, 0x41, 0x4c, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65,
21-
0x6e, 0x63, 0x79, 0x3a, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x2c,
22-
0x20, 0x67, 0x75, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x32, 0x36,
23-
0x20, 0x4d, 0x48, 0x7a, 0x00, 0x25, 0x73, 0x28, 0x77, 0x61, 0x72, 0x6e,
24-
0x29, 0x3a, 0x20, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c,
25-
0x6c, 0x79, 0x20, 0x62, 0x6f, 0x67, 0x75, 0x73, 0x20, 0x58, 0x54, 0x41,
26-
0x4c, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x3a,
27-
0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x2c, 0x20, 0x67, 0x75, 0x65,
28-
0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x34, 0x30, 0x20, 0x4d, 0x48, 0x7a,
29-
0x00, 0x25, 0x73, 0x28, 0x77, 0x61, 0x72, 0x6e, 0x29, 0x3a, 0x20, 0x42,
30-
0x6f, 0x67, 0x75, 0x73, 0x20, 0x58, 0x54, 0x41, 0x4c, 0x20, 0x66, 0x72,
31-
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x3a, 0x20, 0x25, 0x64, 0x20,
32-
0x4d, 0x48, 0x7a, 0x00, 0x72, 0x74, 0x63, 0x5f, 0x63, 0x6c, 0x6b, 0x00,
33-
0x25, 0x73, 0x28, 0x65, 0x72, 0x72, 0x29, 0x3a, 0x20, 0x75, 0x6e, 0x73,
34-
0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x65,
35-
0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69,
36-
0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x25, 0x73, 0x28,
1+
0xe4, 0x00, 0x09, 0x40, 0x50, 0x01, 0x09, 0x40, 0x1c, 0x01, 0x09, 0x40,
2+
0x68, 0x01, 0x09, 0x40, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
3+
0x24, 0x00, 0x09, 0x40, 0x78, 0x0e, 0x09, 0x40, 0xd0, 0x25, 0x09, 0x40,
4+
0x08, 0x11, 0x09, 0x40, 0x2c, 0x11, 0x09, 0x40, 0xf0, 0x25, 0x09, 0x40,
5+
0x88, 0x0f, 0x09, 0x40, 0x1c, 0x26, 0x09, 0x40, 0xb4, 0x00, 0x09, 0x40,
6+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00,
7+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
8+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
9+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
10+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x4e, 0x0e,
11+
0x72, 0x74, 0x63, 0x5f, 0x63, 0x6c, 0x6b, 0x00, 0x25, 0x73, 0x28, 0x65,
12+
0x72, 0x72, 0x29, 0x3a, 0x20, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f,
13+
0x72, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e,
14+
0x63, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
15+
0x74, 0x69, 0x6f, 0x6e, 0x00, 0x72, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d,
16+
0x65, 0x00, 0x25, 0x73, 0x28, 0x65, 0x72, 0x72, 0x29, 0x3a, 0x20, 0x73,
17+
0x6c, 0x6f, 0x77, 0x63, 0x6c, 0x6b, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65,
18+
0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x74, 0x6f, 0x6f, 0x20,
19+
0x6c, 0x61, 0x72, 0x67, 0x65, 0x2c, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69,
20+
0x62, 0x6c, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77,
21+
0x00, 0x72, 0x74, 0x63, 0x5f, 0x63, 0x6c, 0x6b, 0x5f, 0x69, 0x6e, 0x69,
22+
0x74, 0x00, 0x25, 0x73, 0x28, 0x77, 0x61, 0x72, 0x6e, 0x29, 0x3a, 0x20,
23+
0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20,
24+
0x62, 0x6f, 0x67, 0x75, 0x73, 0x20, 0x58, 0x54, 0x41, 0x4c, 0x20, 0x66,
25+
0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x3a, 0x20, 0x25, 0x64,
26+
0x20, 0x4d, 0x48, 0x7a, 0x2c, 0x20, 0x67, 0x75, 0x65, 0x73, 0x73, 0x69,
27+
0x6e, 0x67, 0x20, 0x32, 0x36, 0x20, 0x4d, 0x48, 0x7a, 0x00, 0x25, 0x73,
28+
0x28, 0x77, 0x61, 0x72, 0x6e, 0x29, 0x3a, 0x20, 0x50, 0x6f, 0x74, 0x65,
29+
0x6e, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x6f, 0x67, 0x75,
30+
0x73, 0x20, 0x58, 0x54, 0x41, 0x4c, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75,
31+
0x65, 0x6e, 0x63, 0x79, 0x3a, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a,
32+
0x2c, 0x20, 0x67, 0x75, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x34,
33+
0x30, 0x20, 0x4d, 0x48, 0x7a, 0x00, 0x25, 0x73, 0x28, 0x77, 0x61, 0x72,
34+
0x6e, 0x29, 0x3a, 0x20, 0x42, 0x6f, 0x67, 0x75, 0x73, 0x20, 0x58, 0x54,
35+
0x41, 0x4c, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79,
36+
0x3a, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x00, 0x25, 0x73, 0x28,
3737
0x77, 0x61, 0x72, 0x6e, 0x29, 0x3a, 0x20, 0x43, 0x61, 0x6e, 0x27, 0x74,
3838
0x20, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x58, 0x54,
3939
0x41, 0x4c, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79,
@@ -44,46 +44,37 @@
4444
0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x25, 0x73, 0x28, 0x65, 0x72, 0x72,
4545
0x29, 0x3a, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x66,
4646
0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x00, 0x00, 0x00, 0x00,
47-
0xa7, 0x11, 0x09, 0x40, 0xa7, 0x11, 0x09, 0x40, 0xa7, 0x11, 0x09, 0x40,
48-
0xa7, 0x11, 0x09, 0x40, 0xa7, 0x11, 0x09, 0x40, 0xa7, 0x11, 0x09, 0x40,
49-
0xa7, 0x11, 0x09, 0x40, 0xa7, 0x11, 0x09, 0x40, 0xa7, 0x11, 0x09, 0x40,
50-
0xa7, 0x11, 0x09, 0x40, 0xa7, 0x11, 0x09, 0x40, 0x75, 0x11, 0x09, 0x40,
51-
0x75, 0x11, 0x09, 0x40, 0x84, 0x11, 0x09, 0x40, 0x84, 0x11, 0x09, 0x40,
52-
0x90, 0x11, 0x09, 0x40, 0x90, 0x11, 0x09, 0x40, 0x90, 0x11, 0x09, 0x40,
53-
0x90, 0x11, 0x09, 0x40, 0x90, 0x11, 0x09, 0x40, 0x90, 0x11, 0x09, 0x40,
54-
0x90, 0x11, 0x09, 0x40, 0x90, 0x11, 0x09, 0x40, 0x90, 0x11, 0x09, 0x40,
55-
0x90, 0x11, 0x09, 0x40, 0x00, 0x50, 0x04, 0xff, 0xac, 0x00, 0x00, 0x00,
56-
0x52, 0x1c, 0x09, 0x40, 0x05, 0x1d, 0x09, 0x40, 0xea, 0x1c, 0x09, 0x40,
57-
0xf4, 0x1c, 0x09, 0x40, 0x0a, 0x25, 0x09, 0x40, 0x27, 0x1d, 0x09, 0x40,
58-
0x9b, 0x1d, 0x09, 0x40, 0x1b, 0x1e, 0x09, 0x40, 0x0a, 0x25, 0x09, 0x40,
59-
0x10, 0x1d, 0x09, 0x40, 0x18, 0x1d, 0x09, 0x40, 0x89, 0x1e, 0x09, 0x40,
60-
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
47+
0x00, 0x50, 0x04, 0xff, 0xac, 0x00, 0x00, 0x00, 0x27, 0x1c, 0x09, 0x40,
48+
0xf8, 0x1c, 0x09, 0x40, 0xd7, 0x1c, 0x09, 0x40, 0xe8, 0x1c, 0x09, 0x40,
49+
0x0e, 0x25, 0x09, 0x40, 0x20, 0x1d, 0x09, 0x40, 0x89, 0x1d, 0x09, 0x40,
50+
0x00, 0x1e, 0x09, 0x40, 0x0e, 0x25, 0x09, 0x40, 0x03, 0x1d, 0x09, 0x40,
51+
0x10, 0x1d, 0x09, 0x40, 0x66, 0x1e, 0x09, 0x40, 0x00, 0x00, 0xf1, 0x3f,
52+
0x00, 0x20, 0xf1, 0x3f, 0x90, 0xe0, 0x90, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
53+
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x1c, 0x01, 0x00, 0x01,
54+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
55+
0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x01, 0x00, 0x00,
57+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58+
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
59+
0x04, 0x04, 0x04, 0x04, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
60+
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x20, 0x0b, 0x0c,
61+
0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
62+
0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00,
63+
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00,
64+
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
6165
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6266
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
67+
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10,
6368
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6469
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00,
66-
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00,
67-
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
6870
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6971
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
70-
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10,
7172
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
7273
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
7374
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00,
7476
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
7577
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
7678
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
7779
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
78-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90, 0xe0, 0x90, 0xe0,
79-
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
80-
0x1c, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
81-
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01,
83-
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84-
0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
85-
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0xe0, 0xe0, 0xe0,
86-
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
87-
0xe0, 0x20, 0x0b, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
88-
0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x3f,
89-
0x00, 0x20, 0xf1, 0x3f
80+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

0 commit comments

Comments
 (0)