SYSTEMOFF - Wakeup Delay of 1s

We're experiencing up to 1s of delay between waking up from SYSTEMOFF mode and executing from main. The traces from PPK show when the wakeup is triggered from an external source (button) and a GPIO toggles on to show when main is executing code - this is the first instruction inside my main func. 

Current prj.conf settings:

# GPIO control
CONFIG_GPIO=y
CONFIG_PWM=y
CONFIG_REBOOT=y
CONFIG_GPIO_AS_PINRESET=n
CONFIG_NFCT_PINS_AS_GPIOS=y
CONFIG_PINCTRL=y
# Config logger
CONFIG_UART_CONSOLE=n
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG=y
CONFIG_LOG_BUFFER_SIZE=4096
CONFIG_LOG_DEFAULT_LEVEL=3
CONFIG_SEGGER_RTT_BUFFER_SIZE_UP=4096
CONFIG_LOG_PRINTK=y
# Enable flash operations.
CONFIG_FLASH=y
# Enable BLE
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_LL_SOFTDEVICE=y
CONFIG_BT_SMP=y
CONFIG_BT_DEVICE_NAME_DYNAMIC=y
CONFIG_BT_GATT_ENFORCE_SUBSCRIPTION=n          # n: allow sending notification messages without having notifications enabled
# Allow for large Bluetooth data packets.
CONFIG_BT_L2CAP_TX_MTU=498
CONFIG_BT_BUF_ACL_RX_SIZE=502
CONFIG_BT_BUF_ACL_TX_SIZE=251
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
# DFU over BLE
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_MCUMGR=y
CONFIG_MCUMGR_GRP_IMG=y
CONFIG_IMG_MANAGER=y
CONFIG_STREAM_FLASH=y
CONFIG_NET_BUF=y
CONFIG_ZCBOR=y
CONFIG_FLASH_MAP=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_SPEEDUP=y
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
CONFIG_THREAD_MONITOR=y
CONFIG_STATS=y
CONFIG_STATS_NAMES=y
CONFIG_MCUMGR_MGMT_NOTIFICATION_HOOKS=y
# Crypto
# Enable nordic security backend and PSA APIs
CONFIG_NRF_SECURITY=y
CONFIG_MBEDTLS_PSA_CRYPTO_C=y
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192
CONFIG_PSA_WANT_GENERATE_RANDOM=y
# CONFIG_PSA_WANT_KEY_TYPE_AES=y
CONFIG_PSA_WANT_ALG_CBC_NO_PADDING=y
# Low power mode
CONFIG_PM=y
# Battery monitor
CONFIG_ADC=y
# NVS Storage
CONFIG_NVS=y
# Testing for reduced booting time
# 32kHz clock source
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y

Current child_image/mcuboot_custom.conf settings:

CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y
CONFIG_MULTITHREADING=y
CONFIG_LOG=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y
 

My understading is that using the internal RC LFCLK is faster on boot-up than using an external one but so far, it has not made a difference.

Any pointers from here would be appreciated. Thanks!

Related