@@ -59,12 +59,12 @@ include $(TOP)/supervisor/supervisor.mk
5959# Include make rules and variables common across CircuitPython builds.
6060include $(TOP ) /py/circuitpy_defns.mk
6161
62- ifeq ($(IDF_TARGET ) ,esp32s2)
63- IDF_TARGET_ARCH = xtensa
64- CROSS_COMPILE = xtensa-$(IDF_TARGET ) -elf-
65- else ifeq ($(IDF_TARGET),esp32c3)
62+ ifeq ($(IDF_TARGET ) ,esp32c3)
6663IDF_TARGET_ARCH = riscv
6764CROSS_COMPILE = riscv32-esp-elf-
65+ else
66+ IDF_TARGET_ARCH = xtensa
67+ CROSS_COMPILE = xtensa-$(IDF_TARGET ) -elf-
6868endif
6969
7070# ######################################
@@ -92,6 +92,7 @@ INC += -I.\
9292 -isystem esp-idf/components/esp_common/include \
9393 -isystem esp-idf/components/esp_event/include \
9494 -isystem esp-idf/components/esp_hw_support/include \
95+ -isystem esp-idf/components/esp_hw_support/include/soc \
9596 -isystem esp-idf/components/esp_netif/include \
9697 -isystem esp-idf/components/esp_pm/include \
9798 -isystem esp-idf/components/esp_ringbuf/include \
@@ -101,6 +102,8 @@ INC += -I.\
101102 -isystem esp-idf/components/esp_wifi/include \
102103 -isystem esp-idf/components/freertos/include \
103104 -isystem esp-idf/components/freertos/include/freertos \
105+ -isystem esp-idf/components/freertos/include/esp_additions \
106+ -isystem esp-idf/components/freertos/include/esp_additions/freertos \
104107 -isystem esp-idf/components/freertos/port/$(IDF_TARGET_ARCH ) /include \
105108 -isystem esp-idf/components/hal/include \
106109 -isystem esp-idf/components/hal/$(IDF_TARGET ) /include \
@@ -158,12 +161,11 @@ endif
158161
159162LDFLAGS = $(CFLAGS ) -Wl,-nostdlib -Wl,-Map=$@ .map -Wl,-cref -Wl,--undefined=uxTopUsedPriority
160163
161- LDFLAGS += -L$(BUILD ) /esp-idf/esp-idf/$(IDF_TARGET ) \
162- -L$(BUILD ) /esp-idf/esp-idf/$(IDF_TARGET ) /ld \
163- -Lesp-idf/components/$(IDF_TARGET ) /ld \
164+ LDFLAGS += -L$(BUILD ) /esp-idf/esp-idf/esp_system/ld \
164165 -Lesp-idf/components/esp_rom/$(IDF_TARGET ) /ld \
165- -T$(IDF_TARGET ) _out.ld \
166- -T$(IDF_TARGET ) .project.ld \
166+ -Lesp-idf/components/soc/$(IDF_TARGET ) /ld \
167+ -Tmemory.ld \
168+ -Tsections.ld \
167169 -T$(IDF_TARGET ) .peripherals.ld \
168170 -T$(IDF_TARGET ) .rom.ld \
169171 -T$(IDF_TARGET ) .rom.api.ld \
@@ -174,10 +176,13 @@ ifeq ($(IDF_TARGET),esp32c3)
174176LDFLAGS += -Tesp32c3.rom.newlib.ld \
175177 -Tesp32c3.rom.version.ld \
176178 -Tesp32c3.rom.eco3.ld
177- else
179+ else ifeq ($(IDF_TARGET),esp32s2)
178180LDFLAGS += -T$(IDF_TARGET ) .rom.newlib-data.ld \
179181 -T$(IDF_TARGET ) .rom.newlib-funcs.ld \
180182 -T$(IDF_TARGET ) .rom.spiflash.ld
183+ else ifeq ($(IDF_TARGET),esp32s3)
184+ LDFLAGS += -Tesp32s3.rom.newlib.ld \
185+ -Tesp32s3.rom.version.ld
181186endif
182187
183188LDFLAGS += -Wl,-Bstatic \
@@ -224,10 +229,14 @@ SRC_C += \
224229 peripherals/timer.c \
225230 peripherals/$(IDF_TARGET ) /pins.c
226231
227- ifneq ($(IDF_TARGET ) ,esp32c3 )
232+ ifeq ($(IDF_TARGET ) ,esp32s2 )
228233SRC_C += \
229234 cam.c \
230- i2s_lcd_esp32s2_driver.c \
235+ i2s_lcd_esp32s2_driver.c
236+ endif
237+
238+ ifneq ($(IDF_TARGET ) ,esp32c3)
239+ SRC_C += \
231240 peripherals/pcnt.c \
232241 peripherals/touch.c
233242endif
@@ -315,20 +324,15 @@ menuconfig: $(BUILD)/esp-idf/config
315324# qstr builds include headers so we need to make sure they are up to date
316325$(HEADER_BUILD ) /qstr.split : | $(BUILD ) /esp-idf/config/sdkconfig.h
317326
318- ESP_IDF_COMPONENTS_LINK = $(IDF_TARGET ) $(IDF_TARGET_ARCH ) app_update bootloader_support driver efuse esp_adc_cal esp_common esp_event esp_hw_support esp_netif esp_pm esp_ringbuf esp_rom esp_system esp_timer esp-tls esp_wifi freertos hal heap log lwip mbedtls newlib nvs_flash pthread soc spi_flash vfs wpa_supplicant
327+ BINARY_WIFI_BLOBS = libcoexist.a libcore.a libespnow.a libmesh.a libnet80211.a libpp.a libsmartconfig.a libwapi.a
328+ BINARY_BLOBS = esp-idf/components/esp_phy/lib/$(IDF_TARGET ) /libphy.a $(addprefix esp-idf/components/esp_wifi/lib/$(IDF_TARGET ) /, $(BINARY_WIFI_BLOBS ) )
319329
330+ ESP_IDF_COMPONENTS_LINK = $(IDF_TARGET_ARCH ) app_update bootloader_support driver efuse esp_adc_cal esp_common esp_event esp_hw_support esp_ipc esp_netif esp_pm esp_phy esp_ringbuf esp_rom esp_system esp_timer esp-tls esp_wifi freertos hal heap log lwip mbedtls newlib nvs_flash pthread soc spi_flash vfs wpa_supplicant
320331ESP_IDF_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/$(component ) /lib$(component ) .a)
321- ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/$(component ) /lib$(component ) .a)
322332
323333MBEDTLS_COMPONENTS_LINK = crypto tls x509
324334MBEDTLS_COMPONENTS_LINK_EXPANDED = $(foreach component, $(MBEDTLS_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/mbedtls/mbedtls/library/libmbed$(component ) .a)
325335
326- BINARY_WIFI_BLOBS = libcoexist.a libcore.a libespnow.a libmesh.a libnet80211.a libpp.a libsmartconfig.a libphy.a
327- ifneq ($(IDF_TARGET ) ,esp32c3)
328- BINARY_WIFI_BLOBS += librtc.a
329- endif
330- BINARY_BLOBS = $(addprefix esp-idf/components/esp_wifi/lib/$(IDF_TARGET ) /, $(BINARY_WIFI_BLOBS ) )
331-
332336ifeq ($(IDF_TARGET_ARCH ) ,xtensa)
333337BINARY_BLOBS += esp-idf/components/xtensa/$(IDF_TARGET ) /libxt_hal.a
334338ESP_IDF_COMPONENTS_EXPANDED += esp-idf/components/xtensa/$(IDF_TARGET ) /libxt_hal.a
@@ -360,17 +364,18 @@ endif
360364esp-idf-stamp : $(BUILD ) /esp-idf/config/sdkconfig.h
361365 $(Q ) ninja -C $(BUILD ) /esp-idf \
362366 bootloader/bootloader.bin \
367+ esp-idf/esp_system/__ldgen_output_sections.ld \
363368 esp-idf/app_update/libapp_update.a \
364369 esp-idf/bootloader_support/libbootloader_support.a \
365370 esp-idf/driver/libdriver.a \
366371 esp-idf/efuse/libefuse.a \
367- esp-idf/$(IDF_TARGET ) /lib$(IDF_TARGET ) .a \
368- esp-idf/$(IDF_TARGET ) /ld/$(IDF_TARGET ) .project.ld \
369372 esp-idf/esp_adc_cal/libesp_adc_cal.a \
370373 esp-idf/esp_common/libesp_common.a \
371374 esp-idf/esp_event/libesp_event.a \
372375 esp-idf/esp_hw_support/libesp_hw_support.a \
376+ esp-idf/esp_ipc/libesp_ipc.a \
373377 esp-idf/esp_netif/libesp_netif.a \
378+ esp-idf/esp_phy/libesp_phy.a \
374379 esp-idf/esp_pm/libesp_pm.a \
375380 esp-idf/esp_ringbuf/libesp_ringbuf.a \
376381 esp-idf/esp_rom/libesp_rom.a \
0 commit comments