66
77include ../../py/circuitpy_mkenv.mk
88
9- ifeq ($(IDF_TARGET ) ,esp32c3)
9+ ifeq ($(IDF_TARGET ) ,esp32c2)
10+ IDF_TARGET_ARCH = riscv
11+ CROSS_COMPILE = riscv32-esp-elf-
12+ else ifeq ($(IDF_TARGET),esp32c3)
1013IDF_TARGET_ARCH = riscv
1114CROSS_COMPILE = riscv32-esp-elf-
1215else ifeq ($(IDF_TARGET),esp32c6)
@@ -50,7 +53,9 @@ INC += \
5053 -isystem esp-idf/components/bt/host/nimble/esp-hci/include \
5154 -isystem esp-idf/components/bt/host/nimble/nimble/nimble/controller/include \
5255 -isystem esp-idf/components/bt/host/nimble/nimble/nimble/host/include \
56+ -isystem esp-idf/components/bt/host/nimble/nimble/nimble/host/services/ans/include \
5357 -isystem esp-idf/components/bt/host/nimble/nimble/nimble/host/services/gap/include \
58+ -isystem esp-idf/components/bt/host/nimble/nimble/nimble/host/services/gatt/include \
5459 -isystem esp-idf/components/bt/host/nimble/nimble/nimble/include \
5560 -isystem esp-idf/components/bt/host/nimble/nimble/nimble/host/util/include \
5661 -isystem esp-idf/components/bt/host/nimble/nimble/nimble/transport/include \
@@ -205,6 +210,12 @@ LDFLAGS += \
205210 -T$(IDF_TARGET ) .rom.newlib-data.ld \
206211 -T$(IDF_TARGET ) .rom.newlib-funcs.ld \
207212 -T$(IDF_TARGET ) .rom.spiflash.ld
213+ else ifeq ($(IDF_TARGET),esp32c2)
214+ LDFLAGS += \
215+ -Tesp32c2.rom.heap.ld \
216+ -Tesp32c2.rom.newlib.ld \
217+ -Tesp32c2.rom.version.ld
218+ CFLAGS += -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ
208219else ifeq ($(IDF_TARGET),esp32c3)
209220LDFLAGS += \
210221 -Tesp32c3.rom.newlib.ld \
@@ -246,6 +257,8 @@ endif
246257# Always add these because we might be doing host.
247258ifeq ($(IDF_TARGET ) ,esp32)
248259CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32
260+ else ifeq ($(IDF_TARGET),esp32c2)
261+ CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32C2
249262else ifeq ($(IDF_TARGET),esp32c3)
250263CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32C3
251264else ifeq ($(IDF_TARGET),esp32c6)
@@ -390,10 +403,14 @@ else
390403UF2_BOOTLOADER ?= $(CIRCUITPY_USB_DEVICE )
391404ifeq ($(UF2_BOOTLOADER ) , 1)
392405 FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE).defaults
406+ else
407+ ifeq ($(CIRCUITPY_ESP_FLASH_SIZE ) , 4MB)
408+ FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota-no-uf2.defaults
393409else
394410 FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-uf2.defaults
395411endif
396412endif
413+ endif
397414FLASH_MODE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_MODE ) .defaults
398415FLASH_SPEED_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_FREQ ) .defaults
399416
@@ -451,11 +468,15 @@ update-all-sdkconfigs: $(BUILD)/esp-idf/config/sdkconfig.h
451468update-board-sdkconfig : $(BUILD ) /esp-idf/config/sdkconfig.h
452469 python tools/update_sdkconfig.py --board=$(BOARD ) --debug=$(DEBUG )
453470
454- BINARY_WIFI_BLOBS = libcore.a libespnow.a libmesh.a libnet80211.a libpp.a libsmartconfig.a libwapi .a
471+ BINARY_WIFI_BLOBS = libcore.a libespnow.a libnet80211.a libpp.a libsmartconfig.a
455472BINARY_BLOBS = esp-idf/components/esp_phy/lib/$(IDF_TARGET ) /libphy.a
456473ifneq ($(CIRCUITPY_WIFI ) ,0)
457474 BINARY_BLOBS += esp-idf/components/esp_coex/lib/$(IDF_TARGET)/libcoexist.a $(addprefix esp-idf/components/esp_wifi/lib/$(IDF_TARGET)/, $(BINARY_WIFI_BLOBS))
475+ ifneq ($(IDF_TARGET),esp32c2)
476+ BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/$(IDF_TARGET)/, libmesh.a libwapi.a)
477+ endif
458478endif
479+
459480ifeq ($(IDF_TARGET ) ,esp32)
460481BINARY_BLOBS += esp-idf/components/esp_phy/lib/$(IDF_TARGET ) /librtc.a
461482endif
@@ -475,6 +496,9 @@ ifneq ($(CIRCUITPY_BLEIO),0)
475496
476497 ESP_IDF_COMPONENTS_LINK += bt
477498 ifeq ($(BLE_IMPL),esp32)
499+ # BLE will hang the ESP32 and trigger an interrupt watchdog without this undefined symbol at
500+ # link because a weak version of the interrupt that BLE uses will be linked incorrectly.
501+ LDFLAGS += -u ld_include_hli_vectors_bt
478502 BINARY_BLOBS += esp-idf/components/bt/controller/lib_esp32/$(IDF_TARGET)/libbtdm_app.a
479503 endif
480504
@@ -526,6 +550,8 @@ ifeq ($(IDF_TARGET),esp32)
526550BOOTLOADER_OFFSET = 0x1000
527551else ifeq ($(IDF_TARGET),esp32h2)
528552BOOTLOADER_OFFSET = 0x0
553+ else ifeq ($(IDF_TARGET),esp32c2)
554+ BOOTLOADER_OFFSET = 0x0
529555else ifeq ($(IDF_TARGET),esp32c3)
530556BOOTLOADER_OFFSET = 0x0
531557else ifeq ($(IDF_TARGET),esp32c6)
0 commit comments