From 6081ffba84b93c42f1b29301263f64d8ff54ac7a Mon Sep 17 00:00:00 2001 From: Axymorrsen Date: Sun, 16 Aug 2026 05:44:38 +0000 Subject: [PATCH] fix(usb): reset ROM CDC descriptor on app startup --- components/esp_usb_cdc_rom_console/usb_console.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/components/esp_usb_cdc_rom_console/usb_console.c b/components/esp_usb_cdc_rom_console/usb_console.c index e5044274fff..1b03fe5fc22 100644 --- a/components/esp_usb_cdc_rom_console/usb_console.c +++ b/components/esp_usb_cdc_rom_console/usb_console.c @@ -27,6 +27,7 @@ #include "esp_rom_serial_output.h" #include "esp_rom_sys.h" #include "esp_rom_caps.h" +#include "rom/usb/usb_common.h" #include "rom/usb/usb_dc.h" #include "rom/usb/cdc_acm.h" #include "rom/usb/usb_dfu.h" @@ -266,6 +267,11 @@ void esp_usb_console_before_restart(void) */ static void esp_usb_console_rom_cleanup(void) { +#ifdef CONFIG_IDF_TARGET_ESP32S2 + /* Reset the descriptor pointer left by the second-stage bootloader before + * its RAM image is reclaimed by the application heap. */ + rom_usb_cdc_set_descriptor_patch(); +#endif usb_dev_deinit(); usb_dw_ctrl_deinit(); uart_acm_dev = NULL;