@@ -8,6 +8,8 @@ include ../../py/circuitpy_mkenv.mk
88
99ifeq ($(IDF_TARGET ) ,esp32s3)
1010BT_IDF_TARGET = esp32c3
11+ else ifeq ($(IDF_TARGET),esp32c61)
12+ BT_IDF_TARGET = esp32c6
1113else
1214BT_IDF_TARGET = $(IDF_TARGET )
1315endif
@@ -64,6 +66,7 @@ INC += \
6466 -isystem esp-idf/components/esp_driver_i2s/include \
6567 -isystem esp-idf/components/esp_driver_$(IDF_TARGET ) /include \
6668 -isystem esp-idf/components/esp_driver_ledc/include \
69+ -isystem esp-idf/components/esp_driver_parlio/include \
6770 -isystem esp-idf/components/esp_driver_pcnt/include \
6871 -isystem esp-idf/components/esp_driver_rmt/include \
6972 -isystem esp-idf/components/esp_driver_sdio/include \
@@ -149,20 +152,26 @@ CFLAGS += -DSTACK_CANARY_VALUE=0xa5a5a5a5
149152REGISTRATION_FUNCTIONS = \
150153 -u ld_include_highint_hdl \
151154 -u __cxx_fatal_exception \
155+ -u __cxx_init_dummy \
156+ -u __cxa_guard_dummy \
152157 -u esp_app_desc \
153158 -u esp_timer_init_include_func \
154159 -u uart_vfs_include_dev_init \
155160 -u esp_vfs_include_console_register \
156161 -u __ubsan_include \
157162 -u esp_system_include_startup_funcs \
158163 -u esp_efuse_startup_include_func \
159- -u newlib_include_heap_impl \
160- -u newlib_include_syscalls_impl \
161- -u newlib_include_pthread_impl \
162- -u newlib_include_assert_impl \
163- -u newlib_include_init_funcs \
164+ -u esp_libc_include_heap_impl \
165+ -u esp_libc_include_reent_syscalls_impl \
166+ -u esp_libc_include_syscalls_impl \
167+ -u esp_libc_include_pthread_impl \
168+ -u esp_libc_include_assert_impl \
169+ -u esp_libc_include_getentropy_impl \
170+ -u esp_libc_include_init_funcs \
171+ -u esp_libc_init_funcs \
164172 -u include_esp_phy_override \
165- -u vfs_include_syscalls_impl
173+ -u vfs_include_syscalls_impl \
174+ -u esp_vfs_include_nullfs_register
166175
167176
168177# Debugging/Optimization
@@ -196,7 +205,6 @@ CFLAGS += $(INC) -Werror -Wall -std=gnu11 -Wl,--gc-sections $(BASE_CFLAGS) $(C_D
196205# Most current ESPs have nano versions of newlib in ROM so we use them.
197206ifneq ($(IDF_TARGET ) ,esp32c6)
198207 CFLAGS += --specs=nano.specs
199- LDFLAGS += -T$(IDF_TARGET).rom.newlib-nano.ld
200208else
201209 LDFLAGS += -T$(IDF_TARGET).rom.newlib-normal.ld
202210endif
@@ -222,7 +230,6 @@ else ifeq ($(IDF_TARGET_ARCH),riscv)
222230 -Trom.api.ld
223231endif
224232
225- $(BUILD ) /lib/tlsf/tlsf.o : CFLAGS += -Wno-cast-align
226233
227234LDFLAGS += $(CFLAGS ) -Wl,-nostdlib -Wl,-Map=$@ .map -Wl,-cref -Wl,--undefined=uxTopUsedPriority
228235
@@ -244,7 +251,9 @@ LDFLAGS += \
244251ifeq ($(IDF_TARGET ) ,esp32)
245252LDFLAGS += \
246253 -Tesp32.rom.newlib-data.ld \
247- -Tesp32.rom.newlib-funcs.ld \
254+ -Tesp32.rom.syscalls.ld \
255+ -Tesp32.rom.libc-funcs.ld \
256+ -Tesp32.rom.newlib-reent-funcs.ld \
248257 -Tesp32.rom.spiflash_legacy.ld
249258
250259CHIP_COMPONENTS = \
@@ -254,7 +263,9 @@ else ifeq ($(IDF_TARGET),esp32c2)
254263LDFLAGS += \
255264 -Tesp32c2.rom.ble.ld \
256265 -Tesp32c2.rom.heap.ld \
266+ -Tesp32c2.rom.libc.ld \
257267 -Tesp32c2.rom.newlib.ld \
268+ -Tesp32c2.rom.newlib-nano.ld \
258269 -Tesp32c2.rom.version.ld \
259270 -Tesp32c2.rom.systimer.ld \
260271 -Tesp32c2.rom.wdt.ld
@@ -267,6 +278,7 @@ CHIP_COMPONENTS = \
267278else ifeq ($(IDF_TARGET),esp32c3)
268279LDFLAGS += \
269280 -Tesp32c3.rom.newlib.ld \
281+ -Tesp32c3.rom.libc.ld \
270282 -Tesp32c3.rom.version.ld \
271283 -Tesp32c3.rom.eco3_bt_funcs.ld \
272284 -Tesp32c3.rom.eco3.ld \
@@ -280,18 +292,37 @@ LDFLAGS += \
280292 -Tesp32c6.rom.phy.ld \
281293 -Tesp32c6.rom.pp.ld \
282294 -Tesp32c6.rom.net80211.ld \
295+ -Tesp32c6.rom.libc.ld \
283296 -Tesp32c6.rom.newlib.ld \
284297 -Tesp32c6.rom.coexist.ld \
285298 -Tesp32c6.rom.heap.ld \
286299 -Tesp32c6.rom.systimer.ld \
287300 -Tesp32c6.rom.wdt.ld
288301
289302
303+ CHIP_COMPONENTS = \
304+ esp_driver_tsens
305+
306+ else ifeq ($(IDF_TARGET),esp32c61)
307+ LDFLAGS += \
308+ -Tesp32c61.rom.phy.ld \
309+ -Tesp32c61.rom.pp.ld \
310+ -Tesp32c61.rom.net80211.ld \
311+ -Tesp32c61.rom.libc.ld \
312+ -Tesp32c61.rom.newlib.ld \
313+ -Tesp32c61.rom.version.ld \
314+ -Tesp32c61.rom.coexist.ld \
315+ -Tesp32c61.rom.heap.ld \
316+ -Tesp32c61.rom.systimer.ld \
317+ -Tesp32c61.rom.wdt.ld
318+
319+
290320CHIP_COMPONENTS = \
291321 esp_driver_tsens
292322
293323else ifeq ($(IDF_TARGET),esp32p4)
294324LDFLAGS += \
325+ -Tesp32p4.rom.libc.ld \
295326 -Tesp32p4.rom.newlib.ld \
296327 -Tesp32p4.rom.systimer.ld \
297328 -Tesp32p4.rom.wdt.ld
@@ -303,6 +334,7 @@ CHIP_COMPONENTS = \
303334else ifeq ($(IDF_TARGET),esp32h2)
304335LDFLAGS += \
305336 -Tesp32h2.rom.heap.ld \
337+ -Tesp32h2.rom.libc.ld \
306338 -Tesp32h2.rom.newlib.ld \
307339 -Tesp32h2.rom.systimer.ld \
308340 -Tesp32h2.rom.wdt.ld
@@ -312,8 +344,9 @@ CHIP_COMPONENTS = \
312344
313345else ifeq ($(IDF_TARGET),esp32s2)
314346LDFLAGS += \
347+ -Tesp32s2.rom.libc-funcs.ld \
315348 -Tesp32s2.rom.newlib-data.ld \
316- -Tesp32s2.rom.newlib-funcs.ld \
349+ -Tesp32s2.rom.newlib-reent- funcs.ld \
317350 -Tesp32s2.rom.spiflash_legacy.ld
318351
319352CHIP_COMPONENTS = \
@@ -322,6 +355,7 @@ CHIP_COMPONENTS = \
322355
323356else ifeq ($(IDF_TARGET),esp32s3)
324357LDFLAGS += \
358+ -Tesp32s3.rom.libc.ld \
325359 -Tesp32s3.rom.newlib.ld \
326360 -Tesp32s3.rom.version.ld \
327361 -Tesp32s3.rom.systimer.ld \
@@ -350,6 +384,8 @@ else ifeq ($(IDF_TARGET),esp32c3)
350384CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32C3
351385else ifeq ($(IDF_TARGET),esp32c6)
352386CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32C6
387+ else ifeq ($(IDF_TARGET),esp32c61)
388+ CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32C61
353389else ifeq ($(IDF_TARGET),esp32p4)
354390CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32P4
355391else ifeq ($(IDF_TARGET),esp32h2)
@@ -662,7 +698,8 @@ ifneq ($(IDF_TARGET),esp32p4)
662698 BINARY_BLOBS = esp-idf/components/esp_phy/lib/$(IDF_TARGET)/libphy.a
663699endif
664700ifneq ($(CIRCUITPY_WIFI ) ,0)
665- BINARY_BLOBS += esp-idf/components/esp_coex/lib/$(IDF_TARGET)/libcoexist.a $(addprefix esp-idf/components/esp_wifi/lib/$(IDF_TARGET)/, $(BINARY_WIFI_BLOBS))
701+ BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/$(IDF_TARGET)/, $(BINARY_WIFI_BLOBS))
702+ BINARY_BLOBS += esp-idf/components/esp_coex/lib/$(IDF_TARGET)/libcoexist.a
666703 ifneq ($(IDF_TARGET),esp32c2)
667704 BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/$(IDF_TARGET)/, libmesh.a libwapi.a)
668705 endif
@@ -682,6 +719,7 @@ ifneq ($(CIRCUITPY_BLEIO_NATIVE),0)
682719 BLE_IMPL_esp32c2 := libble
683720 BLE_IMPL_esp32c3 := esp32c3
684721 BLE_IMPL_esp32c6 := libble
722+ BLE_IMPL_esp32c61 := libble
685723 BLE_IMPL_esp32h2 := libble
686724 BLE_IMPL = $(BLE_IMPL_$(IDF_TARGET))
687725
@@ -700,8 +738,8 @@ ifneq ($(CIRCUITPY_BLEIO_NATIVE),0)
700738
701739 ifeq ($(BLE_IMPL),libble)
702740 BINARY_BLOBS += esp-idf/components/esp_phy/lib/$(IDF_TARGET)/libbtbb.a
703- ifeq ($(IDF_TARGET ),esp32c6)
704- BINARY_BLOBS += esp-idf/components/bt/controller/lib_$(IDF_TARGET )/$(IDF_TARGET )-bt-lib/$(IDF_TARGET)/libble_app.a
741+ ifeq ($(BT_IDF_TARGET ),esp32c6)
742+ BINARY_BLOBS += esp-idf/components/bt/controller/lib_$(BT_IDF_TARGET )/$(BT_IDF_TARGET )-bt-lib/$(IDF_TARGET)/libble_app.a
705743 else
706744 BINARY_BLOBS += esp-idf/components/bt/controller/lib_$(IDF_TARGET)/$(IDF_TARGET)-bt-lib/libble_app.a
707745 endif
@@ -769,6 +807,8 @@ else ifeq ($(IDF_TARGET),esp32c3)
769807BOOTLOADER_OFFSET = 0x0
770808else ifeq ($(IDF_TARGET),esp32c6)
771809BOOTLOADER_OFFSET = 0x0
810+ else ifeq ($(IDF_TARGET),esp32c61)
811+ BOOTLOADER_OFFSET = 0x0
772812else ifeq ($(IDF_TARGET),esp32p4)
773813BOOTLOADER_OFFSET = 0x2000
774814else ifeq ($(IDF_TARGET),esp32s3)
@@ -782,7 +822,7 @@ endif
782822
783823IDF_CMAKE_TARGETS = \
784824 bootloader/bootloader.bin \
785- esp-idf/esp_system/ __ldgen_output_sections.ld \
825+ __ldgen_output_sections.ld \
786826 $(foreach component, $(ESP_IDF_COMPONENTS_LINK ) , esp-idf/$(component ) /lib$(component ) .a)
787827
788828PARTITION_TABLE_OFFSET = 0x8000
0 commit comments