Hi,
I am trying implement signature keys feature in light ctrl sample. Before I do this, I have implemented FOTA over BLE feature in it successfully.
However, after I add CONFIG_SECURE_BOOT=y and some config about key file, FOTA would be failed.
Actually, the Device Manager app show upload completely. but the NRF5340 DK doesn't be upgraded after I reboot it.
What's wrong with it? Can someone help me to find out?
I am developing in macOS and NCS2.5.0
Thanks.
prj.conf
# # Copyright (c) 2020 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # # CONFIG_NCS_SAMPLES_DEFAULTS=y # Deffered logging helps improve LPN power consumption # when friendship is established. CONFIG_LOG_MODE_DEFERRED=y # General configuration CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 CONFIG_FLASH=y CONFIG_FLASH_MAP=y CONFIG_NVS=y CONFIG_NVS_LOOKUP_CACHE=y CONFIG_SETTINGS=y CONFIG_SETTINGS_NVS_NAME_CACHE=y CONFIG_HWINFO=y CONFIG_DK_LIBRARY=y CONFIG_PWM=y CONFIG_PM_SINGLE_IMAGE=y # CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE=0x8000 CONFIG_SOC_FLASH_NRF_PARTIAL_ERASE=y # Bluetooth configuration CONFIG_BT=y CONFIG_BT_COMPANY_ID=0x0059 CONFIG_BT_DEVICE_NAME="Mesh Light Fixture" CONFIG_BT_L2CAP_TX_BUF_COUNT=8 CONFIG_BT_OBSERVER=y CONFIG_BT_PERIPHERAL=y # Disable unused Bluetooth features CONFIG_BT_CTLR_DUP_FILTER_LEN=0 CONFIG_BT_CTLR_LE_ENC=n CONFIG_BT_PHY_UPDATE=n CONFIG_BT_CTLR_CHAN_SEL_2=n CONFIG_BT_CTLR_MIN_USED_CHAN=n CONFIG_BT_CTLR_PRIVACY=n # Bluetooth mesh configuration CONFIG_BT_MESH=y CONFIG_BT_MESH_RELAY=y CONFIG_BT_MESH_FRIEND=y CONFIG_BT_MESH_TX_SEG_MAX=10 CONFIG_BT_MESH_PB_GATT=y CONFIG_BT_MESH_PROXY_USE_DEVICE_NAME=y CONFIG_BT_MESH_GATT_PROXY=y CONFIG_BT_MESH_ADV_EXT_GATT_SEPARATE=y CONFIG_BT_MESH_DK_PROV=y CONFIG_BT_MESH_NLC_PERF_CONF=y CONFIG_BT_MESH_NLC_PERF_LIGHTNESS_CTRL=y CONFIG_BT_MESH_MODEL_EXTENSION_LIST_SIZE=18 # Bluetooth mesh models CONFIG_BT_MESH_LIGHT_CTRL_SRV=y CONFIG_BT_MESH_LIGHT_CTRL_SRV_TIME_ON=3 CONFIG_BT_MESH_LIGHT_CTRL_SRV_TIME_PROLONG=3 CONFIG_BT_MESH_LIGHT_CTRL_SRV_RESUME_DELAY=30 CONFIG_BT_MESH_SCENE_SRV=y CONFIG_BT_MESH_SENSOR_SRV=y CONFIG_REBOOT=y CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_MCUBOOT_IMG_MANAGER=y CONFIG_MCUBOOT_GENERATE_CONFIRMED_IMAGE=y CONFIG_BT_SMP=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 CONFIG_ZCBOR=y CONFIG_MCUMGR=y CONFIG_MCUMGR_TRANSPORT_BT=y CONFIG_STREAM_FLASH=y CONFIG_IMG_MANAGER=y CONFIG_MCUMGR_GRP_IMG=y CONFIG_MCUMGR_GRP_OS=y CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y CONFIG_MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL=y CONFIG_MCUMGR_MGMT_NOTIFICATION_HOOKS=y CONFIG_MCUMGR_GRP_IMG_UPLOAD_CHECK_HOOK=y CONFIG_SECURE_BOOT=y CONFIG_SB_SIGNING_KEY_FILE="/opt/nordic/ncs/v2.5.0/bootloader/mcuboot/priv_a.pem"
create child_image/mcuboot.conf
# 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_BOOT_MAX_IMG_SECTORS=256 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_FW_INFO_FIRMWARE_VERSION=1 CONFIG_BOOT_SIGNATURE_KEY_FILE="/opt/nordic/ncs/v2.5.0/bootloader/mcuboot/priv_a.pem" CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256=y CONFIG_USE_SEGGER_RTT=y CONFIG_RTT_CONSOLE=y CONFIG_UART_CONSOLE=n CONFIG_UART_INTERRUPT_DRIVEN=y CONFIG_LOG=y CONFIG_LOG_DEFAULT_LEVEL=4
add this into child_image/hci_rpmsg.conf
CONFIG_SB_SIGNING_KEY_FILE="/opt/nordic/ncs/v2.5.0/bootloader/mcuboot/priv_a.pem"
add this into boards/nrf5340dk_nrf5340_cpuapp.overlay
/ {
chosen {
nordic,pm-ext-flash = &mx25r64;
};
};
add smp_bt_register(); to main.c