Boot from Test does not work using only EN/CHIP_PU pin
Posted: Wed Sep 17, 2025 1:05 pm
Hello,
We are using the ESP32-WROOM-32E module, programming it with ESP-IDF. Below is the partition table for our setup:
The test partition contains firmware that upgrades the main_app over SPI. To enter the test partition, we use the CONFIG_BOOTLOADER_NUM_PIN_APP_TEST option, which is set to IO21. When the ESP32 is powered on with IO21 held low, the chip enters the test partition correctly.
However, if the chip is already powered on, and the EN/CHIP_PU line is held low to put the ESP32 into reset, then IO21 is held low, then EN/CHIP_PU line is held high, the chip does not enter the test partition, and instead boots to the main_app partition.
Is this behavior intended? Why does the 2nd-stage bootloader ignore the IO21 pin in this scenario?
We are using the ESP32-WROOM-32E module, programming it with ESP-IDF. Below is the partition table for our setup:
Code: Select all
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, , 0x6000
otadata, data, ota, , 0x2000
phy_init, data, phy, , 0x1000
nvs_key, data, nvs_keys, , 0x1000
test, app, test, , 0x40000
main_app, app, ota_0, , 0x3A0000
However, if the chip is already powered on, and the EN/CHIP_PU line is held low to put the ESP32 into reset, then IO21 is held low, then EN/CHIP_PU line is held high, the chip does not enter the test partition, and instead boots to the main_app partition.
Is this behavior intended? Why does the 2nd-stage bootloader ignore the IO21 pin in this scenario?