Use variables for ESP32 flash layout offsets

This allows using different offsets for different ESP32 variants, which
is required to be able to support newer ESP32 variants.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
Stijn Tintel 2022-03-05 11:08:23 +02:00
parent 18176f051a
commit 4b553f28e7
1 changed files with 9 additions and 4 deletions

View File

@ -193,6 +193,11 @@ def configure_write_flash_args(
firmware = open_downloadable_binary(firmware_path)
flash_mode, flash_freq = read_firmware_info(firmware)
if isinstance(info, ESP32ChipInfo):
ofs_bootloader = 0x1000
ofs_partitions = 0x8000
ofs_otadata = 0xe000
ofs_firmware = 0x10000
if flash_freq in ("26m", "20m"):
raise EsphomeflasherError(
f"No bootloader available for flash frequency {flash_freq}"
@ -203,10 +208,10 @@ def configure_write_flash_args(
partitions = open_downloadable_binary(partitions_path)
otadata = open_downloadable_binary(otadata_path)
addr_filename.append((0x1000, bootloader))
addr_filename.append((0x8000, partitions))
addr_filename.append((0xE000, otadata))
addr_filename.append((0x10000, firmware))
addr_filename.append((ofs_bootloader, bootloader))
addr_filename.append((ofs_partitions, partitions))
addr_filename.append((ofs_otadata, otadata))
addr_filename.append((ofs_firmware, firmware))
else:
addr_filename.append((0x0, firmware))
return MockEsptoolArgs(flash_size, addr_filename, flash_mode, flash_freq)