diff --git a/ports/esp32/boards/ESP32_GENERIC/mpconfigvariant_SPIRAM.cmake b/ports/esp32/boards/ESP32_GENERIC/mpconfigvariant_SPIRAM.cmake index 6b467d562ee0c..55463ecf93b80 100644 --- a/ports/esp32/boards/ESP32_GENERIC/mpconfigvariant_SPIRAM.cmake +++ b/ports/esp32/boards/ESP32_GENERIC/mpconfigvariant_SPIRAM.cmake @@ -1,5 +1,5 @@ list(APPEND SDKCONFIG_DEFAULTS - boards/sdkconfig.spiram + boards/sdkconfig.spiram_esp32 ) list(APPEND MICROPY_DEF_BOARD diff --git a/ports/esp32/boards/ESP32_GENERIC_C5/board.md b/ports/esp32/boards/ESP32_GENERIC_C5/board.md index 82bac44b96fd7..dc9365deafc56 100644 --- a/ports/esp32/boards/ESP32_GENERIC_C5/board.md +++ b/ports/esp32/boards/ESP32_GENERIC_C5/board.md @@ -1,2 +1,6 @@ The following files are firmware images that should work on most ESP32-C5-based -boards with at least 4MiB of flash and 40MHz/48MHz crystal frequency. +boards with at least 4MiB of flash and 40MHz/48MHz crystal frequency. + +This firmware supports configurations with and without SPIRAM (also known as +PSRAM) and will auto-detect a connected SPIRAM chip at startup and allocate +the MicroPython heap accordingly. diff --git a/ports/esp32/boards/LILYGO_T3_S3/mpconfigboard.cmake b/ports/esp32/boards/LILYGO_T3_S3/mpconfigboard.cmake index 4c1c2821dd43d..66428a8c2698c 100644 --- a/ports/esp32/boards/LILYGO_T3_S3/mpconfigboard.cmake +++ b/ports/esp32/boards/LILYGO_T3_S3/mpconfigboard.cmake @@ -4,7 +4,7 @@ set(SDKCONFIG_DEFAULTS boards/sdkconfig.base boards/sdkconfig.ble boards/sdkconfig.240mhz - boards/sdkconfig.spiram_sx + boards/sdkconfig.spiram_quad boards/sdkconfig.flash_qio_80m ${MICROPY_BOARD_DIR}/sdkconfig.board ) diff --git a/ports/esp32/boards/M5STACK_ATOMS3_LITE/mpconfigboard.cmake b/ports/esp32/boards/M5STACK_ATOMS3_LITE/mpconfigboard.cmake index 2eb83f4bf17a3..2cd46827750ad 100644 --- a/ports/esp32/boards/M5STACK_ATOMS3_LITE/mpconfigboard.cmake +++ b/ports/esp32/boards/M5STACK_ATOMS3_LITE/mpconfigboard.cmake @@ -3,4 +3,4 @@ include(boards/mpconfigboard_esp32s3_common.cmake) list(APPEND SDKCONFIG_DEFAULTS boards/sdkconfig.flash_qio_80m) # This board has no PSRAM -list(REMOVE_ITEM SDKCONFIG_DEFAULTS boards/sdkconfig.spiram_sx) +list(REMOVE_ITEM SDKCONFIG_DEFAULTS boards/sdkconfig.spiram_quad) diff --git a/ports/esp32/boards/SIL_MANT1S/mpconfigboard.cmake b/ports/esp32/boards/SIL_MANT1S/mpconfigboard.cmake index 3b85060b5c8f9..7c2bc27f78ad7 100644 --- a/ports/esp32/boards/SIL_MANT1S/mpconfigboard.cmake +++ b/ports/esp32/boards/SIL_MANT1S/mpconfigboard.cmake @@ -1,7 +1,7 @@ include(boards/mpconfigboard_esp32_common.cmake) list(APPEND SDKCONFIG_DEFAULTS - boards/sdkconfig.spiram + boards/sdkconfig.spiram_esp32 boards/sdkconfig.240mhz boards/sdkconfig.flash_qio_80m boards/SIL_MANT1S/sdkconfig.board diff --git a/ports/esp32/boards/SPARKFUN_THINGPLUS_ESP32C5/mpconfigboard.cmake b/ports/esp32/boards/SPARKFUN_THINGPLUS_ESP32C5/mpconfigboard.cmake index 8ce60b1b24fe2..0d4b56e98d385 100644 --- a/ports/esp32/boards/SPARKFUN_THINGPLUS_ESP32C5/mpconfigboard.cmake +++ b/ports/esp32/boards/SPARKFUN_THINGPLUS_ESP32C5/mpconfigboard.cmake @@ -1,7 +1,6 @@ include(boards/mpconfigboard_esp32c5_common.cmake) list(APPEND SDKCONFIG_DEFAULTS - boards/sdkconfig.flash_qio_80m - boards/sdkconfig.spiram) + boards/sdkconfig.flash_qio_80m) set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py) diff --git a/ports/esp32/boards/UM_TINYPICO/mpconfigboard.cmake b/ports/esp32/boards/UM_TINYPICO/mpconfigboard.cmake index 5c9645d19bcd5..e25d285d9b78b 100644 --- a/ports/esp32/boards/UM_TINYPICO/mpconfigboard.cmake +++ b/ports/esp32/boards/UM_TINYPICO/mpconfigboard.cmake @@ -2,7 +2,7 @@ include(boards/mpconfigboard_esp32_common.cmake) list(APPEND SDKCONFIG_DEFAULTS boards/sdkconfig.240mhz - boards/sdkconfig.spiram + boards/sdkconfig.spiram_esp32 boards/sdkconfig.flash_qio_80m boards/UM_TINYPICO/sdkconfig.board ) diff --git a/ports/esp32/boards/mpconfigboard_esp32c5_common.cmake b/ports/esp32/boards/mpconfigboard_esp32c5_common.cmake index 326bc4e75d188..490f12571df5d 100644 --- a/ports/esp32/boards/mpconfigboard_esp32c5_common.cmake +++ b/ports/esp32/boards/mpconfigboard_esp32c5_common.cmake @@ -5,5 +5,5 @@ set(SDKCONFIG_DEFAULTS boards/sdkconfig.riscv boards/sdkconfig.ble boards/sdkconfig.240mhz - boards/sdkconfig.free_ram + boards/sdkconfig.spiram_quad ) diff --git a/ports/esp32/boards/mpconfigboard_esp32s2_common.cmake b/ports/esp32/boards/mpconfigboard_esp32s2_common.cmake index 6907adb81926a..ea97ad0d5c501 100644 --- a/ports/esp32/boards/mpconfigboard_esp32s2_common.cmake +++ b/ports/esp32/boards/mpconfigboard_esp32s2_common.cmake @@ -2,5 +2,5 @@ set(IDF_TARGET esp32s2) set(SDKCONFIG_DEFAULTS boards/sdkconfig.base - boards/sdkconfig.spiram_sx + boards/sdkconfig.spiram_quad ) diff --git a/ports/esp32/boards/mpconfigboard_esp32s3_common.cmake b/ports/esp32/boards/mpconfigboard_esp32s3_common.cmake index 96c251abd66e0..15eaf60167ec7 100644 --- a/ports/esp32/boards/mpconfigboard_esp32s3_common.cmake +++ b/ports/esp32/boards/mpconfigboard_esp32s3_common.cmake @@ -3,5 +3,5 @@ set(IDF_TARGET esp32s3) set(SDKCONFIG_DEFAULTS boards/sdkconfig.base boards/sdkconfig.ble - boards/sdkconfig.spiram_sx + boards/sdkconfig.spiram_quad ) diff --git a/ports/esp32/boards/sdkconfig.spiram b/ports/esp32/boards/sdkconfig.spiram_esp32 similarity index 83% rename from ports/esp32/boards/sdkconfig.spiram rename to ports/esp32/boards/sdkconfig.spiram_esp32 index 79c7510b5380d..db0d5380c9262 100644 --- a/ports/esp32/boards/sdkconfig.spiram +++ b/ports/esp32/boards/sdkconfig.spiram_esp32 @@ -1,4 +1,5 @@ -# MicroPython on ESP32, ESP IDF configuration with SPIRAM support +# Extra ESP-IDF config for PSRAM (SPIRAM) support on original ESP32 +# (includes workarounds not needed on other chips, which should use sdkconfig.spiram_quad.) CONFIG_SPIRAM=y CONFIG_SPIRAM_CACHE_WORKAROUND=y diff --git a/ports/esp32/boards/sdkconfig.spiram_oct b/ports/esp32/boards/sdkconfig.spiram_oct index aaea64fcd5c08..25af2a395cf46 100644 --- a/ports/esp32/boards/sdkconfig.spiram_oct +++ b/ports/esp32/boards/sdkconfig.spiram_oct @@ -1,3 +1,3 @@ -# MicroPython on ESP32-S2 and ESP32-PAD1_subscript_3, ESP IDF configuration with SPIRAM support in Octal mode +# Extra ESP-IDF config for Octal mode PSRAM (SPIRAM) support on ESP32-S3 CONFIG_SPIRAM_MODE_QUAD= CONFIG_SPIRAM_MODE_OCT=y diff --git a/ports/esp32/boards/sdkconfig.spiram_sx b/ports/esp32/boards/sdkconfig.spiram_quad similarity index 64% rename from ports/esp32/boards/sdkconfig.spiram_sx rename to ports/esp32/boards/sdkconfig.spiram_quad index efe53ada41625..b3b60bf9c2dbf 100644 --- a/ports/esp32/boards/sdkconfig.spiram_sx +++ b/ports/esp32/boards/sdkconfig.spiram_quad @@ -1,8 +1,5 @@ -# MicroPython on ESP32-S2 and ESP32-PAD1_subscript_3, ESP IDF configuration with SPIRAM support +# Extra ESP-IDF config for Quad mode PSRAM (SPIRAM) support on ESP32-C5, ESP32-S2 & ESP32-S3 CONFIG_SPIRAM_MODE_QUAD=y -CONFIG_SPIRAM_TYPE_AUTO=y -CONFIG_SPIRAM_CLK_IO=30 -CONFIG_SPIRAM_CS_IO=26 CONFIG_SPIRAM_SPEED_80M=y CONFIG_SPIRAM=y CONFIG_SPIRAM_BOOT_INIT=y