From 963a8b1c57f283fb478137df2284614595150832 Mon Sep 17 00:00:00 2001 From: KonstantinKondrashov Date: Wed, 8 Mar 2023 01:32:11 +0800 Subject: [PATCH] esp_psram: Use efuse_ll instead of efuse API When the virt efuse mode is on and psram is on as well then efuse buffer is not filled by efuses (it is filled by 0). So the psram init func gets wrong pkg_ver = 0. Closes https://github.com/espressif/esp-idf/issues/10925 Close IDFGH-9576 --- components/esp_psram/esp32/esp_psram_impl_quad.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/esp_psram/esp32/esp_psram_impl_quad.c b/components/esp_psram/esp32/esp_psram_impl_quad.c index 160d009515..918498ac20 100644 --- a/components/esp_psram/esp32/esp_psram_impl_quad.c +++ b/components/esp_psram/esp32/esp_psram_impl_quad.c @@ -28,6 +28,7 @@ #include "soc/chip_revision.h" #include "driver/gpio.h" #include "hal/efuse_hal.h" +#include "hal/efuse_ll.h" #include "hal/gpio_hal.h" #include "esp_private/spi_common_internal.h" #include "esp_private/periph_ctrl.h" @@ -823,7 +824,7 @@ esp_err_t IRAM_ATTR esp_psram_impl_enable(psram_vaddr_mode_t vaddrmode) //psra { psram_cache_speed_t mode = PSRAM_SPEED; psram_io_t psram_io={0}; - uint32_t pkg_ver = esp_efuse_get_pkg_ver(); + uint32_t pkg_ver = efuse_ll_get_chip_ver_pkg(); if (pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32D2WDQ5) { ESP_EARLY_LOGI(TAG, "This chip is ESP32-D2WD"); rtc_vddsdio_config_t cfg = rtc_vddsdio_get_config();