nrf9160dk_nrf9160 FOTA connection failure

Hi,

Project development using board with HL7800 modem similar to Pinnacle 100 did not succeed with FOTA upgrade so it is been decided first to try it with nrf9160dk_nrf9160 devboard.

OS - Windows 10
Using NCS Toolchain 2.0.0 for building
Board: nrf9160dk_nrf9160_ns, Revision: 0.7.0
Found west (found suitable version "0.13.1"
The C compiler identification is GNU 10.3.0
Found west (found suitable version "0.13.1

Memfault account is setup. Beta update from version 0.1.1 to 0.1.3 is configured. Chunks and events are delivered to memfault account. Firmware detects available FOTA and starting to download and fails:

[2022-07-27 14:17:02.456] <inf> <mflt>: Checking for FOTA
[2022-07-27 14:17:20.510] <inf> <mflt>: FOTA Update Available. Starting Download!
[2022-07-27 14:17:22.145] [00:00:43.113,372] <inf> download_client: Setting up TLS credentials, tag 1003
[2022-07-27 14:17:22.150] [00:00:43.113,555] <inf> download_client: Connecting to memfault-prod-east1.s3.amazonaws.com/.../2655598254
[2022-07-27 14:17:22.706] <err> <mflt>: FOTA start failed, rv=-111

It is been tried with ncs\v1.7.1 and ncc\v2.0.0. Both did fail.

Build with command line for project location nrf\samples\nrf9160\memfaul or modules\lib\memfault-firmware-sdk\examples\nrf-connect-sdk\nrf9160\memfault_demo_app
west build -b nrf9160dk_nrf9160_ns -d build/mflt_exmpl C:\ncs\v1.7.1\nrf\samples\nrf9160\memfault --pristine

west build -b nrf9160dk_nrf9160_ns -d build/mflt_exmpl C:\ncs\v2.0.0\modules\lib\memfault-firmware-sdk\examples\nrf-connect-sdk\nrf9160\memfault_demo_app --pristine

Could you please point where is the issue and how to solve it. If i'am not mistaken tracing the source code it leads to offload function nrf91_socket_offload_connect which calls library function nrf_connect.

Note. CONFIG_MEMFAULT_NCS_FW_TYPE="nrf91ns-fw"

         If it is modified FOTA is not visible from firmware or curl request. Why?

Kind Regards.

prj.conf file:

#
# Copyright (c) 2021 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

# General config
CONFIG_NEWLIB_LIBC=y
CONFIG_FPU=y

# Logging
CONFIG_LOG=y
CONFIG_LOG_MODE_IMMEDIATE=y

# For more verbose and detailed log output, set the log level to
# CONFIG_MEMFAULT_SAMPLE_LOG_LEVEL_DBG=y instead.
CONFIG_MEMFAULT_SAMPLE_LOG_LEVEL_INF=y

# Network
CONFIG_NETWORKING=y
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_OFFLOAD=y

# LTE link control
CONFIG_LTE_LINK_CONTROL=y
CONFIG_LTE_NETWORK_MODE_LTE_M=y
CONFIG_LTE_AUTO_INIT_AND_CONNECT=n

# Modem library
CONFIG_NRF_MODEM_LIB=y

# DK
CONFIG_DK_LIBRARY=y

# Memfault
CONFIG_MEMFAULT=y
CONFIG_MEMFAULT_NCS_PROJECT_KEY="nABpoX0my96NyVX9SiiOEezBtywsF9vW"
CONFIG_MEMFAULT_SHELL=y
CONFIG_MEMFAULT_HTTP_PERIODIC_UPLOAD=y
CONFIG_MEMFAULT_NCS_LTE_METRICS=y
CONFIG_MEMFAULT_NCS_STACK_METRICS=y
CONFIG_MEMFAULT_NCS_INTERNAL_FLASH_BACKED_COREDUMP=y

# Add to pick up support for sending Memfault data over HTTP
CONFIG_MEMFAULT_HTTP_ENABLE=y

# nRF9160 only, uses modem to store root CAs
CONFIG_MEMFAULT_ROOT_CERT_STORAGE_NRF9160_MODEM=y
CONFIG_MODEM_KEY_MGMT=y

# Store coredump to flash
CONFIG_MEMFAULT_NCS_INTERNAL_FLASH_BACKED_COREDUMP=y
CONFIG_MEMFAULT_COREDUMP_COLLECT_BSS_REGIONS=y

# Dependency for Memfaul shell
CONFIG_SHELL=y

# AT command capability in shell
CONFIG_AT_SHELL=y
CONFIG_SHELL_WILDCARD=n

# Dependencies for flash storage
CONFIG_FLASH=y
CONFIG_IMG_MANAGER=y
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_MCUBOOT_IMG_MANAGER=y

# Heap and stacks
CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
########################################
CONFIG_MEMFAULT_NCS_HW_VERSION="nrf9160dk"
CONFIG_MEMFAULT_NCS_FW_TYPE="nrf91ns-fw"
CONFIG_MEMFAULT_NCS_FW_VERSION_STATIC=y
CONFIG_MEMFAULT_NCS_FW_VERSION="0.1.1"
# else if CONFIG_MEMFAULT_NCS_FW_VERSION_STATIC=n using CONFIG_MEMFAULT_NCS_FW_VERSION_PREFIX and build_postfix
#CONFIG_MEMFAULT_NCS_FW_VERSION_PREFIX="0.0.2+"

# Enable Bootloader so OTA updates can be performed
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_MCUBOOT_IMG_MANAGER=y

# The subsystems we need so OTA payloads can be written to
# flash and updated by MCUBoot
CONFIG_DFU_TARGET=y
CONFIG_DFU_TARGET_MCUBOOT=y
CONFIG_IMG_MANAGER=y
CONFIG_FLASH=y
CONFIG_IMG_ERASE_PROGRESSIVELY=y

# For Memfault FOTA, we will use the FOTA_DOWNLOAD API's
# from the nRF Connect SDK which depends on the DOWNLOAD_CLIENT
CONFIG_FOTA_DOWNLOAD=y
CONFIG_DOWNLOAD_CLIENT=y
CONFIG_MEMFAULT_FOTA_CLI_CMD=y

# Enable printing of file download progress to console
CONFIG_FOTA_DOWNLOAD_PROGRESS_EVT=y

# Off by default since a small patch is needed to nrf in order to enable
# as of the latest SDK release (nRF Connect SDK v1.4.x)
# https://mflt.io/nrf-fota
#
CONFIG_MEMFAULT_FOTA=y
CONFIG_DOWNLOAD_CLIENT_MAX_FILENAME_SIZE=400
CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=1600
#
# Note: Can optionally be changed to =y to implement
# a custom event handler for FOTA events
# CONFIG_MEMFAULT_FOTA_DOWNLOAD_CALLBACK_CUSTOM=n

CONFIG_NET_SHELL=y
CONFIG_DNS_RESOLVER=y
CONFIG_DOWNLOAD_CLIENT_TCP_SOCK_TIMEO_MS=60000

build log:

C:\ncs\v2.0.0\zephyr>west build -b nrf9160dk_nrf9160_ns -d build/mflt_exmpl C:\ncs\v2.0.0\modules\lib\memfault-firmware-sdk\examples\nrf-connect-sdk\nrf9160\memfault_demo_app --pristine
-- west build: making build dir C:\ncs\v2.0.0\zephyr\build\mflt_exmpl pristine
-- west build: generating a build system
-- Using NCS Toolchain 2.0.0 for building. (C:/ncs/toolchains/v2.0.0/cmake)
Loading Zephyr default modules (Zephyr base).
-- Application: C:/ncs/v2.0.0/modules/lib/memfault-firmware-sdk/examples/nrf-connect-sdk/nrf9160/memfault_demo_app
-- Using NCS Toolchain 2.0.0 for building. (C:/ncs/toolchains/v2.0.0/cmake)
-- Found Python3: C:/ncs/toolchains/v2.0.0/opt/bin/python.exe (found suitable exact version "3.8.2") found components: Interpreter
-- Cache files will be written to: C:/ncs/v2.0.0/zephyr/.cache
-- Zephyr version: 3.0.99 (C:/ncs/v2.0.0/zephyr)
-- Found west (found suitable version "0.13.1", minimum required is "0.7.1")
-- Board: nrf9160dk_nrf9160_ns, Revision: 0.7.0
-- Found host-tools: zephyr 0.14.1 (C:/ncs/toolchains/v2.0.0/opt/zephyr-sdk)
-- Found dtc: C:/ncs/toolchains/v2.0.0/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6")
-- Found toolchain: zephyr 0.14.1 (C:/ncs/toolchains/v2.0.0/opt/zephyr-sdk)
-- Found BOARD.dts: C:/ncs/v2.0.0/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160_ns.dts
-- Generated zephyr.dts: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/zephyr/zephyr.dts
-- Generated devicetree_unfixed.h: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/zephyr/include/generated/devicetree_unfixed.h
-- Generated device_extern.h: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/zephyr/include/generated/device_extern.h
-- Including generated dts.cmake file: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/zephyr/dts.cmake

warning: DNS_RESOLVER (defined at subsys/net/lib/dns/Kconfig:4) was assigned the value 'y' but got
the value 'n'. Check these unsatisfied dependencies: NET_NATIVE (=n). See
docs.zephyrproject.org/.../kconfig.html and/or look up DNS_RESOLVER in
the menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration
Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful too.


warning: Experimental symbol NET_SOCKETS_OFFLOAD is enabled.

Parsing C:/ncs/v2.0.0/zephyr/Kconfig
Loaded configuration 'C:/ncs/v2.0.0/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160_ns_defconfig'
Merged configuration 'C:/ncs/v2.0.0/modules/lib/memfault-firmware-sdk/examples/nrf-connect-sdk/nrf9160/memfault_demo_app/prj.conf'
Merged configuration 'C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/zephyr/misc/generated/extra_kconfig_options.conf'
Configuration saved to 'C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/zephyr/.config'
Kconfig header saved to 'C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/zephyr/include/generated/autoconf.h'
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe
-- Found Python3: C:/ncs/toolchains/v2.0.0/opt/bin/python.exe (found version "3.8.2") found components: Interpreter
Changed board to secure nrf9160dk_nrf9160 (NOT NS)

=== child image mcuboot - begin ===
loading initial cache file C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot/child_image_preload.cmake
Loading Zephyr default modules (Zephyr base).
-- Application: C:/ncs/v2.0.0/bootloader/mcuboot/boot/zephyr
-- Using NCS Toolchain 2.0.0 for building. (C:/ncs/toolchains/v2.0.0/cmake)
-- Found Python3: C:/ncs/toolchains/v2.0.0/opt/bin/python.exe (found suitable exact version "3.8.2") found components: Interpreter
-- Cache files will be written to: C:/ncs/v2.0.0/zephyr/.cache
-- Zephyr version: 3.0.99 (C:/ncs/v2.0.0/zephyr)
-- Found west (found suitable version "0.13.1", minimum required is "0.7.1")
-- Board: nrf9160dk_nrf9160, Revision: 0.7.0
-- Found host-tools: zephyr 0.14.1 (C:/ncs/toolchains/v2.0.0/opt/zephyr-sdk)
-- Found dtc: C:/ncs/toolchains/v2.0.0/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6")
-- Found toolchain: zephyr 0.14.1 (C:/ncs/toolchains/v2.0.0/opt/zephyr-sdk)
-- Found BOARD.dts: C:/ncs/v2.0.0/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160.dts
-- Found devicetree overlay: C:/ncs/v2.0.0/bootloader/mcuboot/boot/zephyr/dts.overlay
-- Generated zephyr.dts: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot/zephyr/zephyr.dts
-- Generated devicetree_unfixed.h: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot/zephyr/include/generated/devicetree_unfixed.h
-- Generated device_extern.h: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot/zephyr/include/generated/device_extern.h
-- Including generated dts.cmake file: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot/zephyr/dts.cmake
Parsing C:/ncs/v2.0.0/bootloader/mcuboot/boot/zephyr/Kconfig
Loaded configuration 'C:/ncs/v2.0.0/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160_defconfig'
Merged configuration 'C:/ncs/v2.0.0/bootloader/mcuboot/boot/zephyr/prj.conf'
Merged configuration 'C:/ncs/v2.0.0/nrf/modules/mcuboot/tfm.conf'
Merged configuration 'C:/ncs/v2.0.0/nrf/subsys/partition_manager/partition_manager_enabled.conf'
Merged configuration 'C:/ncs/v2.0.0/modules/lib/memfault-firmware-sdk/examples/nrf-connect-sdk/nrf9160/memfault_demo_app/child_image/mcuboot.conf'
Merged configuration 'C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot/zephyr/misc/generated/extra_kconfig_options.conf'
Configuration saved to 'C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot/zephyr/.config'
Kconfig header saved to 'C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot/zephyr/include/generated/autoconf.h'
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe
MCUBoot bootloader key file: C:/ncs/v2.0.0/bootloader/mcuboot/root-ec-p256.pem
-- Configuring done
-- Generating done
-- Build files have been written to: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/mcuboot
=== child image mcuboot - end ===

CMake Warning at C:/ncs/v2.0.0/nrf/modules/mcuboot/CMakeLists.txt:281 (message):


---------------------------------------------------------
--- WARNING: Using default MCUBoot key, it should not ---
--- be used for production. ---
---------------------------------------------------------


Dropping partition 'nrf_modem_lib_trace' since its size is 0.
Dropping partition 'nonsecure_storage' since it is empty.
-- Configuring done
-- Generating done
-- Build files have been written to: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl
-- west build: building application
[7/399] Generating include/generated/version.h
-- Zephyr version: 3.0.99 (C:/ncs/v2.0.0/zephyr), build: v3.0.99-ncs1
[57/399] Performing build step for 'mcuboot_subimage'
[1/184] Generating include/generated/version.h
-- Zephyr version: 3.0.99 (C:/ncs/v2.0.0/zephyr), build: v3.0.99-ncs1
[174/184] Linking C executable zephyr\zephyr_pre0.elf

[178/184] Linking C executable zephyr\zephyr_pre1.elf

[184/184] Linking C executable zephyr\zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 32208 B 48 KB 65.53%
SRAM: 16360 B 178968 B 9.14%
IDT_LIST: 0 GB 2 KB 0.00%
[60/399] Generating ../../tfm/CMakeCache.txt
-- The C compiler identification is GNU 10.3.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe
-- Found Python3: C:/Python310/python.exe (found version "3.10.0") found components: Interpreter
Start to generate partition files:
Generating Header: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/crypto/psa_manifest/tfm_crypto.h
Generating Intermedia: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/crypto/auto_generated/intermedia_tfm_crypto.c
Generating Loadinfo: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/crypto/auto_generated/load_info_tfm_crypto.c
Generating Header: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/platform/psa_manifest/tfm_platform.h
Generating Intermedia: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/platform/auto_generated/intermedia_tfm_platform.c
Generating Loadinfo: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/platform/auto_generated/load_info_tfm_platform.c
Per-partition files done:
Start to generate file from the generated list:
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\secure_fw/spm/cmsis_func/tfm_spm_db_func.inc
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\secure_fw/spm/cmsis_func/tfm_veneers.c
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\interface/include/tfm_veneers.h
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\secure_fw/spm/cmsis_func/tfm_secure_irq_handlers.inc
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\interface/include/psa_manifest/sid.h
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\interface/include/psa_manifest/pid.h
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\interface/include/config_impl.h
Generation of files done
-- ---------- Display crypto configuration - start --------------
-- CRYPTO_RNG_MODULE_DISABLED is set to FALSE
-- CRYPTO_KEY_MODULE_DISABLED is set to TRUE
-- CRYPTO_AEAD_MODULE_DISABLED is set to TRUE
-- CRYPTO_MAC_MODULE_DISABLED is set to TRUE
-- CRYPTO_CIPHER_MODULE_DISABLED is set to TRUE
-- CRYPTO_HASH_MODULE_DISABLED is set to TRUE
-- CRYPTO_KEY_DERIVATION_MODULE_DISABLED is set to TRUE
-- CRYPTO_ASYM_SIGN_MODULE_DISABLED is set to TRUE
-- CRYPTO_ASYM_ENCRYPT_MODULE_DISABLED is set to TRUE
-- CRYPTO_ENGINE_BUF_SIZE is set to 1
-- CRYPTO_CONC_OPER_NUM is set to 8
-- CRYPTO_IOVEC_BUFFER_SIZE is set to 5120
-- ---------- Display crypto configuration - stop ---------------
-- Found Python3: C:/Python38/python.exe (found suitable exact version "3.8.7") found components: Interpreter
-- Cache files will be written to: C:/ncs/v2.0.0/zephyr/.cache
-- Configuring done
-- Generating done
-- Build files have been written to: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm
[66/399] Performing build step for 'tfm'
[2/223] Generating ../generated/secure_fw/spm/cmsis_func/t...nifest/pid.h, ../generated/interface/include/config_impl.h
Start to generate partition files:
Generating Header: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/crypto/psa_manifest/tfm_crypto.h
Generating Intermedia: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/crypto/auto_generated/intermedia_tfm_crypto.c
Generating Loadinfo: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/crypto/auto_generated/load_info_tfm_crypto.c
Generating Header: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/platform/psa_manifest/tfm_platform.h
Generating Intermedia: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/platform/auto_generated/intermedia_tfm_platform.c
Generating Loadinfo: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/generated/secure_fw/partitions/platform/auto_generated/load_info_tfm_platform.c
Per-partition files done:
Start to generate file from the generated list:
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\secure_fw/spm/cmsis_func/tfm_spm_db_func.inc
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\secure_fw/spm/cmsis_func/tfm_veneers.c
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\interface/include/tfm_veneers.h
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\secure_fw/spm/cmsis_func/tfm_secure_irq_handlers.inc
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\interface/include/psa_manifest/sid.h
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\interface/include/psa_manifest/pid.h
Generating C:\ncs\v2.0.0\zephyr\build\mflt_exmpl\tfm\generated\interface/include/config_impl.h
Generation of files done
[195/223] Linking C executable bin\tfm_s.axf
Memory region Used Size Region Size %age Used
FLASH: 32256 B 48 KB 65.63%
RAM: 34956 B 64 KB 53.34%
[206/223] Building C object app/CMakeFiles/tfm_api_ns.dir/...tf-m/trusted-firmware-m/interface/src/tfm_crypto_ipc_api.o
C:/ncs/v2.0.0/modules/tee/tf-m/trusted-firmware-m/interface/src/tfm_crypto_ipc_api.c: In function 'psa_key_derivation_get_capacity':
C:/ncs/v2.0.0/modules/tee/tf-m/trusted-firmware-m/interface/src/tfm_crypto_ipc_api.c:1413:18: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
1413 | {.base = &(operation->handle), .len = sizeof(uint32_t)},
| ^
[220/223] Linking C executable bin\tfm_ns.axf
Memory region Used Size Region Size %age Used
FLASH: 8420 B 441856 B 1.91%
RAM: 13952 B 192 KB 7.10%
[223/223] Generating ../bin/tfm_ns.elf
[71/399] Performing install step for 'tfm'
-- Install configuration: "MinSizeRel"
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/tfm_ioctl_core_api.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_ns.axf
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_ns.bin
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_ns.elf
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_ns.hex
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_ns.map
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_s.axf
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_s.bin
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_s.elf
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_s.hex
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/outputs/EXTERNAL/NRF/MODULES/TFM/TFM/BOARDS/NRF9160/tfm_s.map
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/lib/s_veneers.o
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/client.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/error.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa_manifest/sid.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/tfm_api.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/tfm_ns_interface.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa_config.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/tfm_ns_client_ext.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/tfm_psa_call_pack.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/crypto_extra.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/crypto_compat.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/crypto.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/crypto_client_struct.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/crypto_sizes.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/crypto_struct.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/crypto_types.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/psa/crypto_values.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/tfm_crypto_defs.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/include/tfm_platform_api.h
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/src/tfm_psa_ns_api.c
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/src/tfm_ns_interface.c.example
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/src/tfm_crypto_ipc_api.c
-- Installing: C:/ncs/v2.0.0/zephyr/build/mflt_exmpl/tfm/install/interface/src/tfm_platform_ipc_api.c
[217/399] Building C object modules/memfault-firmware-sdk/...irmware-sdk__ports__zephyr.dir/ncs/src/memfault_fota.c.obj
C:/ncs/v2.0.0/modules/lib/memfault-firmware-sdk/ports/zephyr/ncs/src/memfault_fota.c: In function 'memfault_fota_start':
C:/ncs/v2.0.0/modules/lib/memfault-firmware-sdk/ports/zephyr/ncs/src/memfault_fota.c:67:68: warning: passing argument 4 of 'fota_download_start' makes integer from pointer without a cast [-Wint-conversion]
67 | rv = fota_download_start(download_url, download_url, certs[i], NULL, 0);
| ^~~~
| |
| void *
In file included from C:/ncs/v2.0.0/modules/lib/memfault-firmware-sdk/ports/zephyr/ncs/include/memfault/nrfconnect_port/fota.h:16,
from C:/ncs/v2.0.0/modules/lib/memfault-firmware-sdk/ports/zephyr/ncs/src/memfault_fota.c:7:
C:/ncs/v2.0.0/nrf/include/net/fota_download.h:121:12: note: expected 'uint8_t' {aka 'unsigned char'} but argument is of type 'void *'
121 | uint8_t pdn_id, size_t fragment_size);
| ~~~~~~~~^~~~~~
[380/399] Linking C executable zephyr\zephyr_pre0.elf

[384/399] Linking C executable zephyr\zephyr_pre1.elf

[390/399] Linking C executable zephyr\zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 165152 B 441856 B 37.38%
SRAM: 52328 B 178968 B 29.24%
IDT_LIST: 0 GB 2 KB 0.00%
[399/399] Generating zephyr/merged.hex

Parents
  • Hi,

    It is been tried with ncs\v1.7.1 and ncc\v2.0.0. Both did fail.

    To be able to give you an answer I need to know some more about how/what you are doing that causes this error:

    Firstly, how are you performing the update? Are you attempting to upgrade from:

    v1.7.1 to v2.0.0 or the other way around?

    There has been some changes to MCUBOOT in v2.0.0. As an example in V1.9.1 (and also v.1.7.1) 

    • The default size of MCUBOOT is 48KB on both v1.9.1 and v.2.0.0
    • The change from v1.9.1 to v2.0.0 is the replacement of SPM (64KB) to TF-M minimal (48KB). This makes start offset of application different
      • On V1.9.1 the application start address is 0x20200
      • On V2.0.0 the application start address is 0x1c200

    You can try to enable CONFIG_TFM_CMAKE_BUILD_TYPE_DEBUG=y to make TF-M size 64KB. This should make the start addresses the same and should allow you to do OTA DFU in between NCS versions. Note that there might be other version changes that might cause issues when trying to migrate versions aswell.

    Updates from v1.7.1 to v1.7.1 / v2.0.0 to v2.0.0?

    If this is your case, then I will have to ask around some more

    Secondly, are these errors present if you attempt with a minimal sample as well? I.e with this sample and DFU update?

    Let me know if any of the above helps,

    Kind regards,
    Andreas

  • Hi,


    1.Firmware upgrade attempts are from 1.7.1 to 1.7.1 and second from 2.0.0 to 2.0.0. Let use v1.7.1.
    2.In both cases current firmware software version is 0.1.1 . Active release on memfault account configured from version 0.1.1 to 0.1.3.
    3.Upgrade is initiated from firmware uart shell
    mflt_nrt fota
    4.ncs\v1.7.1 attempt been using minimal sample project located in C:\ncs\v1.7.1\nrf\samples\nrf9160\memfault

    Kind Regards

Reply
  • Hi,


    1.Firmware upgrade attempts are from 1.7.1 to 1.7.1 and second from 2.0.0 to 2.0.0. Let use v1.7.1.
    2.In both cases current firmware software version is 0.1.1 . Active release on memfault account configured from version 0.1.1 to 0.1.3.
    3.Upgrade is initiated from firmware uart shell
    mflt_nrt fota
    4.ncs\v1.7.1 attempt been using minimal sample project located in C:\ncs\v1.7.1\nrf\samples\nrf9160\memfault

    Kind Regards

Children
  • Hi,

    Correct me if you believe I am wrong, but the command "west build -b nrf9160dk_nrf9160_ns -d build/mflt_exmpl C:\ncs\v2.0.0\modules\lib\memfault-firmware-sdk\examples\nrf-connect-sdk\nrf9160\memfault_demo_app --pristine" compiles and builds the entire memfault library, does it not? I believe you only want to flash and build the memfault sample.

    iivanov said:
    4.ncs\v1.7.1 attempt been using minimal sample project located in C:\ncs\v1.7.1\nrf\samples\nrf9160\memfault

    How did this go? Did you have the same results here aswell?

    [2022-07-27 14:17:22.706] <err> <mflt>: FOTA start failed, rv=-111

    Error 111 suggests you have a connection error, which could be caused by either your certificate and/or your internet connection. If this is what causes the issues, could you try to verify if a sample you build from our samples gets connected to the LTE network? 

    Then, the second thing I would like you to verify/do is to run the AT Client on your custom board and then run the following sequence: 

    AT+CGMR 
    AT%MDMEV=1 
    AT%XMODEMSLEEP=1,1000,60000 
    AT+CEREG=5 
    AT%CESQ=1  
    AT%XSYSTEMMODE? 
    AT+CFUN=1

    This should give you a log similar to the following:

    [2022-07-08 17:43:01] *** Booting Zephyr OS build v3.0.99-ncs1  *** 
    [2022-07-08 17:43:01] The AT host sample started 
    [2022-07-08 17:43:04] AT+CGMR 
    [2022-07-08 17:43:05] mfw_nrf9160_1.3.2 
    [2022-07-08 17:43:05] OK 
    [2022-07-08 17:43:10] AT%MDMEV=1 
    [2022-07-08 17:43:10] OK 
    [2022-07-08 17:43:14] AT%XMODEMSLEEP=1,1000,60000 
    [2022-07-08 17:43:14] O%XMODEMSLEEP: 4 
    [2022-07-08 17:43:14] K 
    [2022-07-08 17:43:18] AT+CEREG=5 
    [2022-07-08 17:43:19] OK 
    [2022-07-08 17:43:22] AT%CESQ=1  
    [2022-07-08 17:43:23] OK 
    [2022-07-08 17:43:27] AT%XSYSTEMMODE? 
    [2022-07-08 17:43:28] %XSYSTEMMODE: 1,0,0,0 
    [2022-07-08 17:43:28] OK 
    [2022-07-08 17:43:31] AT+CFUN=1 
    [2022-07-08 17:43:32] %XMODEMSLEEP: 4,0 
    [2022-07-08 17:43:32] OK 
    [2022-07-08 17:43:33] %CESQ: 46,2,18,2 
    [2022-07-08 17:43:33] +CEREG: 2,"7AA9","01444000",7 
    [2022-07-08 17:43:34] %MDMEV: SEARCH STATUS 2 
    [2022-07-08 17:43:34] +CEREG: 1,"7AA9","01444000",7,,,"00001010","11000001" 
    [2022-07-08 17:43:42] %CESQ: 47,2,23,3 
    [2022-07-08 17:43:57] %CESQ: 46,2,18,2 
    [2022-07-08 17:44:08] %CESQ: 255,0,255,0 
    [2022-07-08 17:44:08] %XMODEMSLEEP: 1,1151979975

    With the AT Client you may also verify your certificates on the custom board by using  %CMNG

    Let me know about your progress and results! 

    Kind regards,
    Andreas

  • Thank you for response.

    Error 111 i assume is #define ECONNREFUSED 111   /* Connection refused */

    AT commandw been suggested to run are producing similar results.
    If nordic has demo project for nrf9160dk_nrf9160_ns board with FOTA using memfault account could you provide prj.conf so i could reproduce it with my test project and memfault account.
    Kind Regards,.
  • Hi,

    We do not have such an sample, but the Memfault sample application shows you how to use the library: "The Memfault sample shows how to use the Memfault SDK in an nRF Connect SDK application to collect coredumps and metrics. The sample connects to an LTE network and sends the collected data to Memfault’s cloud using HTTPS."

    Kind regards
    Andreas

Related