nRF5340 takes too long from Power ON to start executing the main application

Hi, we have a custom nRF5340 based device. Has NISB and MCUBoot Enabled. It takes about 2.5 seconds to get into the application and BLE advertisement to start.

Wanted to know how do we go about narrowing down the cause and potential solutions.

We are on nRF Connect SDK 2.6.1

Parents Reply Children
  •    Did some more experiments and I see this for time taken at each of the stages. NSIB starts executing immediately and seems like it's MCU boot which is taking quite a while to find the image and jump to the image. This is on our board with the production firmware. 

    *** Booting NSIB v3.5.99-ncs1-1 ***
    Attempting to boot slot 0.
    Attempting to bootďż˝*** Booting NSIB v3.5.99-ncs1-1 ***
    Attempting to boot slot 0.
    Attempting to boot from address 0x8000.
    Verifying signature against key 0.
    Hash: 0x40...26
    <<<Above loads within 16ms of power ON>>>

    Firmware signature verified.
    Firmware version 1
    �Booting (0x8000)
    << +150ms >>>

    *** Booting mcuboot v3.5.99-ncs1-1 ***
    I: 12 Sectors of 4096 bytes
    I: alloc wra: 0, f40
    I: data wra: 0, f4
    I: qspi_encryption_config
    I: qspi_encr_setup OK
    I: Starting bootloader
    I: Image index: 0, Swap type: none
    I: Image index: 1, Swap type: none
    << +600ms >>

    I: Bootloader chainload address offset: 0x28000
    I: Jumping to the first image slot
    << +1100ms >>

    [00:00:00.002,349] <dbg> qspi_nor: configure_chip: RDSR 40 QE 1 need 1: no-change
    *** Booting application v3.5.99-ncs1-1 ***
    [00:00:00.010,620] <inf> fs_nvs: 12 Sectors of 4096 bytes
    [00:00:00.010,620] <inf> fs_nvs: alloc wra: 0, f40
    [00:00:00.010,650] <inf> fs_nvs: data wra: 0, f4
    [00:00:00.011,840] <inf> qspi_encr: qspi_encr_setup OK
    << +512ms >>

  • I added some more timestamps in MCUBoot and seems like it spends more than a second just in mcuboot main()

    uart:~$ *** Booting NSIB v3.5.99-ncs1-1 ***
    Attempting to boot slot 0.
    Attempting to boot from address 0x8000.
    Verifying signature against key 0.
    Hash: 0x40...26
    Firmware signature verified.
    Firmware version 1
    ďż˝*** Booting mcuboot v3.5.99-ncs1-1 ***
    I: 12 Sectors of 4096 bytes
    I: alloc wra: 0, f58
    I: data wra: 0, d0
    I: qspi_encryption_config
    I: qspi_encr_setup OK
    I: Entering MCUBoot Main uptime -> 289
    I: Starting bootloader
    I: Image index: 0, Swap type: none
    I: Image index: 1, Swap type: none
    I: Bootloader chainload address offset: 0x28000
    I: Jumping to the first image slot
    ďż˝: Till Before do_boot  uptime -> 1429

  • Have you tried this on more than one board and nRF?

    There are things that can make the boot-up take longer, like eg. SD card initialization, or a missing DC/DC Converter. But if what you are running on the custom board is exactly that same as what is running quickly on the DK, and the two are otherwise the same then I guess that's not the problem. 

    neo_here said:
    seems like it's MCU boot which is taking quite a while to find the image and jump to the image. This is on our board with the production firmware. 

    I assume you are not using SD card for MCUBoot? And everything regarding MCUBoot was the same on the DK?

    Regards,

    Elfving

  • No we don't use SD Card. We use QSPI with an encrypted external flash. 

  • Could you try disabling the external flash on the board, to see if that makes a difference?

    Regards,

    Elfving

Related