@@ -202,12 +202,12 @@ else
202202endif
203203
204204ifeq ($(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
212212else ifeq ($(IDF_TARGET_ARCH),riscv)
213213
@@ -567,27 +567,38 @@ $(BUILD)/esp-idf:
567567TARGET_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+
570573ifeq ($(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
586593else
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
590600endif
601+
591602FLASH_MODE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_MODE ) .defaults
592603FLASH_SPEED_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_FREQ ) .defaults
593604
0 commit comments