Skip to content

Commit ce71e9e

Browse files
authored
Merge pull request #10458 from dhalbert/s3-4mb-no-ota
Make ESP32-S3 4MB boards use no-ota partition table
2 parents a424e50 + f75b8a3 commit ce71e9e

File tree

29 files changed

+88
-139
lines changed

29 files changed

+88
-139
lines changed

ports/espressif/Makefile

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,12 @@ else
202202
endif
203203

204204
ifeq ($(IDF_TARGET_ARCH),xtensa)
205-
# Remove the last two flags once TinyUSB is updated with the `#include <xtensa_api.h>` instead of
206-
# `#include "xtensa/xtensa_api.h"`.
205+
# Remove the last two flags once TinyUSB is updated with the `#include <xtensa_api.h>` instead of
206+
# `#include "xtensa/xtensa_api.h"`.
207207

208208
CFLAGS += -mlongcalls -isystem esp-idf/components/xtensa/deprecated_include/ -Wno-error=cpp
209209

210-
# Wrap longjmp with a patched version that protects register window update with a critical section
210+
# Wrap longjmp with a patched version that protects register window update with a critical section
211211
LDFLAGS += -Wl,--wrap=longjmp
212212
else ifeq ($(IDF_TARGET_ARCH),riscv)
213213

@@ -567,27 +567,38 @@ $(BUILD)/esp-idf:
567567
TARGET_SDKCONFIG = esp-idf-config/sdkconfig-$(IDF_TARGET).defaults
568568

569569

570+
# Choose the correct partition layout, based on UF2 or not, flash size, etc.
571+
UF2_BOOTLOADER ?= $(CIRCUITPY_USB_DEVICE)
572+
570573
ifeq ($(CIRCUITPY_ESP_FLASH_SIZE), 2MB)
574+
####### No 2MB UF2 boards, so always no OTA, not UF2
571575
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota-no-uf2.defaults
572-
else
573-
UF2_BOOTLOADER ?= $(CIRCUITPY_USB_DEVICE)
574-
ifeq ($(UF2_BOOTLOADER), 1)
575-
# UF2-capable board
576-
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE).defaults
577-
else
578-
# non-UF2 partition layout
579-
ifeq ($(CIRCUITPY_ESP_FLASH_SIZE), 4MB)
580-
ifeq ($(CIRCUITPY_4MB_FLASH_LARGE_USER_FS_LAYOUT), 1)
581-
# Some boards use a 2MB firmware and almost 2MB user filesystem, for historical reasons.
582-
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota-no-uf2-large-user_fs.defaults
576+
else ifeq ($(CIRCUITPY_ESP_FLASH_SIZE), 4MB)
577+
ifeq ($(UF2_BOOTLOADER), 1)
578+
############### TODO: For right now, use no-ota only for ESP32-S3. Eventually it will be for ESP32-S2 as well.
579+
ifeq ($(IDF_TARGET),esp32s3)
580+
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota.defaults
581+
else
582+
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE).defaults
583+
endif
583584
else
584-
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota-no-uf2.defaults
585+
############### Non-UF2 4MB: C3, C6, etc.
586+
ifeq ($(CIRCUITPY_4MB_FLASH_LARGE_USER_FS_LAYOUT), 1)
587+
###################### Some boards use a 2MB firmware and almost 2MB user filesystem, for historical reasons.
588+
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota-no-uf2-large-user_fs.defaults
589+
else
590+
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota-no-uf2.defaults
591+
endif
585592
endif
586593
else
587-
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-uf2.defaults
588-
endif
589-
endif
594+
####### All the rest are >4MB flash
595+
ifeq ($(UF2_BOOTLOADER), 1)
596+
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE).defaults
597+
else
598+
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-uf2.defaults
599+
endif
590600
endif
601+
591602
FLASH_MODE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_MODE).defaults
592603
FLASH_SPEED_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_FREQ).defaults
593604

ports/espressif/boards/adafruit_esp32s3_camera/mpconfigboard.mk

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ CIRCUITPY_ESP_PSRAM_SIZE = 2MB
1313
CIRCUITPY_ESP_PSRAM_MODE = qio
1414
CIRCUITPY_ESP_PSRAM_FREQ = 80m
1515

16-
# No OTA partition: larger firmware partition
17-
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota.defaults
16+
CIRCUITPY_ESPCAMERA = 1
1817

1918
CIRCUITPY_AUDIOBUSIO = 0
2019
CIRCUITPY_CANIO = 0
2120
CIRCUITPY_DUALBANK = 0
22-
CIRCUITPY_ESPCAMERA = 1
2321
CIRCUITPY_FRAMEBUFFERIO = 0
2422
CIRCUITPY_KEYPAD = 0
2523
CIRCUITPY_ONEWIREIO = 0

