config SPIRAM bool "Support for external PSRAM" default "n" help This enables support for an external PSRAM chip, connected in parallel with the main SPI flash chip. menu "PSRAM config" depends on SPIRAM choice SPIRAM_MODE prompt "Line Mode of PSRAM chip in use" default SPIRAM_MODE_HEX config SPIRAM_MODE_HEX bool "16-Line-Mode PSRAM" endchoice config SPIRAM_USE_8LINE_MODE bool depends on SPIRAM_MODE_HEX default n help Enable 8-Line-Mode of the AP HEX PSRAM choice SPIRAM_SPEED prompt "Set PSRAM clock speed" default SPIRAM_SPEED_20M help Select the speed for the PSRAM chip. config SPIRAM_SPEED_200M depends on IDF_EXPERIMENTAL_FEATURES bool "200MHz clock speed" config SPIRAM_SPEED_20M bool "20MHz clock speed" endchoice config SPIRAM_SPEED int default 20 if SPIRAM_SPEED_20M default 100 if SPIRAM_SPEED_100M default 200 if SPIRAM_SPEED_200M config SPIRAM_FETCH_INSTRUCTIONS bool help Enable this option allows moving application's instruction segment from the SPI Flash to PSRAM config SPIRAM_RODATA bool help Enable this option allows moving application's rodata segment from the SPI Flash to PSRAM config SPIRAM_XIP_FROM_PSRAM bool "Enable Executable in place from (XiP) from PSRAM feature (READ HELP)" default n select SPIRAM_FETCH_INSTRUCTIONS select SPIRAM_RODATA select SPIRAM_FLASH_LOAD_TO_PSRAM help If enabled, firmware in flash including instructions and data will be moved into PSRAM on startup, firmware code will execute directly from PSRAM. With this option enabled, code that requires execution during an MSPI1 Flash operation does not have to be placed in IRAM. Therefore codes that need to be executing during Flash operations can continue working normally. Because P4 flash and PSRAM are using two separate SPI buses, moving flash content to PSRAM will actually increase the load of the PSRAM MSPI bus, so the exact impact on performance will be dependent on your app usage of PSRAM. For example, as the PSRAM bus speed could be much faster than flash bus speed, if the instructions and data that are used to be in flash are not accessed very frequently, you might get better performance with this option enabled. We suggest doing performance profiling to determine if enabling this option. config SPIRAM_FLASH_LOAD_TO_PSRAM bool help This is a helper indicating this condition: `CONFIG_SPIRAM_XIP_FROM_PSRAM && CONFIG_IDF_TARGET_ESP32P4` config SPIRAM_ECC_ENABLE bool "Enable PSRAM ECC" default n help Enable Error-Correcting Code function when accessing PSRAM. If enabled, 1/8 of the PSRAM total size will be reserved for error-correcting code. config SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY bool "Allow external memory as an argument to xTaskCreateStatic" default y help Accessing memory in PSRAM has certain restrictions, so task stacks allocated by xTaskCreate are by default allocated from internal RAM. This option allows for passing memory allocated from PSRAM to be passed to xTaskCreateStatic. This should only be used for tasks where the stack is never accessed while the L2Cache is disabled, e.g. during SPI Flash operations source "$IDF_PATH/components/esp_psram/Kconfig.spiram.common" # insert non-chip-specific items here endmenu