Skip to content

Commit

Permalink
cpu/esp32: makefile migration to ESP-IDF v5.4
Browse files Browse the repository at this point in the history
  • Loading branch information
gschorcht committed Mar 2, 2025
1 parent a2e22e6 commit 5fe744a
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 23 deletions.
18 changes: 9 additions & 9 deletions cpu/esp32/Makefile.dep
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,8 @@ ifneq (,$(filter esp_eth,$(USEMODULE)))
USEMODULE += esp_idf_eth
USEMODULE += esp_idf_event
USEMODULE += esp_idf_gpio
USEMODULE += esp_idf_spi_flash
USEMODULE += netdev_eth
USEMODULE += netopt
USEMODULE += ztimer_msec
endif

ifneq (,$(filter esp_wifi_any,$(USEMODULE)))
Expand All @@ -50,7 +48,6 @@ ifneq (,$(filter esp_wifi_any,$(USEMODULE)))
USEMODULE += esp_idf_event
USEMODULE += esp_idf_heap
USEMODULE += esp_idf_nvs_flash
USEMODULE += esp_idf_spi_flash
USEMODULE += esp_idf_wifi
USEMODULE += esp_idf_wpa_supplicant
USEMODULE += esp_idf_wpa_supplicant_esp_supplicant
Expand All @@ -60,7 +57,7 @@ ifneq (,$(filter esp_wifi_any,$(USEMODULE)))
USEMODULE += esp_idf_wpa_supplicant_crypto
USEMODULE += esp_idf_wpa_supplicant_eap_peer
USEMODULE += esp_idf_wpa_supplicant_rsn_supp
USEMODULE += esp_idf_wpa_supplicant_tls
# USEMODULE += esp_idf_wpa_supplicant_tls
USEMODULE += esp_idf_wpa_supplicant_utils
USEMODULE += esp_idf_wpa_supplicant_wps
USEMODULE += pthread
Expand Down Expand Up @@ -123,7 +120,6 @@ ifneq (,$(filter esp_spi_ram,$(USEMODULE)))
FEATURES_OPTIONAL += esp_spi_oct
USEMODULE += esp_idf_gpio
USEMODULE += esp_idf_heap
USEMODULE += esp_idf_spi_flash
USEMODULE += esp_idf_spi_ram
endif

Expand All @@ -147,6 +143,10 @@ ifneq (,$(filter esp_idf_heap,$(USEMODULE)))
USEPKG += esp32_sdk_tlsf
endif

ifneq (,$(filter esp_jtag,$(USEMODULE)))
FEATURES_REQUIRED += esp_jtag
endif

ifneq (,$(filter lcd_parallel_ll_mcu,$(USEMODULE)))
USEMODULE += esp_lcd
USEMODULE += esp_idf_lcd
Expand Down Expand Up @@ -206,11 +206,11 @@ ifneq (,$(filter tinyusb_portable_espressif,$(USEMODULE)))
USEMODULE += esp_idf_usb
endif

ifneq (,$(filter esp_jtag,$(USEMODULE)))
FEATURES_REQUIRED += esp_jtag
endif

# enable bootloader reset over USB, requires CDC ACM to be used
ifneq (,$(filter usbus_cdc_acm tinyusb_class_cdc,$(USEMODULE)))
USEMODULE += usb_board_reset
endif

ifneq (,$(filter ztimer,$(USEMODULE)))
USEMODULE += ztimer_auto_adjust
endif
80 changes: 66 additions & 14 deletions cpu/esp32/Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,17 @@ INCLUDES += -I$(RIOTCPU)/$(CPU)/vendor/include

INCLUDES += -I$(ESP32_SDK_DIR)/components
INCLUDES += -I$(ESP32_SDK_DIR)/components/bootloader_support/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/driver/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/driver/deprecated
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_adc/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_common/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_driver_gpio/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_hw_support/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_hw_support/include/soc
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_hw_support/port/$(CPU_FAM)/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_rom/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_rom/include/$(CPU_FAM)
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/include/$(CPU_FAM)
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_system/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_system/port/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_timer/include
Expand All @@ -144,7 +148,9 @@ INCLUDES += -I$(ESP32_SDK_DIR)/components/log/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/newlib/platform_include
INCLUDES += -I$(ESP32_SDK_DIR)/components/soc/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/soc/$(CPU_FAM)/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/soc/$(CPU_FAM)/register
INCLUDES += -I$(ESP32_SDK_DIR)/components/spi_flash/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/spi_flash/include/spi_flash

