From 16315d72b6f5215a078ac2fb155aa2917e3179d1 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 28 Dec 2025 13:30:45 -1000 Subject: [PATCH] define --- esphome/components/esp32/__init__.py | 12 ++++++------ esphome/core/application.cpp | 6 ++++++ esphome/core/defines.h | 1 + 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/esphome/components/esp32/__init__.py b/esphome/components/esp32/__init__.py index 022f01bd76..17a549ae3d 100644 --- a/esphome/components/esp32/__init__.py +++ b/esphome/components/esp32/__init__.py @@ -1036,12 +1036,12 @@ async def to_code(config): # Set minimum chip revision for ESP32 variant # Setting this to 3.0 or higher reduces flash size by excluding workaround code, # and for PSRAM users saves significant IRAM by keeping C library functions in ROM. - if ( - variant == VARIANT_ESP32 - and (min_rev := conf[CONF_ADVANCED].get(CONF_MINIMUM_CHIP_REVISION)) is not None - ): - for rev, flag in ESP32_CHIP_REVISIONS.items(): - add_idf_sdkconfig_option(flag, rev == min_rev) + if variant == VARIANT_ESP32: + min_rev = conf[CONF_ADVANCED].get(CONF_MINIMUM_CHIP_REVISION) + if min_rev is not None: + for rev, flag in ESP32_CHIP_REVISIONS.items(): + add_idf_sdkconfig_option(flag, rev == min_rev) + cg.add_define("USE_ESP32_MIN_CHIP_REVISION_SET") add_idf_sdkconfig_option("CONFIG_PARTITION_TABLE_SINGLE_APP", False) add_idf_sdkconfig_option("CONFIG_PARTITION_TABLE_CUSTOM", True) add_idf_sdkconfig_option("CONFIG_PARTITION_TABLE_CUSTOM_FILENAME", "partitions.csv") diff --git a/esphome/core/application.cpp b/esphome/core/application.cpp index ae4cd37610..37027a01df 100644 --- a/esphome/core/application.cpp +++ b/esphome/core/application.cpp @@ -212,6 +212,12 @@ void Application::loop() { esp_chip_info(&chip_info); ESP_LOGI(TAG, "ESP32 Chip: %s r%d.%d, %d core(s)", ESPHOME_VARIANT, chip_info.revision / 100, chip_info.revision % 100, chip_info.cores); +#if defined(USE_ESP32_VARIANT_ESP32) && !defined(USE_ESP32_MIN_CHIP_REVISION_SET) + // Suggest optimization for chips that don't need the PSRAM cache workaround + if (chip_info.revision >= 300) { + ESP_LOGW(TAG, "Set minimum_chip_revision: \"3.0\" to reduce binary size"); + } +#endif #endif } diff --git a/esphome/core/defines.h b/esphome/core/defines.h index a269f40479..ebfaab251d 100644 --- a/esphome/core/defines.h +++ b/esphome/core/defines.h @@ -169,6 +169,7 @@ #define USE_MQTT_IDF_ENQUEUE #define USE_ESPHOME_TASK_LOG_BUFFER #define USE_OTA_ROLLBACK +#define USE_ESP32_MIN_CHIP_REVISION_SET #define USE_BLUETOOTH_PROXY #define BLUETOOTH_PROXY_MAX_CONNECTIONS 3