ports/espressif/boards/adafruit_feather_esp32s3_4mbflash_2mbpsram/mpconfigboard.mk

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,3 @@ CIRCUITPY_ESP_FLASH_FREQ = 80m
1212
CIRCUITPY_ESP_PSRAM_SIZE = 2MB
1313
CIRCUITPY_ESP_PSRAM_MODE = qio
1414
CIRCUITPY_ESP_PSRAM_FREQ = 80m
15-
16-
OPTIMIZATION_FLAGS = -Os
17-
#CIRCUITPY_ESPCAMERA = 0
18-
#CIRCUITPY_PARALLELDISPLAYBUS = 0
19-
CIRCUITPY_BLEIO_NATIVE = 1
20-
21-
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota.defaults

ports/espressif/boards/adafruit_feather_esp32s3_reverse_tft/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ CIRCUITPY_ESP_PSRAM_SIZE = 2MB
1414
CIRCUITPY_ESP_PSRAM_MODE = qio
1515
CIRCUITPY_ESP_PSRAM_FREQ = 80m
1616

17-
CIRCUITPY_ESPCAMERA = 0
17+
# Already have a display.
1818
CIRCUITPY_PARALLELDISPLAYBUS = 0

ports/espressif/boards/adafruit_feather_esp32s3_tft/mpconfigboard.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ CIRCUITPY_ESP_FLASH_MODE = qio
1010
CIRCUITPY_ESP_FLASH_FREQ = 80m
1111
CIRCUITPY_ESP_FLASH_SIZE = 4MB
1212

13-
CIRCUITPY_ESPCAMERA = 0
14-
CIRCUITPY_PARALLELDISPLAYBUS = 0
15-
1613
CIRCUITPY_ESP_PSRAM_SIZE = 2MB
1714
CIRCUITPY_ESP_PSRAM_MODE = qio
1815
CIRCUITPY_ESP_PSRAM_FREQ = 80m
16+
17+
# Already have a display.
18+
CIRCUITPY_PARALLELDISPLAYBUS = 0

ports/espressif/boards/adafruit_feather_huzzah32/mpconfigboard.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,4 @@ CIRCUITPY_ESP_FLASH_MODE = qio
77
CIRCUITPY_ESP_FLASH_FREQ = 80m
88
CIRCUITPY_ESP_FLASH_SIZE = 4MB
99

10-
CIRCUITPY_BLEIO_NATIVE = 0
1110
CIRCUITPY_ESPCAMERA = 0

ports/espressif/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.mk

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ CIRCUITPY_ESP_FLASH_MODE = qio
99
CIRCUITPY_ESP_FLASH_FREQ = 80m
1010
CIRCUITPY_ESP_FLASH_SIZE = 4MB
1111

12+
CIRCUITPY_ESP_PSRAM_SIZE = 2MB
13+
CIRCUITPY_ESP_PSRAM_MODE = qio
14+
CIRCUITPY_ESP_PSRAM_FREQ = 80m
15+
1216
CIRCUITPY_ESPCAMERA = 0
1317
CIRCUITPY_PARALLELDISPLAYBUS = 0
1418

@@ -20,7 +24,3 @@ FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
2024
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
2125
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Display_Text
2226
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
23-
24-
CIRCUITPY_ESP_PSRAM_SIZE = 2MB
25-
CIRCUITPY_ESP_PSRAM_MODE = qio
26-
CIRCUITPY_ESP_PSRAM_FREQ = 80m

ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ CIRCUITPY_ESP_FLASH_MODE = qio
77
CIRCUITPY_ESP_FLASH_FREQ = 80m
88
CIRCUITPY_ESP_FLASH_SIZE = 4MB
99

10-
CIRCUITPY_BLEIO_NATIVE = 0
1110
CIRCUITPY_ESPCAMERA = 0
11+
CIRCUITPY_PARALLELDISPLAYBUS = 0

ports/espressif/boards/adafruit_qtpy_esp32s3_4mbflash_2mbpsram/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ CIRCUITPY_ESP_PSRAM_SIZE = 2MB
1313
CIRCUITPY_ESP_PSRAM_MODE = qio
1414
CIRCUITPY_ESP_PSRAM_FREQ = 80m
1515

16-
CIRCUITPY_ESPCAMERA = 0
1716
# Not enough pins.
17+
CIRCUITPY_ESPCAMERA = 0
1818
CIRCUITPY_PARALLELDISPLAYBUS = 0

ports/espressif/boards/adafruit_sparkle_motion/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ CIRCUITPY_ESP_FLASH_MODE = qio
77
CIRCUITPY_ESP_FLASH_FREQ = 80m
88
CIRCUITPY_ESP_FLASH_SIZE = 4MB
99

10-
CIRCUITPY_BLEIO_NATIVE = 0
1110
CIRCUITPY_ESPCAMERA = 0
11+
CIRCUITPY_PARALLELDISPLAYBUS = 0

0 commit comments

Comments
 (0)