diff --git a/components/esp32s2/Kconfig b/components/esp32s2/Kconfig index abdaef4a8..455370d1f 100644 --- a/components/esp32s2/Kconfig +++ b/components/esp32s2/Kconfig @@ -118,7 +118,10 @@ menu "ESP32S2-specific" choice SPIRAM_TYPE prompt "Type of SPI RAM chip in use" - default SPIRAM_TYPE_ESPPSRAM32 + default SPIRAM_TYPE_ESPPSRAM16 + + config SPIRAM_TYPE_ESPPSRAM16 + bool "ESP-PSRAM16 or APS1604" config SPIRAM_TYPE_ESPPSRAM32 bool "ESP-PSRAM32 or IS25WP032" @@ -129,6 +132,7 @@ menu "ESP32S2-specific" config SPIRAM_SIZE int + default 2097152 if SPIRAM_TYPE_ESPPSRAM16 default 4194304 if SPIRAM_TYPE_ESPPSRAM32 default 8388608 if SPIRAM_TYPE_ESPPSRAM64 default 0 diff --git a/components/esp32s2/spiram.c b/components/esp32s2/spiram.c index b8759ee43..432b15757 100644 --- a/components/esp32s2/spiram.c +++ b/components/esp32s2/spiram.c @@ -219,6 +219,8 @@ esp_err_t esp_spiram_init(void) return r; } + ESP_EARLY_LOGI(TAG, "Found %dMBit SPI RAM device", + (esp_spiram_get_size()*8)/(1024*1024)); ESP_EARLY_LOGI(TAG, "SPI RAM mode: %s", PSRAM_SPEED == PSRAM_CACHE_S40M ? "sram 40m" : \ PSRAM_SPEED == PSRAM_CACHE_S80M ? "sram 80m" : "sram 20m"); ESP_EARLY_LOGI(TAG, "PSRAM initialized, cache is in %s mode.", \ @@ -295,6 +297,10 @@ esp_err_t esp_spiram_reserve_dma_pool(size_t size) { size_t esp_spiram_get_size(void) { + psram_size_t size=psram_get_size(); + if (size==PSRAM_SIZE_16MBITS) return 2*1024*1024; + if (size==PSRAM_SIZE_32MBITS) return 4*1024*1024; + if (size==PSRAM_SIZE_64MBITS) return 8*1024*1024; return CONFIG_SPIRAM_SIZE; }