diff --git a/components/esp_rom/patches/esp_rom_uart.c b/components/esp_rom/patches/esp_rom_uart.c index 0740c9022e..6aa0988c16 100644 --- a/components/esp_rom/patches/esp_rom_uart.c +++ b/components/esp_rom/patches/esp_rom_uart.c @@ -25,9 +25,9 @@ IRAM_ATTR void esp_rom_output_tx_wait_idle(uint8_t uart_no) #if CONFIG_IDF_TARGET_ESP32C3 /** - * The ESP32-C3 ROM has released two versions, one is the ECO3 version, - * and the other is the version before ECO3 (include ECO0 ECO1 ECO2). - * These two versions of the ROM code do not list uart_tx_switch wrap + * The ESP32-C3 ROM has released three versions, ECO7 (v1.1), ECO3, and + * the version before ECO3 (include ECO0 ECO1 ECO2). + * These three versions of the ROM code do not list uart_tx_switch wrap * function in the ROM interface, so here use the uart_tx_switch direct * address instead. */ @@ -38,6 +38,8 @@ IRAM_ATTR void esp_rom_output_set_as_console(uint8_t uart_no) if (efuse_hal_chip_revision() < 3) { uart_tx_switch = (rom_func_t)0x4004b8ca; + } else if (efuse_hal_chip_revision() >= 101) { + uart_tx_switch = (rom_func_t)0x40001c44; } else { uart_tx_switch = (rom_func_t)0x4004c166; }