I wrote low level code to put ESP32-S2 chip into hibernate mode and wake-up from there by RTC alarm timer. It works.
My concern is that when RTC FAST memory is enabled to power down on sleep, system reports error when got waked up. See the error and log:
E (46) boot: Fast booting is not successful
Code: Select all
ESP-ROM:esp32s2-rc4-20191025
Build:Oct 25 2019
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3ffe6100,len:0x4
load:0x3ffe6104,len:0x1308
load:0x4004c000,len:0x1580
load:0x40050000,len:0x1fe8
entry 0x4004c2e0
MCU reset 0x01
Wake count: 0
Wait: 262144 up to 0x00000004dc30
Entering hibernate...
ESP-ROM:esp32s2-rc4-20191025
Build:Oct 25 2019
rst:0x5 (DSLEEP),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3ffe6100,len:0x4
load:0x3ffe6104,len:0x1308
load:0x4004c000,len:0x1580
load:0x40050000,len:0x1fe8
entry 0x4004c2e0
E (46) boot: Fast booting is not successful
RTC TIMER wakeup 0x00000008
Wake count: 1
Wait: 262144 up to 0x00000009ac63
Entering hibernate...
My question is, is there a normal software way to tell bootloader to go right to "legacy" SPI boot, because FAST memory is actually off and so there's nothing to expect from it this way. Booting time doesn't matter for this example.
Thanks