Nordic FOTA setup for external QSPI flash with the new 2.6 SDK

We are working on a custom board (gateway BIS) with the nrf5340.  Currently our system is on the 2.5.2 SDK and we currently have FOTA working with an external QSPI flash and updating both the app partition and the BLE core partition simultaneously.

We are currently porting this code to the latest 2.6.0 SDK as we would like to take advantage of the SoftDevice controller and some of the features it offers (Channel Mapping).  I have converted the example code changes from the nrf5340_audio example (as this was the basis for our project.)

When I try to build with the buildprog.py script this is the error I now get.

python buildprog.py -c both -b debug -d gateway  -m external -M --pristine -p

Traceback (most recent call last):
  File "buildprog.py", line 501, in <module>
    __main()
  File "buildprog.py", line 387, in __main
    raise Exception("DFU arguments only accepted when using controller: " +
Exception: DFU arguments only accepted when using controller: ACS_nRF53. Please use standard tools.

So I have tried with this line (which I think configures the old BLE stack, which we want the new SoftDevice controller) and get these errors:

python buildprog.py -c both -b debug -d gateway --ctlr ACS_nRF53 -m external -M --pristine -p

In file included from C:/ncs/v2.6.0/zephyr/include/zephyr/toolchain.h:50,
                 from C:/ncs/v2.6.0/zephyr/include/zephyr/sys/util.h:18,
                 from C:/ncs/v2.6.0/zephyr/include/zephyr/devicetree.h:26,
                 from C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:12,
                 from C:/ncs/v2.6.0/zephyr/include/zephyr/drivers/flash.h:28,
                 from C:/ncs/v2.6.0/zephyr/drivers/flash/spi_nor.c:14:
C:/ncs/v2.6.0/zephyr/include/zephyr/toolchain/gcc.h:87:36: error: static assertion failed: "jedec,spi-nor jedec-id required for non-runtime SFDP"
   87 | #define BUILD_ASSERT(EXPR, MSG...) _Static_assert(EXPR, "" MSG)
      |                                    ^~~~~~~~~~~~~~
C:/ncs/v2.6.0/zephyr/drivers/flash/spi_nor.c:1468:1: note: in expansion of macro 'BUILD_ASSERT'
 1468 | BUILD_ASSERT(DT_INST_NODE_HAS_PROP(0, jedec_id),
      | ^~~~~~~~~~~~
C:/ncs/v2.6.0/zephyr/include/zephyr/toolchain/gcc.h:87:36: error: static assertion failed: "jedec,spi-nor size required for non-runtime SFDP page layout"
   87 | #define BUILD_ASSERT(EXPR, MSG...) _Static_assert(EXPR, "" MSG)
      |                                    ^~~~~~~~~~~~~~

I have also copied the nrf5340_audio example application and created a build configuration in VSCode and I get this error:

CMake Warning at C:/ncs/v2.6.0/zephyr/CMakeLists.txt:1957 (message):
  __ASSERT() statements are globally ENABLED


-- Configuring done
CMake Error at C:/ncs/v2.6.0/zephyr/cmake/modules/extensions.cmake:424 (add_library):
  Cannot find source file:

    C:/Projects/Somnius/Examples/nrf5340_audio/src/utils/nrf5340_audio_dk.c
Call Stack (most recent call first):
  C:/ncs/v2.6.0/zephyr/cmake/modules/kernel.cmake:211 (zephyr_library_named)
  C:/ncs/v2.6.0/zephyr/cmake/modules/zephyr_default.cmake:138 (include)
  C:/ncs/v2.6.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
  C:/ncs/v2.6.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
  CMakeLists.txt:52 (find_package)


-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.
FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\cf2149caf2\opt\bin\cmake.EXE' -DWEST_PYTHON=C:/ncs/toolchains/cf2149caf2/opt/bin/python.exe '-Bc:\Projects\Somnius\Examples\nrf5340_audio\build' -GNinja -DBOARD=nrf5340_audio_dk_nrf5340_cpuapp -DNCS_TOOLCHAIN_VERSION=NONE '-Sc:\Projects\Somnius\Examples\nrf5340_audio'

I have tried looking at this thread, but this was for headset, and was not able to get the west command to work.

 nRF5340 audio application FOTA problem with latest SDK 

Thanks,
Chris

Parents Reply Children
  • Ok, we have managed to build the system (using the visual code plugin) and get most things working, however, we still are having issues compiling with this flag added to the Prj.Conf 

    CONFIG_AUDIO_DFU=2
    When we add this, I get this error.
                     from C:/ncs/v2.6.1/zephyr/drivers/flash/spi_nor.c:14:
    C:/ncs/v2.6.1/zephyr/include/zephyr/toolchain/gcc.h:87:36: error: static assertion failed: "jedec,spi-nor jedec-id required for non-runtime SFDP"
       87 | #define BUILD_ASSERT(EXPR, MSG...) _Static_assert(EXPR, "" MSG)
          |                                    ^~~~~~~~~~~~~~
    C:/ncs/v2.6.1/zephyr/drivers/flash/spi_nor.c:1468:1: note: in expansion of macro 'BUILD_ASSERT'
     1468 | BUILD_ASSERT(DT_INST_NODE_HAS_PROP(0, jedec_id),
          | ^~~~~~~~~~~~
    C:/ncs/v2.6.1/zephyr/include/zephyr/toolchain/gcc.h:87:36: error: static assertion failed: "jedec,spi-nor size required for non-runtime SFDP page layout"
       87 | #define BUILD_ASSERT(EXPR, MSG...) _Static_assert(EXPR, "" MSG)
          |                                    ^~~~~~~~~~~~~~
    C:/ncs/v2.6.1/zephyr/drivers/flash/spi_nor.c:1477:1: note: in expansion of macro 'BUILD_ASSERT'
    Here is my overlay-dfu_external_flash.overlay:
    / {
    	chosen {
    		nordic,pm-ext-flash = &w25q64;
    	};
    };
    
    &qspi {
    	status = "okay";
    	pinctrl-0 = <&qspi_default>;
    	pinctrl-1 = <&qspi_sleep>;
    	pinctrl-names = "default", "sleep";
    	w25q64: w25q6435f@0 {
    		compatible = "nordic,qspi-nor";
    		//compatible = "jedec,spi-nor";
    		reg = <0>;
    		/* W25Q64 supports only pp and pp4io */
    		//writeoc = "pp4io";
    		/* W25Q64 supports all readoc options */
    		//readoc = "read4io";
    		sck-frequency = <8000000>;
    		jedec-id = [ef 40 17];
    		sfdp-bfp = [
    			e5 20 f9 ff  ff ff ff 03  44 eb 08 6b  08 3b 42 bb
    			fe ff ff ff  ff ff 00 00  ff ff 40 eb  0c 20 0f 52
    			10 d8 00 00  36 02 a6 00  82 ea 14 c4  e9 63 76 33
    			7a 75 7a 75  f7 a2 d5 5c  19 f7 4d ff  e9 30 f8 80
    		];
    		size = <67108864>;
    		has-dpd;
    		t-enter-dpd = <10000>;
    		t-exit-dpd = <35000>;
    	};
    };
    here is prj.conf
    #
    # Copyright (c) 2022 Nordic Semiconductor ASA
    #
    # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
    #
    
    # nRF5340 Audio
    CONFIG_NRF5340_AUDIO=y
    
    CONFIG_SAMPLE_RATE_CONVERTER=y
    CONFIG_SAMPLE_RATE_CONVERTER_FILTER_SIMPLE=y
    
    # General
    CONFIG_DEBUG=y
    CONFIG_DEBUG_INFO=y
    CONFIG_ASSERT=y
    CONFIG_STACK_USAGE=y
    CONFIG_THREAD_RUNTIME_STATS=y
    CONFIG_STACK_SENTINEL=y
    CONFIG_INIT_STACKS=y
    
    # Uart driver
    CONFIG_SERIAL=y
    CONFIG_UART_ASYNC_API=y
    
    # Logging
    CONFIG_LOG=y
    CONFIG_LOG_MODE_DEFERRED=y
    CONFIG_LOG_MODE_OVERFLOW=y
    CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
    CONFIG_LOG_TAG_MAX_LEN=2
    CONFIG_LOG_TAG_DEFAULT="--"
    CONFIG_LOG_BACKEND_UART=y
    
    # Use this for debugging thread usage
    #CONFIG_LOG_THREAD_ID_PREFIX=y
    
    # Console related defines
    CONFIG_CONSOLE=y
    CONFIG_RTT_CONSOLE=y
    CONFIG_UART_CONSOLE=y
    
    # Shell related defines
    CONFIG_SHELL=n
    CONFIG_KERNEL_SHELL=y
    CONFIG_USE_SEGGER_RTT=y
    ## Disable logs on RTT
    CONFIG_SHELL_RTT_INIT_LOG_LEVEL_NONE=y
    CONFIG_SHELL_BACKEND_RTT=y
    CONFIG_SHELL_BACKEND_SERIAL=n
    CONFIG_SHELL_VT100_COMMANDS=y
    CONFIG_SHELL_VT100_COLORS=y
    CONFIG_SHELL_STACK_SIZE=4096
    CONFIG_SHELL_CMD_BUFF_SIZE=128
    ## Reduce shell memory usage
    CONFIG_SHELL_WILDCARD=n
    CONFIG_SHELL_HELP_ON_WRONG_ARGUMENT_COUNT=n
    CONFIG_SHELL_STATS=n
    CONFIG_SHELL_CMDS=n
    CONFIG_SHELL_HISTORY=y
    
    # Turn off default shell commands 
    CONFIG_I2C_SHELL=n
    CONFIG_CLOCK_CONTROL_NRF_SHELL=n
    CONFIG_FLASH_SHELL=n
    CONFIG_DEVICE_SHELL=n
    
    CONFIG_NRFX_UARTE2=y
    CONFIG_NRFX_PRS_BOX_2=y
    
    # I2C
    CONFIG_I2C=y
    CONFIG_NRFX_TWIM1=y
    
    # Suppress LOG_ERR messages from sd_check_card_type. Because SPI_SDHC has no card presence method,
    # assume card is in slot. Thus error message is always shown if card is not inserted
    CONFIG_SD_LOG_LEVEL_OFF=y
    
    # Suppress LOG_INF messages from hci_core
    CONFIG_BT_HCI_CORE_LOG_LEVEL_WRN=y
    
    CONFIG_AUDIO_DEV=2
    CONFIG_AUDIO_SOURCE_I2S=y
    
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
    CONFIG_COMMON_LIBC_MALLOC=n
    CONFIG_DEBUG_THREAD_INFO=y
    
    #CONFIG_NRFX_SPIM4=y
    #CONFIG_SPI_SDHC=y
    CONFIG_SPI=y
    CONFIG_SPI_ASYNC=y
    #CONFIG_NRFX_SPIM1=y
    #CONFIG_I2C_TARGET=y
    CONFIG_PWM=y
    #CONFIG_SDMMC_SUBSYS=y
    CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=2048
    CONFIG_DEBUG_THREAD_INFO=y
    CONFIG_BT_AUDIO_USE_BROADCAST_ID_RANDOM=n
    #CONFIG_BT_AUDIO_BROADCAST_ID_FIXED=0x004A7526
    # for now disable BT controller watchdog
    CONFIG_WDT_CTLR=n
    
    # remove things from the dev board
    CONFIG_HW_CODEC_CIRRUS_LOGIC=n
    CONFIG_INA23X=n
    CONFIG_INA230=n
    
    # OTA STUFF
    CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
    CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y
    
    # Enable Bootloader
    CONFIG_BOOTLOADER_MCUBOOT=y
    
    # Enable SMP Server
    CONFIG_MCUMGR=y
    CONFIG_MCUMGR_GRP_IMG=y
    
    # CONFIG_MCUMGR_GRP_IMG dependencies
    CONFIG_FLASH=y
    CONFIG_IMG_MANAGER=y
    
    # CONFIG_IMG_MANAGER dependencies
    CONFIG_STREAM_FLASH=y
    
    # CONFIG_MCUMGR dependencies
    CONFIG_NET_BUF=y
    CONFIG_ZCBOR=y
    
    # Required for CONFIG_IMG_MANAGER
    CONFIG_FLASH_MAP=y
    
    # Enable BLE transfer
    CONFIG_MCUBOOT_USE_ALL_AVAILABLE_RAM=y
    CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
    CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_SPEEDUP=y
    CONFIG_NRF53_UPGRADE_NETWORK_CORE=y
    CONFIG_UPDATEABLE_IMAGE_NUMBER=2
    CONFIG_ADD_MCUBOOT_MEDIATE_SIM_FLASH_DTS=y
    # fix for DFU stuff, but causes error with jedec,SPI-nor required.
    CONFIG_AUDIO_DFU=2
    CONFIG_SPI_NOR_SFDP_DEVICETREE=y
    #CONFIG_SPI_NOR_SFDP_RUNTIME=y
    
    #end OTA stuff
    
    CONFIG_BT=y
    CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_DEVICE_NAME="Nordic"
    
    #CONFIG_MAIN_LOG_LEVEL_ERR=y
    #CONFIG_AUDIO_HEADSET_CHANNEL_COMPILE_TIME=y
    CONFIG_BT_PER_ADV=y
    CONFIG_BT_CENTRAL=y
    CONFIG_BT_MAX_CONN=2
    
    CONFIG_BT_GATT_CLIENT=y
    
    CONFIG_BT_BUF_ACL_RX_SIZE=255
    CONFIG_BT_BUF_ACL_TX_SIZE=501
    CONFIG_BT_BUF_CMD_TX_SIZE=255
    CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=255
    CONFIG_BT_L2CAP_TX_MTU=247
    CONFIG_BT_CONN_TX_MAX=4
    
    CONFIG_TRANSPORT_BIS=y
    CONFIG_BLE_LE_POWER_CONTROL_ENABLED=y
    
    CONFIG_TASK_WDT=y
    CONFIG_TASK_WDT_MIN_TIMEOUT=500
    # Enable NVS
    CONFIG_FLASH=y
    CONFIG_FLASH_PAGE_LAYOUT=y
    CONFIG_NVS=y
    #CONFIG_LOG_MODE_IMMEDIATE=y
    #CONFIG_NVS_LOG_LEVEL_DBG=y
    CONFIG_REBOOT=y
    CONFIG_MPU_ALLOW_FLASH_WRITE=y
    
    # These values copied from:
    # C:\ncs\v2.1.2\zephyr\samples\subsys\task_wdt\prj.conf
    CONFIG_WATCHDOG=y
    CONFIG_WDT_LOG_LEVEL_DBG=y
    CONFIG_WDT_DISABLE_AT_BOOT=y
    
    CONFIG_FLASH_LOG_LEVEL_DBG=y
    
    # 21540
    # #CONFIG_MPSL_FEM_NRF21540_GPIO=y
    # #CONFIG_NRF_21540_ACTIVE=y
    # #CONFIG_MPSL_FEM_NRF21540_GPIO_SPI=y
    # # CONFIG_MPSL_FEM_ONLY is not set
    # # CONFIG_MPSL_FEM_ANY_SUPPORT=y
    # # CONFIG_MPSL_FEM_NRF21540_GPIO_SUPPORT=y
    # # CONFIG_MPSL_FEM_NCS_SUPPORTED_FEM_USED=y
    # # CONFIG_MPSL_FEM_API_AVAILABLE=y
    # CONFIG_MPSL_FEM=y
    # CONFIG_MPSL_FEM_NRF21540_GPIO=y
    # #CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB=10
    # #CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB_POUTA=20
    # #CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB_POUTB=10
    # # CONFIG_MPSL_FEM_NRF21540_RX_GAIN_DB=13
    # # # CONFIG_MPSL_FEM_NRF21540_RUNTIME_PA_GAIN_CONTROL is not set
    # # # CONFIG_MPSL_FEM_POWER_MODEL is not set
    # # CONFIG_MPSL_FEM_DEVICE_CONFIG_254=y
    # # CONFIG_MPSL_THREAD_COOP_PRIO=6
    # # CONFIG_MPSL_WORK_STACK_SIZE=1024
    # # CONFIG_MPSL_TIMESLOT_SESSION_COUNT=0
    # #CONFIG_DT_HAS_NORDIC_NRF21540_FEM_ENABLED=y
    CONFIG_MPSL=y
    CONFIG_MPSL_FEM=y
    CONFIG_MPSL_FEM_NRF21540_GPIO=y
    #CONFIG_MPSL_FEM_NRF21540_GPIO_SPI=y
    CONFIG_BT_CTLR_CONN_RSSI=y
    CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
    CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB=0
    CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB_POUTA=0
    
    CONFIG_AUDIO_TEST_TONE=y
    
    ### HELMUT ###
    CONFIG_DFU_TARGET=y
    CONFIG_DFU_TARGET_MCUBOOT=y
    CONFIG_SIGN_IMAGES=y
    CONFIG_MCUBOOT_IMG_MANAGER=y
    
    CONFIG_NORDIC_QSPI_NOR=y
    CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
    CONFIG_NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE=16
    
    # used to enable RTT terminal, and add flash to shell where we can send commands to external flash
    # left in here because the RTT terminal was interesting
    CONFIG_FLASH=y
    #CONFIG_SHELL=y
    #CONFIG_FLASH_SHELL=y
    CONFIG_FLASH_MAP=y
    CONFIG_HEAP_MEM_POOL_SIZE=4096
    #CONFIG_UART_CONSOLE=n
    #CONFIG_RTT_CONSOLE=y
    #CONFIG_SHELL_BACKEND_RTT=y
    #CONFIG_USE_SEGGER_RTT=y
    #CONFIG_FLASH_SHELL_TEST_COMMANDS=y
    
    # debugging for the MCUMG, may need this again for the UART SMP
    # CONFIG_MCUMGR_GRP_FS_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_GRP_IMG_CLIENT_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_GRP_IMG_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_GRP_OS_CLIENT_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_GRP_OS_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_GRP_SHELL_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_GRP_STAT_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_SMP_CLIENT_LOG_LEVEL_DBG=y
    # CONFIG_MCUMGR_TRANSPORT_LOG_LEVEL_DBG=n
    # CONFIG_MCUBOOT_UTIL_LOG_LEVEL_DBG=y
    
    # Thread Analyzer
    CONFIG_PRINT_STACK_USAGE_MS=5000
    CONFIG_THREAD_ANALYZER=y
    # CONFIG_THREAD_ANALYZER_LOG_LEVEL_OFF is not set
    # CONFIG_THREAD_ANALYZER_LOG_LEVEL_ERR is not set
    # CONFIG_THREAD_ANALYZER_LOG_LEVEL_WRN is not set
    # CONFIG_THREAD_ANALYZER_LOG_LEVEL_INF is not set
    # CONFIG_THREAD_ANALYZER_LOG_LEVEL_DBG is not set
    CONFIG_THREAD_ANALYZER_LOG_LEVEL_DEFAULT=y
    #CONFIG_THREAD_ANALYZER_LOG_LEVEL=3
    CONFIG_THREAD_ANALYZER_USE_LOG=y
    # CONFIG_THREAD_ANALYZER_USE_PRINTK is not set
    CONFIG_THREAD_ANALYZER_ISR_STACK_USAGE=y
    CONFIG_THREAD_ANALYZER_RUN_UNLOCKED=y
    #CONFIG_THREAD_ANALYZER_AUTO=y  # we use a custom analyzer
    CONFIG_THREAD_ANALYZER_AUTO_INTERVAL=20
    CONFIG_THREAD_ANALYZER_AUTO_STACK_SIZE=1024
    #CONFIG_SCHED_THREAD_USAGE_ANALYSIS=y
    
    # Modifications of audio encoding
    CONFIG_FIFO_RX_FRAME_COUNT=2
    
    CONFIG_USB_DEVICE_STACK=y
    
    and here is overlay-mcuboot_external_flash.conf:
    #
    # Copyright (c) 2022 Nordic Semiconductor ASA
    #
    # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
    #
    
    CONFIG_SIZE_OPTIMIZATIONS=y
    CONFIG_MAIN_STACK_SIZE=20480
    CONFIG_MBEDTLS_CFG_FILE="mcuboot-mbedtls-cfg.h"
    CONFIG_PCD_APP=y
    CONFIG_PM_PARTITION_SIZE_MCUBOOT=0x10000
    CONFIG_BOOT_MAX_IMG_SECTORS=2048
    
    CONFIG_NRFX_SPIM4=y
    
    # Enable serial debug for MCUBOOT
    CONFIG_CBPRINTF_NANO=y
    CONFIG_CONSOLE=y
    CONFIG_LOG=y
    CONFIG_UART_NRFX=y
    
    # External Flash
    CONFIG_NORDIC_QSPI_NOR=y
    CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
    CONFIG_NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE=16
    CONFIG_FLASH_LOG_LEVEL_DBG=y
    CONFIG_SPI=y
    CONFIG_SPI_NOR=y
    CONFIG_SPI_NOR_SFDP_DEVICETREE=y
    CONFIG_MULTITHREADING=y
    
    # Change default flash erase size for flexible flash layout
    CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
    CONFIG_BOOT_ERASE_PROGRESSIVELY=y
    CONFIG_SOC_FLASH_NRF_EMULATE_ONE_BYTE_WRITE_ACCESS=y
    CONFIG_FPROTECT=y
    
    # The following configurations are required to support simultaneous multi-image update
    CONFIG_UPDATEABLE_IMAGE_NUMBER=2
    CONFIG_BOOT_UPGRADE_ONLY=y
    
    # The network core cannot access external flash directly. The flash simulator must be used to
    # provide a memory region that is used to forward the new firmware to the network core
    CONFIG_FLASH_SIMULATOR=y
    CONFIG_FLASH_SIMULATOR_DOUBLE_WRITES=y
    CONFIG_FLASH_SIMULATOR_STATS=n
    CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
    CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y
    
    # Enable flash simulator
    CONFIG_FLASH=y
    CONFIG_FPROTECT=y
    CONFIG_PCD_APP=y
    CONFIG_FLASH_SIMULATOR=y
    CONFIG_FLASH_SIMULATOR_DOUBLE_WRITES=y
    CONFIG_FLASH_SIMULATOR_STATS=n
    CONFIG_NORDIC_QSPI_NOR=y
    CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
    CONFIG_NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE=16
    
    CONFIG_MAIN_STACK_SIZE=10240
    
    CONFIG_NRF53_MULTI_IMAGE_UPDATE=y
    CONFIG_UPDATEABLE_IMAGE_NUMBER=2
    
    CONFIG_BOOT_UPGRADE_ONLY=y
    CONFIG_BOOT_IMAGE_ACCESS_HOOK_NRF5340=y
    CONFIG_BOOT_IMAGE_ACCESS_HOOKS=y
    
    CONFIG_LOG=y
    CONFIG_LOG_DEFAULT_LEVEL=1
    
    CONFIG_FLASH=y
    CONFIG_FPROTECT=y
    CONFIG_PM=n
    
    CONFIG_BOOT_SIGNATURE_TYPE_RSA=y
    ### HELMUT ###
    CONFIG_BOOT_SWAP_SAVE_ENCTLV=n
    ### END HELMUT ###
    
    CONFIG_BOOT_BOOTSTRAP=n
    
    CONFIG_ASSERT=n
    CONFIG_BOOT_BANNER=n
    CONFIG_CONSOLE=y
    CONFIG_CONSOLE_HANDLER=n
    CONFIG_GPIO=n
    CONFIG_I2C=n
    CONFIG_SPI=n
    CONFIG_KERNEL_MEM_POOL=n
    CONFIG_MINIMAL_LIBC_CALLOC=n
    CONFIG_MINIMAL_LIBC_MALLOC=n
    CONFIG_MINIMAL_LIBC_REALLOCARRAY=n
    CONFIG_NCS_SAMPLES_DEFAULTS=y
    CONFIG_NO_RUNTIME_CHECKS=y
    CONFIG_NRF_RTC_TIMER=y
    CONFIG_PRINTK=y
    CONFIG_REBOOT=y
    CONFIG_RESET_ON_FATAL_ERROR=y
    CONFIG_SECURE_BOOT_DEBUG=n
    CONFIG_SERIAL=y
    CONFIG_SIZE_OPTIMIZATIONS=y
    CONFIG_UART_CONSOLE=y
    
    ### HELMUT ###
    CONFIG_HEAP_MEM_POOL_SIZE=4096
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
    
  • Hello,

    Apologies for the late follow-up. Have you had any more findings in the mean time?

    Best regards,

    Maria

  • The only issue we have now, is after a cold boot we get this error.

    I: Starting bootloader

    E: Failed to open flash area ID 2 (image 0 slot 1): -19, cannot continue

    If we perform a soft reset, the unit boots up normally ?  Thanks,

Related