ifneq (,$(filter riscv32%,$(TARGET_ARCH)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/riscv/include
Expand All @@ -156,22 +162,35 @@ ifneq (,$(filter xtensa%,$(TARGET_ARCH)))
endif

ifneq (,$(filter esp_ble,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/bt/include/$(CPU_FAM)/include
ifeq (esp32,$(CPU_FAM))
INCLUDES += -I$(ESP32_SDK_DIR)/components/bt/include/$(CPU_FAM)/include
else ifneq (,$(filter esp32s3 esp32c3,$(CPU_FAM)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/bt/include/esp32c3/include
endif
endif

ifneq (,$(filter esp_ble_nimble,$(USEMODULE)))
INCLUDES += -I$(RIOTCPU)/$(CPU)/include/esp_ble_nimble
INCLUDES += $(NIMIBASE)/nimble/transport/common/hci_h4/include
endif

ifneq (,$(filter esp_i2c_hw,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_driver_i2c/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_pm/include
endif

ifneq (,$(filter esp_spi_ram,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_hw_support/include/soc/$(CPU_FAM)
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_psram/include
endif

ifneq (,$(filter esp_idf_lcd,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_lcd/include
endif

ifneq (,$(filter esp_idf_nvs_flash,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_partition/include
endif

ifneq (,$(filter esp_idf_spi_flash,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/spi_flash/include
endif
Expand Down Expand Up @@ -202,14 +221,26 @@ ifneq (,$(filter esp_eth,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_wifi/include
endif

ifneq (,$(filter periph_sdmmc,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_driver_sdmmc/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/sdmmc/include
INCLUDES += -I$(ESP32_SDK_DIR)/components/esp_hw_support/dma/include
endif

ifneq (,$(filter ws281x_esp32_hw,$(USEMODULE)))
INCLUDES += -I$(ESP32_SDK_DIR)/components/driver/deprecated
CFLAGS += -DCONFIG_RMT_SUPPRESS_DEPRECATE_WARN
endif

CFLAGS += -DCPU_FAM_$(call uppercase_and_underscore,$(CPU_FAM))

# we use ESP32 only in single core mode
# we use ESP32x SoC only in single core mode
CFLAGS += -DCONFIG_ESP_SYSTEM_SINGLE_CORE_MODE
CFLAGS += -DCONFIG_FREERTOS_UNICORE

# other ESP-IDF configurations
CFLAGS += -DCONFIG_IDF_TARGET_$(call uppercase_and_underscore,$(CPU_FAM))
CFLAGS += -DCONFIG_IDF_TARGET=\"$(CPU_FAM)\"
CFLAGS += -DESP_PLATFORM
CFLAGS += -DLOG_TAG_IN_BRACKETS

Expand Down Expand Up @@ -246,7 +277,9 @@ CFLAGS += -D_CONST=const

# TODO no relaxation yet
ifneq (,$(filter riscv%,$(TARGET_ARCH)))
CFLAGS += -DCONFIG_IDF_TARGET_ARCH_RISCV
CFLAGS += -mno-relax -march=rv32imc_zicsr_zifencei -mabi=ilp32 -DRISCV_NO_RELAX
LDGENFLAGS += -DCONFIG_IDF_TARGET_ARCH_RISCV
LINKFLAGS += -mno-relax -march=rv32imc_zicsr_zifencei -mabi=ilp32
GCC_NEW_RISCV_ISA ?= $(shell echo "typedef int dont_be_pedantic;" | \
$(TARGET_ARCH)-gcc -march=rv32imac -mabi=ilp32 \
Expand All @@ -258,6 +291,8 @@ ifneq (,$(filter riscv%,$(TARGET_ARCH)))
endif

ifneq (,$(filter xtensa%,$(TARGET_ARCH)))
CFLAGS += -DCONFIG_IDF_TARGET_ARCH_XTENSA
LDGENFLAGS += -DCONFIG_IDF_TARGET_ARCH_XTENSA
LINKFLAGS += -L$(ESP32_SDK_DIR)/components/xtensa/$(CPU_FAM)
ARCHIVES += -lxt_hal
endif
Expand All @@ -272,13 +307,25 @@ LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.api.ld
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.libgcc.ld

ifeq (esp32s2,$(CPU_FAM))
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.spiflash.ld
ifeq (esp32,$(CPU_FAM))
# We don't use newlibc functions in ROM for ESP32
# LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.newlib-data.ld
# LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.newlib-funcs.lds
else ifeq (esp32s2,$(CPU_FAM))
# We don't use newlibc functions in ROM for ESP32-S2
# LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.newlib-data.ld
# LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.newlib-funcs.ld
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.spiflash_legacy.ld
else ifeq (esp32s3,$(CPU_FAM))
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.ble_cca.ld
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.bt_funcs.ld
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.newlib.ld
else ifeq (esp32c3,$(CPU_FAM))
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.ble_cca.ld
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.bt_funcs.ld
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.newlib.ld
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.eco3.ld
else ifeq (esp32s3,$(CPU_FAM))
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/esp_rom/$(CPU_FAM)/ld/$(CPU_FAM).rom.newlib.ld
LINKFLAGS += -T$(ESP32_SDK_DIR)/components/riscv/ld/rom.api.ld
endif

LINKFLAGS += -nostdlib -lgcc -Wl,-gc-sections
Expand All @@ -293,6 +340,7 @@ endif
ifneq (,$(filter esp_wifi_any,$(USEMODULE)))
LINKFLAGS += -L$(ESP32_SDK_LIB_WIFI_DIR)/$(CPU_FAM)
LINKFLAGS += -L$(ESP32_SDK_LIB_PHY_DIR)/$(CPU_FAM)
LINKFLAGS += -L$(ESP32_SDK_LIB_COEXIST_DIR)/$(CPU_FAM)
ARCHIVES += -lcoexist -lcore -lmesh -lnet80211 -lpp
ARCHIVES += -lphy -lstdc++
ifeq (esp32,$(CPU_FAM))
Expand Down Expand Up @@ -342,13 +390,17 @@ ifneq (,$(filter esp_jtag,$(USEMODULE)))
endif

LD_SCRIPTS += $(BINDIR)/memory.ld $(BINDIR)/sections.ld
LDGENFLAGS += -DLD_FILE_GEN
LDGENFLAGS += -DRESERVE_RTC_MEM=0x18
LDGENFLAGS += -DESP_BOOTLOADER_RESERVE_RTC=0x18

$(BINDIR)/memory.ld: $(RIOTCPU)/$(CPU)/ld/$(CPU_FAM)/memory.ld.in \
$(BINDIR)/memory.ld: $(RIOTCPU)/$(CPU)/vendor/ld/$(CPU_FAM)/memory.ld.in \
$(BINDIR)/riotbuild/riotbuild.h pkg-prepare
$(Q)$(CC) -DLD_FILE_GEN $(INCLUDES) -include '$(BINDIR)/riotbuild/riotbuild.h' \
-I$(RIOTCPU)/$(CPU)/ld -P -x c -E $< -o $@
$(BINDIR)/sections.ld: $(RIOTCPU)/$(CPU)/ld/$(CPU_FAM)/sections.ld.in \
$(Q)$(CC) $(INCLUDES) -include '$(BINDIR)/riotbuild/riotbuild.h' \
$(LDGENFLAGS) -I$(RIOTCPU)/$(CPU)/vendor/ld -P -x c -E $< -o $@
$(BINDIR)/sections.ld: $(RIOTCPU)/$(CPU)/vendor/ld/$(CPU_FAM)/sections.ld.in \
$(BINDIR)/riotbuild/riotbuild.h pkg-prepare
$(Q)$(CC) -DLD_FILE_GEN -include '$(BINDIR)/riotbuild/riotbuild.h' -C -P -x c -E $< -o $@
$(Q)$(CC) $(INCLUDES) -include '$(BINDIR)/riotbuild/riotbuild.h' \
$(LDGENFLAGS) -I$(RIOTCPU)/$(CPU)/vendor/ld -C -P -x c -E $< -o $@

$(BOOTLOADER_BIN):

0 comments on commit 5fe744a

Please sign in to comment.