Skip to content

Commit

Permalink
feat(esp32-s3): Support >16MB quad flash chips
Browse files Browse the repository at this point in the history
Adds support for the W25Q256 and GD25Q256 flash chips.

Closes espressif#883
  • Loading branch information
radimkarnis authored and peterdragun committed Jul 16, 2024
1 parent aa22553 commit 31e08c6
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 26 deletions.
13 changes: 11 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -291,10 +291,19 @@ target_esp32s3:
script:
- coverage run --parallel-mode -m pytest ${CI_PROJECT_DIR}/test/test_esptool.py --port /dev/serial_ports/ESP32S3 --chip esp32s3 --baud 115200

target_esp32s3_32MB:
target_esp32s3_32MB_octal:
extends: .target_esptool_test
tags:
- esptool_esp32s3_32MB_target
- esptool_esp32s3_32MB_octal_target
variables:
ESPTOOL_TEST_FLASH_SIZE: "32"
script:
- coverage run --parallel-mode -m pytest ${CI_PROJECT_DIR}/test/test_esptool.py --port /dev/serial_ports/ESP32S3_32MB --chip esp32s3 --baud 115200

target_esp32s3_32MB_quad:
extends: .target_esptool_test
tags:
- esptool_esp32s3_32MB_quad_target
variables:
ESPTOOL_TEST_FLASH_SIZE: "32"
script:
Expand Down
8 changes: 6 additions & 2 deletions esptool/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -834,7 +834,11 @@ def flash_xmc_startup():
if flash_size is not None: # Secure download mode
esp.flash_set_parameters(flash_size_bytes(flash_size))
# Check if stub supports chosen flash size
if esp.IS_STUB and flash_size in ("32MB", "64MB", "128MB"):
if (
esp.IS_STUB
and esp.CHIP_NAME != "ESP32-S3"
and flash_size_bytes(flash_size) > 16 * 1024 * 1024
):
print(
"WARNING: Flasher stub doesn't fully support flash size larger "
"than 16MB, in case of failure use --no-stub."
Expand All @@ -858,7 +862,7 @@ def flash_xmc_startup():
args.size = flash_size_bytes(size_str)

if esp.IS_STUB and hasattr(args, "address") and hasattr(args, "size"):
if args.address + args.size > 0x1000000:
if esp.CHIP_NAME != "ESP32-S3" and args.address + args.size > 0x1000000:
print(
"WARNING: Flasher stub doesn't fully support flash size larger "
"than 16MB, in case of failure use --no-stub."
Expand Down
8 changes: 4 additions & 4 deletions esptool/targets/stub_flasher/stub_flasher_32s3.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"entry": 1077381696,
"text": "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",
"entry": 1077381692,
"text": "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",
"text_start": 1077379072,
"data": "WADKP8mNN0C/jjdAiJM3QEuPN0DfjjdAS483QKqPN0B3kDdA6ZA3QJKQN0BVjTdAC5A3QGmQN0DNjzdAC5E3QPaPN0ALkTdArY43QAyPN0BLjzdAqo83QMWON0CXjTdA0JE3QE6TN0BujDdAbpM3QG6MN0BujDdAbow3QG6MN0BujDdAbow3QG6MN0BujDdAapE3QG6MN0BlkjdATpM3QAQInwAAAAAAAAAYAQQIBQAAAAAAAAAIAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAIAAAAQQIEgAAAAAAIAAAESAoDAAQAQAA",
"data_start": 1070279668
"data": "WADKPyKON0D3jjdAu5M3QIGPN0AXjzdAgY83QOGPN0CukDdAIJE3QMmQN0CtjTdARJA3QKCQN0AEkDdARJE3QC6QN0BEkTdA5Y43QEKPN0CBjzdA4Y83QP2ON0DujTdABJI3QIGTN0DEjDdAoZM3QMSMN0DEjDdAxIw3QMSMN0DEjDdAxIw3QMSMN0DEjDdAnpE3QMSMN0CZkjdAgZM3QAQInwAAAAAAAAAYAQQIBQAAAAAAAAAIAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAIAAAAQQIEgAAAAAAIAAAESAoDAAQAQAA",
"data_start": 1070279672
}
Loading

0 comments on commit 31e08c6

Please sign in to comment.