diff --git a/components/bootloader_support/src/bootloader_init.c b/components/bootloader_support/src/bootloader_init.c index 77edb7e7..a7e518bb 100644 --- a/components/bootloader_support/src/bootloader_init.c +++ b/components/bootloader_support/src/bootloader_init.c @@ -568,6 +568,16 @@ static void update_flash_config(const esp_image_header_t* pfhdr); static void uart_console_configure(void) { +#if CONFIG_CONSOLE_UART_SWAP_IO + while (READ_PERI_REG(UART_STATUS(0)) & (UART_TXFIFO_CNT << UART_TXFIFO_CNT_S)); + + PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_UART0_CTS); + PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_UART0_RTS); + + // UART0: TXD <-> RTS and RXD <-> CTS + SET_PERI_REG_MASK(UART_SWAP_REG, 0x4); +#endif + #if CONFIG_CONSOLE_UART_NUM == 1 PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_U1TXD_BK); diff --git a/components/esp8266/Kconfig b/components/esp8266/Kconfig index bf1a79f8..a69952cc 100644 --- a/components/esp8266/Kconfig +++ b/components/esp8266/Kconfig @@ -57,6 +57,12 @@ config CONSOLE_UART_BAUDRATE default 74880 range 1200 4000000 +config CONSOLE_UART_SWAP_IO + bool "Swap UART0 I/O pins" + default n + help + Enable this option, UART0's I/O pins are swaped: TXD <-> RTS, RTX <-> CTS. + endmenu menu WIFI