summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngus Gratton <angus@redyak.com.au>2025-03-04 12:30:10 +1100
committerDamien George <damien@micropython.org>2025-03-13 11:33:10 +1100
commit4d65b4e26119ab19de362174ec62cc3ea68a836a (patch)
treee0ee00375a737a3a4ed7d63b87bf932425f2bae9
parent4b1c666c28ef9adb5a9b5156624bccd6a3d129b6 (diff)
esp32: Remove the ESP32 ringbuffer linker workaround.
Reverts workaround added in acbdbcd9. According to the linked ESP-IDF issue this was only a problem for ESP-IDF V5.0.x, and support for versions older than V5.2 was dropped in 6e5d8d009. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
-rw-r--r--ports/esp32/boards/sdkconfig.spiram2
-rw-r--r--ports/esp32/esp32_common.cmake2
-rw-r--r--ports/esp32/main/linker_esp32.lf41
3 files changed, 1 insertions, 44 deletions
diff --git a/ports/esp32/boards/sdkconfig.spiram b/ports/esp32/boards/sdkconfig.spiram
index 35fe3c676..f5503d554 100644
--- a/ports/esp32/boards/sdkconfig.spiram
+++ b/ports/esp32/boards/sdkconfig.spiram
@@ -13,6 +13,6 @@ CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=8192
# to PSRAM bug workarounds. Apply some options to reduce the firmware size.
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y
-# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y # Workaround required: see main_esp32/linker.lf
+CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
diff --git a/ports/esp32/esp32_common.cmake b/ports/esp32/esp32_common.cmake
index 09952363d..6473f04a5 100644
--- a/ports/esp32/esp32_common.cmake
+++ b/ports/esp32/esp32_common.cmake
@@ -193,8 +193,6 @@ list(APPEND IDF_COMPONENTS
# Provide the default LD fragment if not set
if (MICROPY_USER_LDFRAGMENTS)
set(MICROPY_LDFRAGMENTS ${MICROPY_USER_LDFRAGMENTS})
-else()
- set(MICROPY_LDFRAGMENTS linker_esp32.lf)
endif()
# Register the main IDF component.
diff --git a/ports/esp32/main/linker_esp32.lf b/ports/esp32/main/linker_esp32.lf
deleted file mode 100644
index 27e4ac219..000000000
--- a/ports/esp32/main/linker_esp32.lf
+++ /dev/null
@@ -1,41 +0,0 @@
-# This fixes components/esp_ringbuf/linker.lf for ESP32 only to allow us to put
-# non-ISR ringbuf functions in flash.
-
-# Requires that both RINGBUF_PLACE_FUNCTIONS_INTO_FLASH and RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH
-# are set to "n" (which is the default), otherwise this would result in duplicate section config
-# when resolving the linker fragments.
-
-# The effect of this file is to leave the ISR functions in RAM (which we require), but apply a fixed
-# version of RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y (leaving out prvGetFreeSize and prvGetCurMaxSizeByteBuf)
-# See https://github.com/espressif/esp-idf/issues/13378
-
-[mapping:esp_ringbuf_fix]
-archive: libesp_ringbuf.a
-entries:
- if IDF_TARGET_ESP32 = y:
- # This is exactly the list of functions from RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y,
- # but with prvGetFreeSize and prvGetCurMaxSizeByteBuf removed.
- ringbuf: prvGetCurMaxSizeNoSplit (default)
- ringbuf: prvGetCurMaxSizeAllowSplit (default)
- ringbuf: prvInitializeNewRingbuffer (default)
- ringbuf: prvReceiveGeneric (default)
- ringbuf: vRingbufferDelete (default)
- ringbuf: vRingbufferGetInfo (default)
- ringbuf: vRingbufferReturnItem (default)
- ringbuf: xRingbufferAddToQueueSetRead (default)
- ringbuf: xRingbufferCanRead (default)
- ringbuf: xRingbufferCreate (default)
- ringbuf: xRingbufferCreateStatic (default)
- ringbuf: xRingbufferCreateNoSplit (default)
- ringbuf: xRingbufferReceive (default)
- ringbuf: xRingbufferReceiveSplit (default)
- ringbuf: xRingbufferReceiveUpTo (default)
- ringbuf: xRingbufferRemoveFromQueueSetRead (default)
- ringbuf: xRingbufferSend (default)
- ringbuf: xRingbufferSendAcquire (default)
- ringbuf: xRingbufferSendComplete (default)
- ringbuf: xRingbufferPrintInfo (default)
- ringbuf: xRingbufferGetMaxItemSize (default)
- ringbuf: xRingbufferGetCurFreeSize (default)
-
- # Everything else will have the default rule already applied (i.e. noflash_text).