feat(stub_flasher): Support for >16MB flash on P4 and >16MB encrypted writes on S3

This commit is contained in:
Radim Karniš
2025-05-05 20:13:42 +02:00
parent e132f6f761
commit 4e6803e6a1
7 changed files with 15 additions and 10 deletions

View File

@@ -420,6 +420,8 @@ target_esp32p4:
extends: .target_esptool_test
tags:
- esptool_esp32p4_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/ESP32P4 --chip esp32p4 --baud 115200

View File

@@ -12,7 +12,7 @@ STUBS = (
"STUB_SET_VERSION": "1",
"DOWNLOAD_URL": "https://github.com/espressif/esptool-legacy-flasher-stub/releases/download",
"TAG_URL": "https://github.com/espressif/esptool-legacy-flasher-stub/releases/tag",
"VERSION": "v1.4.0",
"VERSION": "v1.5.0",
"FILE_LIST": (
"esp32",
"esp32c2",

View File

@@ -267,7 +267,10 @@ def add_spi_flash_options(
def check_flash_size(esp: ESPLoader, address: int, size: int) -> None:
# Check if we are writing/erasing/reading past 16MB boundary
if not (esp.IS_STUB and esp.CHIP_NAME == "ESP32-S3") and address + size > 0x1000000:
if (
not (esp.IS_STUB and esp.CHIP_NAME in ["ESP32-S3", "ESP32-P4"])
and address + size > 0x1000000
):
raise FatalError(
f"Can't access flash regions larger than 16MB "
f"(set size {size:#x} from address {address:#010x} goes past 16MB "

View File

@@ -1143,7 +1143,7 @@ def _set_flash_parameters(esp, flash_size="keep"):
esp.flash_set_parameters(flash_size_bytes(flash_size))
# Check if stub/ROM supports chosen flash size
if (
not (esp.IS_STUB and esp.CHIP_NAME == "ESP32-S3")
not (esp.IS_STUB and esp.CHIP_NAME in ["ESP32-S3", "ESP32-P4"])
and flash_size_bytes(flash_size) > 16 * 1024 * 1024
):
log.note(

View File

@@ -1,3 +1,3 @@
# Licensing
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.4.0 from where the sources can be obtained.
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.5.0 from where the sources can be obtained.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long