From 9cbe2331ada95c438c5b5c71225a9c64c5a11d8c Mon Sep 17 00:00:00 2001 From: Abanoub Salah Date: Sun, 31 May 2026 09:17:39 +0300 Subject: [PATCH 1/2] uart: fix threshold configuration loss when interrupts are disabled --- components/esp_driver_uart/src/uart.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/components/esp_driver_uart/src/uart.c b/components/esp_driver_uart/src/uart.c index 4afe848bd8e..258271e6212 100644 --- a/components/esp_driver_uart/src/uart.c +++ b/components/esp_driver_uart/src/uart.c @@ -2074,9 +2074,7 @@ esp_err_t uart_set_rx_full_threshold(uart_port_t uart_num, int threshold) return ESP_ERR_INVALID_STATE; } UART_ENTER_CRITICAL(&(uart_context[uart_num].spinlock)); - if (uart_hal_get_intr_ena_status(&(uart_context[uart_num].hal)) & UART_INTR_RXFIFO_FULL) { - uart_hal_set_rxfifo_full_thr(&(uart_context[uart_num].hal), threshold); - } + uart_hal_set_rxfifo_full_thr(&(uart_context[uart_num].hal), threshold); UART_EXIT_CRITICAL(&(uart_context[uart_num].spinlock)); return ESP_OK; } @@ -2091,9 +2089,7 @@ esp_err_t uart_set_tx_empty_threshold(uart_port_t uart_num, int threshold) return ESP_ERR_INVALID_STATE; } UART_ENTER_CRITICAL(&(uart_context[uart_num].spinlock)); - if (uart_hal_get_intr_ena_status(&(uart_context[uart_num].hal)) & UART_INTR_TXFIFO_EMPTY) { - uart_hal_set_txfifo_empty_thr(&(uart_context[uart_num].hal), threshold); - } + uart_hal_set_txfifo_empty_thr(&(uart_context[uart_num].hal), threshold); UART_EXIT_CRITICAL(&(uart_context[uart_num].spinlock)); return ESP_OK; } From 649b14a87010ba39b3ff761da5b39d8b4aed720f Mon Sep 17 00:00:00 2001 From: Song Ruo Jing Date: Fri, 3 Jul 2026 15:41:59 +0800 Subject: [PATCH 2/2] fix(stdio): add console input ability when selects ESP_CONSOLE_UART_CUSTOM_NUM_1 --- components/bootloader_support/src/bootloader_console.c | 7 ++++--- components/esp_system/port/cpu_start.c | 3 +++ tools/test_apps/system/build_test/sdkconfig.ci.custom_uart | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/components/bootloader_support/src/bootloader_console.c b/components/bootloader_support/src/bootloader_console.c index 66ee195a3b1..1cadc670667 100644 --- a/components/bootloader_support/src/bootloader_console.c +++ b/components/bootloader_support/src/bootloader_console.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -54,8 +54,9 @@ void bootloader_console_init(void) const int uart_tx_gpio = CONFIG_ESP_CONSOLE_UART_TX_GPIO; const int uart_rx_gpio = CONFIG_ESP_CONSOLE_UART_RX_GPIO; - // Switch to the new UART (this just changes UART number used for esp_rom_printf in ROM code). - esp_rom_output_set_as_console(uart_num); + // Switch to the new UART + esp_rom_output_set_as_console(uart_num); // changes UART number used for esp_rom_printf in ROM code + esp_rom_output_switch_buffer(uart_num); // If console is attached to UART1 or if non-default pins are used, // need to reconfigure pins using GPIO matrix diff --git a/components/esp_system/port/cpu_start.c b/components/esp_system/port/cpu_start.c index 7b69768dfba..3d34e018e92 100644 --- a/components/esp_system/port/cpu_start.c +++ b/components/esp_system/port/cpu_start.c @@ -233,6 +233,9 @@ void IRAM_ATTR call_start_cpu1(void) #elif !CONFIG_ESP_CONSOLE_USB_CDC esp_rom_install_uart_printf(); esp_rom_output_set_as_console(CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM); +#if CONFIG_ESP_CONSOLE_UART_CUSTOM + esp_rom_output_switch_buffer(CONFIG_ESP_CONSOLE_UART_NUM); +#endif #endif #if CONFIG_IDF_TARGET_ESP32 diff --git a/tools/test_apps/system/build_test/sdkconfig.ci.custom_uart b/tools/test_apps/system/build_test/sdkconfig.ci.custom_uart index 80ed1761ac2..56ee759e76b 100644 --- a/tools/test_apps/system/build_test/sdkconfig.ci.custom_uart +++ b/tools/test_apps/system/build_test/sdkconfig.ci.custom_uart @@ -1 +1,2 @@ CONFIG_ESP_CONSOLE_UART_CUSTOM=y +CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1=y