Merge branch 'feature/disable_jtag_io_when_boot_v3.1' into 'release/v3.1'

feat(bootloader): add option to disable JTAG I/O when boot (backport v3.1)

See merge request sdk/ESP8266_RTOS_SDK!1421
This commit is contained in:
Dong Heng
2020-06-04 11:38:05 +08:00
3 changed files with 31 additions and 0 deletions

View File

@@ -10,6 +10,15 @@ config BOOTLOADER_INIT_SPI_FLASH
If your system bootloader is based on v3.0, the option must not be enable, because the v3.0 bootloader don't support
this function.
config BOOTLOADER_DISABLE_JTAG_IO
bool "Bootloader disable JTAG I/O"
default n
help
Enable this option, when SoC brings up and bootloader initializes hardware, it will
disable JTAG's I/O and set these GPIOs to be normal I/O with inputting mode.
If users use JTAG to help develop, please disable this option.
choice LOG_BOOTLOADER_LEVEL
bool "Bootloader log verbosity"
default LOG_BOOTLOADER_LEVEL_INFO

View File

@@ -613,6 +613,17 @@ esp_err_t bootloader_init()
static esp_err_t bootloader_main()
{
#ifdef CONFIG_BOOTLOADER_DISABLE_JTAG_IO
/* Set GPIO 12-15 to be normal GPIO */
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);
/* Set GPIO 12-15 to be input mode */
GPIO_REG_WRITE(GPIO_ENABLE_W1TC_ADDRESS, BIT12 | BIT13 | BIT14 | BIT15);
#endif
uart_console_configure();
esp_image_header_t fhdr;

View File

@@ -27,3 +27,14 @@ You need to disable the sniffer/promiscuous mode at first, then read/write/erase
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ESP8285 or ESP8266 + 1MB flash can use "Copy OTA Mode" for OTA, more details are in the `examples/system/ota <https://github.com/espressif/ESP8266_RTOS_SDK/tree/master/examples/system/ota/>`_.
4. JTAG I/O
^^^^^^^^^^^
In some cases, if enable JTAG I/O (default options), it will cost some more current so that the hardware will cost more power.
So if users don't use Jtag or these GPIOs directly and want to save more power, please enable this option in the menuconfig:
::
"Bootloader config --->
[ ] Bootloader disable JTAG I/O"