From 6f8f294ecc8f42993df5cd3c13cfa6199e44984a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Ku=C4=87ma?= Date: Wed, 13 Nov 2024 13:23:43 +0100 Subject: [PATCH] Anjay-zephyr-client 24.11 Features - Added FOTA support for nRF7002DK board Improvements - Updated Zephyr to 3.6.0 - Updated sdk-nrf to 2.7.0 - Updated Anjay-zephyr to 3.8.1 - Added instruction for updating es-WiFi module for B-L475E-IOT01A Discovery kit --- CHANGELOG.md | 11 ++ README.md | 27 +++- bubblemaker/README.md | 4 +- .../boards/nrf7002dk_nrf5340_cpuapp_ns.conf | 9 +- bubblemaker/boards/nrf9160dk_nrf9160_ns.conf | 4 +- .../boards/nrf9160dk_nrf9160_ns_intflash.conf | 4 +- bubblemaker/src/led_strip.c | 5 +- bubblemaker/src/peripherals.h | 16 +-- bubblemaker/src/sensors.c | 4 - bubblemaker/west-nrf.yml | 4 +- demo/CMakeLists.txt | 4 +- demo/README.md | 20 +-- demo/boards/arduino_nano_33_ble_sense.conf | 6 +- demo/boards/disco_l475_iot1.conf | 6 +- demo/boards/esp32_devkitc_wroom.conf | 2 - demo/boards/nrf52840dk_nrf52840.conf | 6 +- demo/boards/nrf7002dk_nrf5340_cpuapp_ns.conf | 32 ++++- .../nrf7002dk_nrf5340_cpuapp_ns.overlay | 8 ++ demo/boards/nrf9160dk_nrf9160_ns.conf | 3 +- .../boards/nrf9160dk_nrf9160_ns_intflash.conf | 3 +- demo/boards/thingy91_nrf9160_ns.conf | 6 +- demo/boards/tmo_dev_edge.conf | 7 +- .../boards/nrf7002dk_nrf5340_cpuapp.conf | 17 +++ .../boards/nrf7002dk_nrf5340_cpuapp.overlay | 9 ++ demo/overlay_nrf9160_afu.conf | 1 - demo/overlay_nrf9160_afu_full.conf | 1 - .../pm_static_nrf7002dk_nrf5340_cpuapp_ns.yml | 123 ++++++++++++++++++ demo/prj_intflash.conf | 36 ----- demo/src/peripherals.h | 16 +-- demo/west-nrf.yml | 4 +- demo/west-t-mobile.yml | 2 +- demo/west.yml | 4 +- ei_demo/README.md | 4 +- ei_demo/boards/thingy91_nrf9160_ns.conf | 1 - ei_demo/prj.conf | 1 - ei_demo/west-nrf.yml | 4 +- minimal/README.md | 8 +- minimal/boards/arduino_nano_33_ble_sense.conf | 6 +- minimal/boards/disco_l475_iot1.conf | 4 - minimal/boards/esp32_devkitc_wroom.conf | 2 - minimal/boards/nrf52840dk_nrf52840.conf | 6 +- .../boards/nrf7002dk_nrf5340_cpuapp_ns.conf | 8 +- minimal/boards/nrf9160dk_nrf9160_ns.conf | 1 - minimal/boards/qemu_x86.conf | 4 - minimal/boards/thingy91_nrf9160_ns.conf | 1 - minimal/boards/tmo_dev_edge.conf | 5 - minimal/prj.conf | 1 - minimal/west-nrf.yml | 4 +- minimal/west-t-mobile.yml | 2 +- minimal/west.yml | 4 +- tools/provisioning-tool/ptool.py | 2 +- 51 files changed, 292 insertions(+), 180 deletions(-) create mode 100644 demo/child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.conf create mode 100644 demo/child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.overlay create mode 100644 demo/pm_static_nrf7002dk_nrf5340_cpuapp_ns.yml delete mode 100644 demo/prj_intflash.conf diff --git a/CHANGELOG.md b/CHANGELOG.md index fb51141..cf480fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 24.11 (November 13th, 2024) + +### Features +- Added FOTA support for nRF7002DK board + +### Improvements +- Updated Zephyr to 3.6.0 +- Updated sdk-nrf to 2.7.0 +- Updated Anjay-zephyr to 3.8.1 +- Added instruction for updating es-WiFi module for B-L475E-IOT01A Discovery kit + ## 24.05 (May 28th, 2024) ### Improvements diff --git a/README.md b/README.md index dc57d6c..b1311b6 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ The following examples are present: demo/ - Showcase example implementing all features and sensors available on board. Supports experimental factory provisioning feature of Anjay 3.0. Supported boards:
+ Showcase example implementing all features and sensors available on board. Supports experimental factory provisioning feature of Anjay 3. Supported boards:
B-L475E-IOT01A Discovery kit
nRF9160 Development kit
Nordic Thingy:91 Prototyping kit
@@ -142,7 +142,7 @@ Now we can add the application to VSC workspace. Click on nRF Connect tab -> Application -> Add Application. Open the folder containing the `prj.conf` file (e.g. `Anjay-zephyr-client/demo`). In the Application section the demo application should show up. Click on "No build configuration" to add a -configuration for the desired target, e.g. `nrf9160dk_nrf9160_ns` (you can have +configuration for the desired target, e.g. `nrf9160dk/nrf9160/ns` (you can have multiple configurations for different targets). Choose your target and click "Build Configuration" in order to build the application. Next builds can be started by choosing Actions -> Build. @@ -179,3 +179,26 @@ is available on IoT Developer Zone. > **__NOTE:__** > You may use any LwM2M Server compliant with LwM2M 1.0 TS. The server URI can > be changed in the example configuration options. + +## Updating es-WiFi module firmware on B-L475E-IOT01A Discovery kit to make FOTA work + +There are known issues with the older es-WiFi firmware, particularly in handling +multiple socket connections, which manifest during pull FOTA operations. To get +rid of these problems, a WiFi module firmware update is required. + +Please download `Inventek ISM 43362 Wi-Fi module firmware update` package from +[ST website](https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html#tools-software). +If you are using Windows you can simple follow instructions from `readme.txt`. +For Linux, please install the appropriate version of +[STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html). +Then follow steps 2 through 5 in `readme.txt`. Next, go to the +`en.inventek_fw_updater.2.0/bin` directory, but do not run the `update_Wifi.bat` +script. Instead, run (please update the path to `STM32_Programmer_CLI` and +`/dev/ttyACM0` device port if necessary): + +```bash +~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI -c port=SWD -e all -d ./InventekBootloaderPassthrough.bin 0x08000000 -v -hardrst +sleep 10 +~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI -c port=/dev/ttyACM0 br=115200 p=EVEN db=8 sb=1 fc=OFF -e all +~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI -c port=/dev/ttyACM0 br=115200 p=even db=8 sb=1 fc=OFF -d ./ISM43362_M3G_L44_SPI_C3.5.2.7.STM.bin 0x08000000 -v +``` diff --git a/bubblemaker/README.md b/bubblemaker/README.md index 470ce8f..8b70ffe 100644 --- a/bubblemaker/README.md +++ b/bubblemaker/README.md @@ -2,8 +2,8 @@ ## Supported hardware and overview This folder contains support for the following targets: - - [nrf9160dk_nrf9160_ns](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_nrf9160.html) - - [nrf7002dk_nrf5340_cpuapp_ns](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/device_guides/working_with_nrf/nrf70/gs.html) + - [nrf9160dk/nrf9160/ns](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_nrf9160.html) + - [nrf7002dk/nrf5340/cpuapp/ns](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/device_guides/working_with_nrf/nrf70/gs.html) The following LwM2M Objects are supported: - Security (/0) diff --git a/bubblemaker/boards/nrf7002dk_nrf5340_cpuapp_ns.conf b/bubblemaker/boards/nrf7002dk_nrf5340_cpuapp_ns.conf index f466e08..20ac98d 100644 --- a/bubblemaker/boards/nrf7002dk_nrf5340_cpuapp_ns.conf +++ b/bubblemaker/boards/nrf7002dk_nrf5340_cpuapp_ns.conf @@ -5,7 +5,6 @@ CONFIG_ANJAY_ZEPHYR_MODEL_NUMBER="nRF7002DK" # Anjay Settings CONFIG_ANJAY_COMPAT_MBEDTLS=y CONFIG_ANJAY_COMPAT_NET=y -CONFIG_ANJAY_COMPAT_TIME=y CONFIG_ANJAY_LOG_LEVEL_INF=y CONFIG_ANJAY_WITH_NET_STATS=n CONFIG_ANJAY_WITH_SENML_JSON=y @@ -13,8 +12,6 @@ CONFIG_ANJAY_WITH_TRACE_LOGS=n CONFIG_ANJAY_WITH_ACCESS_CONTROL=n # General Settings -CONFIG_NEWLIB_LIBC=y -CONFIG_NEWLIB_LIBC_NANO=n CONFIG_MAIN_STACK_SIZE=2048 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096 CONFIG_LOG_MAX_LEVEL=3 @@ -29,6 +26,8 @@ CONFIG_DNS_RESOLVER=y CONFIG_WIFI=y CONFIG_WIFI_NRF700X=y CONFIG_WPA_SUPP=y +CONFIG_WPA_SUPP_CRYPTO_PSA=y +CONFIG_PSA_WANT_ALG_HMAC=y CONFIG_NET_L2_WIFI_MGMT=y CONFIG_NET_L2_WIFI_MGMT_LOG_LEVEL_ERR=y CONFIG_NET_L2_ETHERNET=y @@ -45,7 +44,8 @@ CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_MPU_ALLOW_FLASH_WRITE=y # Heap -CONFIG_HEAP_MEM_POOL_SIZE=200000 +CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=150000 +CONFIG_HEAP_MEM_POOL_SIZE=150000 # Bubblemaker CONFIG_SENSOR=y @@ -53,7 +53,6 @@ CONFIG_ADC=y CONFIG_W1=y CONFIG_LED_STRIP=y -CONFIG_WS2812_STRIP=y CONFIG_SPI=y CONFIG_GPIO=y diff --git a/bubblemaker/boards/nrf9160dk_nrf9160_ns.conf b/bubblemaker/boards/nrf9160dk_nrf9160_ns.conf index 416d7f7..03ef6bc 100644 --- a/bubblemaker/boards/nrf9160dk_nrf9160_ns.conf +++ b/bubblemaker/boards/nrf9160dk_nrf9160_ns.conf @@ -35,7 +35,6 @@ CONFIG_NRF_MODEM_LIB=y CONFIG_MODEM_INFO=y CONFIG_LTE_LINK_CONTROL=y CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y -CONFIG_LTE_AUTO_INIT_AND_CONNECT=n CONFIG_LTE_NETWORK_TIMEOUT=600 CONFIG_NRF_CLOUD_GPS_LOG_LEVEL_INF=y @@ -57,7 +56,7 @@ CONFIG_HEAP_MEM_POOL_SIZE=2048 CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_IMG_MANAGER=y CONFIG_IMG_ERASE_PROGRESSIVELY=y -CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.5.0" +CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.11.0" # Shell settings CONFIG_SHELL_MINIMAL=y @@ -81,7 +80,6 @@ CONFIG_ADC=y CONFIG_W1=y CONFIG_LED_STRIP=y -CONFIG_WS2812_STRIP=y CONFIG_SPI=y CONFIG_GPIO=y diff --git a/bubblemaker/boards/nrf9160dk_nrf9160_ns_intflash.conf b/bubblemaker/boards/nrf9160dk_nrf9160_ns_intflash.conf index 1d304b0..b34e392 100644 --- a/bubblemaker/boards/nrf9160dk_nrf9160_ns_intflash.conf +++ b/bubblemaker/boards/nrf9160dk_nrf9160_ns_intflash.conf @@ -35,7 +35,6 @@ CONFIG_NRF_MODEM_LIB=y CONFIG_MODEM_INFO=y CONFIG_LTE_LINK_CONTROL=y CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y -CONFIG_LTE_AUTO_INIT_AND_CONNECT=n CONFIG_LTE_NETWORK_TIMEOUT=600 CONFIG_NRF_CLOUD_GPS_LOG_LEVEL_INF=y @@ -57,7 +56,7 @@ CONFIG_HEAP_MEM_POOL_SIZE=2048 CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_IMG_MANAGER=y CONFIG_IMG_ERASE_PROGRESSIVELY=y -CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.5.0" +CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.11.0" # Shell settings CONFIG_SHELL_MINIMAL=y @@ -81,7 +80,6 @@ CONFIG_ADC=y CONFIG_W1=y CONFIG_LED_STRIP=y -CONFIG_WS2812_STRIP=y CONFIG_SPI=y CONFIG_GPIO=y diff --git a/bubblemaker/src/led_strip.c b/bubblemaker/src/led_strip.c index 8de2256..f6c84bb 100644 --- a/bubblemaker/src/led_strip.c +++ b/bubblemaker/src/led_strip.c @@ -29,10 +29,7 @@ LOG_MODULE_REGISTER(led_strip); #define STRIP_NODE DT_ALIAS(led_strip) #define STRIP_NUM_PIXELS DT_PROP(STRIP_NODE, chain_length) -#define RGB(_r, _g, _b) \ - { \ - .r = (_r), .g = (_g), .b = (_b) \ - } +#define RGB(_r, _g, _b) { .r = (_r), .g = (_g), .b = (_b) } static struct k_thread led_strip_thread; static K_THREAD_STACK_DEFINE(led_strip_stack, 1024); diff --git a/bubblemaker/src/peripherals.h b/bubblemaker/src/peripherals.h index 86a703f..4e24e10 100644 --- a/bubblemaker/src/peripherals.h +++ b/bubblemaker/src/peripherals.h @@ -33,18 +33,14 @@ #define SWITCH_AVAILABLE_ANY (SWITCH_AVAILABLE(0) || SWITCH_AVAILABLE(1) || SWITCH_AVAILABLE(2)) #define PUSH_BUTTON_GLUE_ITEM(num) \ - { \ - .device = DEVICE_DT_GET(DT_GPIO_CTLR(PUSH_BUTTON_NODE(num), gpios)), \ - .gpio_pin = DT_GPIO_PIN(PUSH_BUTTON_NODE(num), gpios), \ - .gpio_flags = (GPIO_INPUT | DT_GPIO_FLAGS(PUSH_BUTTON_NODE(num), gpios)) \ - } + { .device = DEVICE_DT_GET(DT_GPIO_CTLR(PUSH_BUTTON_NODE(num), gpios)), \ + .gpio_pin = DT_GPIO_PIN(PUSH_BUTTON_NODE(num), gpios), \ + .gpio_flags = (GPIO_INPUT | DT_GPIO_FLAGS(PUSH_BUTTON_NODE(num), gpios)) } #define SWITCH_BUTTON_GLUE_ITEM(num) \ - { \ - .device = DEVICE_DT_GET(DT_GPIO_CTLR(SWITCH_NODE(num), gpios)), \ - .gpio_pin = DT_GPIO_PIN(SWITCH_NODE(num), gpios), \ - .gpio_flags = (GPIO_INPUT | DT_GPIO_FLAGS(SWITCH_NODE(num), gpios)) \ - } + { .device = DEVICE_DT_GET(DT_GPIO_CTLR(SWITCH_NODE(num), gpios)), \ + .gpio_pin = DT_GPIO_PIN(SWITCH_NODE(num), gpios), \ + .gpio_flags = (GPIO_INPUT | DT_GPIO_FLAGS(SWITCH_NODE(num), gpios)) } #define TEMPERATURE_0_NODE DT_ALIAS(temperature_0) #define TEMPERATURE_0_AVAILABLE DT_NODE_HAS_STATUS(TEMPERATURE_0_NODE, okay) diff --git a/bubblemaker/src/sensors.c b/bubblemaker/src/sensors.c index 13759df..964ac16 100644 --- a/bubblemaker/src/sensors.c +++ b/bubblemaker/src/sensors.c @@ -38,10 +38,6 @@ LOG_MODULE_REGISTER(sensor); #define ACIDITY_0_AVAILABLE ADC_HAS_SENSOR(acidity0) #define ACIDITY_1_AVAILABLE ADC_HAS_SENSOR(acidity1) -#define ADC_DT_SPEC_GET_BY_NAME(NodeId, Name) \ - ADC_DT_SPEC_STRUCT(DT_IO_CHANNELS_CTLR_BY_NAME(NodeId, Name), \ - DT_IO_CHANNELS_INPUT_BY_NAME(NodeId, Name)) - enum adc_channels { #if PRESSURE_0_AVAILABLE ADC_CHANNEL_PRESSURE_0, diff --git a/bubblemaker/west-nrf.yml b/bubblemaker/west-nrf.yml index b1f52e6..3482cff 100644 --- a/bubblemaker/west-nrf.yml +++ b/bubblemaker/west-nrf.yml @@ -23,10 +23,10 @@ manifest: - name: sdk-nrf path: nrf remote: ncs - revision: v2.5.0 + revision: v2.7.0 import: true - name: Anjay-zephyr submodules: true remote: anjay - revision: 3.8.0 + revision: 3.8.1 path: modules/lib/anjay diff --git a/demo/CMakeLists.txt b/demo/CMakeLists.txt index bbb7d97..90ad9e6 100644 --- a/demo/CMakeLists.txt +++ b/demo/CMakeLists.txt @@ -31,7 +31,9 @@ if(CONFIG_PARTITION_MANAGER_ENABLED) set(pm_missing_message "${pm_missing_message}, build type: ${CONF_FILE_BUILD_TYPE}") endif() - message(FATAL_ERROR "${pm_missing_message}") + if(NOT SKIP_PM_CHECK) + message(FATAL_ERROR "${pm_missing_message}. If you want to skip this warning, temporarily pass -DSKIP_PM_CHECK=ON to CMake args.") + endif() endif() endif() endif() diff --git a/demo/README.md b/demo/README.md index 2e7cc0b..81a8d3d 100644 --- a/demo/README.md +++ b/demo/README.md @@ -18,7 +18,7 @@ The following LwM2M Objects are supported by default: | Thingy:91 | Connectivity Monitoring (/4)
**Firmware Update (/5)**
Location (/6)
Temperature (/3303)
Humidity (/3304)
Accelerometer (/3313)
Barometer (/3315)
Buzzer (/3338)
Push button (/3347)
LED color light (/3420)
ECID-Signal Measurement Information (/10256)
GNSS Assistance (/33625) (experimental)
Ground Fix Location (/33626) (experimental, to enable in Kconfig)
Advanced Firmware Update (/33629) (experimental, to enable in Kconfig) | | DevEdge | **Firmware Update (/5)**
Location (/6)
Illuminance (/3301)
Temperature (/3303)
Accelerometer (/3313)
Barometer (/3315)
Push button (/3347) | | nRF52840DK | Push button (/3347) | -| nRF7002DK | Light Control (/3311)
Push button (/3347) | +| nRF7002DK | **Firmware Update (/5)**
Light Control (/3311)
Push button (/3347) | | Arduino Nano 33 BLE Sense Lite | Temperature (/3303)
Barometer (/3315) | > **__NOTE:__** > Lite version of `Arduino Nano 33 BLE Sense` does NOT contain HTS221 sensor. @@ -43,9 +43,9 @@ west config manifest.path Anjay-zephyr-client/demo west config manifest.file west-nrf.yml west update ``` -Now you can compile the project using `west build -b nrf9160dk_nrf9160_ns`, `west build -b thingy91_nrf9160_ns`, `west build -b nrf7002dk_nrf5340_cpuapp_ns`, `west build -b nrf52840dk_nrf52840` or `west build -b arduino_nano_33_ble_sense` in `demo` directory, respectively. The last two commands compiles project for use with the OpenThread network, more about this can be found in the section [Connecting to the LwM2M Server with OpenThread](#connecting-to-the-lwm2m-server-with-openthread). +Now you can compile the project using `west build -b nrf9160dk/nrf9160/ns`, `west build -b thingy91/nrf9160/ns`, `west build -b nrf7002dk/nrf5340/cpuapp/ns`, `west build -b nrf52840dk/nrf52840` or `west build -b arduino_nano_33_ble/nrf52840/sense` in `demo` directory, respectively. The last two commands compiles project for use with the OpenThread network, more about this can be found in the section [Connecting to the LwM2M Server with OpenThread](#connecting-to-the-lwm2m-server-with-openthread). -By default, building for `nrf9160dk_nrf9160_ns` target is intended for nRF9160DK hardware revision 0.14.0. In order to protect against further NCS updates, we can provide the revision explicitly, by calling `west build -b nrf9160dk_nrf9160_ns@0.14.0`. +By default, building for `nrf9160dk/nrf9160/ns` target is intended for nRF9160DK hardware revision 0.14.0. In order to protect against further NCS updates, we can provide the revision explicitly, by calling `west build -b nrf9160dk@0.14.0/nrf9160/ns`. ### Compilation guide for T-Mobile DevEdge @@ -115,7 +115,7 @@ The preferred bearer can be saved onto persistent storage (among other settings) ### Compiling for external and internal flash usage -Revision 0.14.0 of nRF9160DK and all subsequent ones put the MCUboot secondary partition on the external flash instead of dividing the internal flash space. If you want to utilize internal flash memory instead, use `0.7.0` revision, by calling `west build -b nrf9160dk_nrf9160_ns@0.7.0 -- -DCONF_FILE=prj_intflash.conf`. +Revision 0.14.0 of nRF9160DK and all subsequent ones put the MCUboot secondary partition on the external flash instead of dividing the internal flash space. If you want to utilize internal flash memory instead, use `0.7.0` revision, by calling `west build -b nrf9160dk@0.7.0/nrf9160/ns -- -DFILE_SUFFIX=intflash`. ### Compiling with software-based cryptography @@ -123,7 +123,7 @@ On Nordic boards, security is provided using the (D)TLS sockets implemented in m However, on nRF9160DK revisions 0.14.0 and up, it is possible to switch to software-based implementation based on Mbed TLS instead. This is not recommended due to lowered security and performance, but may be desirable if you require some specific (D)TLS features (e.g. ciphersuites and DTLS Connection ID support) that are not supported by the modem. -To compile in this configuration, use `west build -b nrf9160dk_nrf9160_ns -- -DEXTRA_CONF_FILE=overlay_nrf_mbedtls.conf`. +To compile in this configuration, use `west build -b nrf9160dk/nrf9160/ns -- -DEXTRA_CONF_FILE=overlay_nrf_mbedtls.conf`. ### Compiling with experimental Advanced Firmware Update object @@ -135,11 +135,11 @@ to Firmware Update (/5) object, which allows for upgrading both application firm Binaries used to update the application are the same as those used in default Firmware Update (/5) object. nRF9160 firmware can be found [here](https://www.nordicsemi.com/Products/nRF9160/Download#infotabs). -To compile in this configuration, use `west build -b nrf9160dk_nrf9160_ns -- -DEXTRA_CONF_FILE=overlay_nrf9160_afu.conf`. +To compile in this configuration, use `west build -b nrf9160dk/nrf9160/ns -- -DEXTRA_CONF_FILE=overlay_nrf9160_afu.conf`. Additionally, on nRF9160DK revisions 0.14.0 and up, it's possible to also update modem firmware using [full firmware packages](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.4.0/nrfxlib/nrf_modem/doc/bootloader.html). -To compile in this configuration, use `west build -b nrf9160dk_nrf9160_ns -- -DEXTRA_CONF_FILE=overlay_nrf9160_afu_full.conf`. +To compile in this configuration, use `west build -b nrf9160dk/nrf9160/ns -- -DEXTRA_CONF_FILE=overlay_nrf9160_afu_full.conf`. ## Flashing the target @@ -244,7 +244,7 @@ where `` should be replaced by the selected board from `boards/` director This feature works with nrf9160dk starting from revision v0.14.0. For this board use configuration which utilizes external flash chip and software-based cryptography: ``` -west build -b nrf9160dk_nrf9160_ns -p -- -DEXTRA_CONF_FILE="overlay_nrf_mbedtls.conf" +west build -b nrf9160dk/nrf9160/ns -p -- -DEXTRA_CONF_FILE="overlay_nrf_mbedtls.conf" ``` After that, certificate and private key based on SECP256R1 curve can be provided through shell interface in PEM format. To generate them use following commands (to use certificate and private key with Coiote DM you must specify a common name that is the same as the client endpoint name): @@ -309,7 +309,7 @@ Currently the script is designed only for Nordic boards, and it was tested with Example script invocation from the `demo` for provisioning some nRF 9160DK board directory may look like: ```bash -../tools/provisioning-tool/ptool.py -b nrf9160dk_nrf9160_ns -s -c ../tools/provisioning-tool/configs/endpoint_cfg -t -S ../tools/provisioning-tool/configs/lwm2m_server.json +../tools/provisioning-tool/ptool.py -b nrf9160dk/nrf9160/ns -s -c ../tools/provisioning-tool/configs/endpoint_cfg -t -S ../tools/provisioning-tool/configs/lwm2m_server.json ``` where `` should be replaced by our board's serial number and `` should be replaced by some valid authentication token for the Coiote server provided in the `lwm2m_server.json` file. @@ -348,7 +348,7 @@ Once you have the server certificate, you can now provision the board. Example script invocation may look like: ```bash -../tools/provisioning-tool/ptool.py -b nrf9160dk_nrf9160_ns -s -c ../tools/provisioning-tool/configs/endpoint_cfg_cert -p eu-cloud-cert.der -C ../tools/provisioning-tool/configs/cert_info.json +../tools/provisioning-tool/ptool.py -b nrf9160dk/nrf9160/ns -s -c ../tools/provisioning-tool/configs/endpoint_cfg_cert -p eu-cloud-cert.der -C ../tools/provisioning-tool/configs/cert_info.json ``` > **__NOTE:__** diff --git a/demo/boards/arduino_nano_33_ble_sense.conf b/demo/boards/arduino_nano_33_ble_sense.conf index f702117..9e11696 100644 --- a/demo/boards/arduino_nano_33_ble_sense.conf +++ b/demo/boards/arduino_nano_33_ble_sense.conf @@ -42,11 +42,9 @@ CONFIG_OPENTHREAD_JOINER_PSKD="J01NME" CONFIG_OPENTHREAD_FTD=y # MbedTLS and security -CONFIG_MBEDTLS=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y +CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y +CONFIG_MBEDTLS_CTR_DRBG_C=y CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y CONFIG_MBEDTLS_HEAP_SIZE=15360 # Sensors diff --git a/demo/boards/disco_l475_iot1.conf b/demo/boards/disco_l475_iot1.conf index dd5adc7..7be9588 100644 --- a/demo/boards/disco_l475_iot1.conf +++ b/demo/boards/disco_l475_iot1.conf @@ -20,11 +20,7 @@ CONFIG_NET_L2_WIFI_MGMT=y CONFIG_NET_L2_WIFI_MGMT_LOG_LEVEL_ERR=y # MbedTLS and security -CONFIG_MBEDTLS=y CONFIG_MBEDTLS_CIPHER_CCM_ENABLED=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y CONFIG_ENTROPY_DEVICE_RANDOM_GENERATOR=y CONFIG_ENTROPY_STM32_RNG=y @@ -47,4 +43,4 @@ CONFIG_BOOTLOADER_MCUBOOT=y # Note: if relative paths are used here, it is treated as # relative to $WEST_TOPDIR (typically ~/zephyrproject) CONFIG_MCUBOOT_SIGNATURE_KEY_FILE="bootloader/mcuboot/root-rsa-2048.pem" -CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.5.0" +CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.11.0" diff --git a/demo/boards/esp32_devkitc_wroom.conf b/demo/boards/esp32_devkitc_wroom.conf index fba78a9..a196ce6 100644 --- a/demo/boards/esp32_devkitc_wroom.conf +++ b/demo/boards/esp32_devkitc_wroom.conf @@ -19,8 +19,6 @@ CONFIG_DNS_RESOLVER=y # MbedTLS and security CONFIG_ANJAY_COMPAT_MBEDTLS=y -CONFIG_MBEDTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y diff --git a/demo/boards/nrf52840dk_nrf52840.conf b/demo/boards/nrf52840dk_nrf52840.conf index 7b0b557..6a90611 100644 --- a/demo/boards/nrf52840dk_nrf52840.conf +++ b/demo/boards/nrf52840dk_nrf52840.conf @@ -42,11 +42,9 @@ CONFIG_OPENTHREAD_JOINER_PSKD="J01NME" CONFIG_OPENTHREAD_FTD=y # MbedTLS and security -CONFIG_MBEDTLS=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y +CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y +CONFIG_MBEDTLS_CTR_DRBG_C=y CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y CONFIG_MBEDTLS_HEAP_SIZE=12288 # Shell settings diff --git a/demo/boards/nrf7002dk_nrf5340_cpuapp_ns.conf b/demo/boards/nrf7002dk_nrf5340_cpuapp_ns.conf index 129e2df..72e8191 100644 --- a/demo/boards/nrf7002dk_nrf5340_cpuapp_ns.conf +++ b/demo/boards/nrf7002dk_nrf5340_cpuapp_ns.conf @@ -2,19 +2,17 @@ CONFIG_ANJAY_ZEPHYR_DEVICE_MANUFACTURER="Nordic Semiconductor" CONFIG_ANJAY_ZEPHYR_MODEL_NUMBER="nRF7002DK" +CONFIG_ANJAY_ZEPHYR_FOTA=y + # Anjay Settings CONFIG_ANJAY_COMPAT_MBEDTLS=y CONFIG_ANJAY_COMPAT_NET=y -CONFIG_ANJAY_COMPAT_TIME=y CONFIG_ANJAY_LOG_LEVEL_INF=y CONFIG_ANJAY_WITH_NET_STATS=n -CONFIG_ANJAY_WITH_SENML_JSON=y CONFIG_ANJAY_WITH_TRACE_LOGS=n CONFIG_ANJAY_WITH_ACCESS_CONTROL=n # General Settings -CONFIG_NEWLIB_LIBC=y -CONFIG_NEWLIB_LIBC_NANO=n CONFIG_MAIN_STACK_SIZE=2048 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096 CONFIG_LOG_MAX_LEVEL=3 @@ -24,11 +22,17 @@ CONFIG_POSIX_MAX_FDS=16 CONFIG_NET_NATIVE=y CONFIG_NET_DHCPV4=y CONFIG_DNS_RESOLVER=y +# on nRF7002DK the default (4) is not enough. Besides DNS, DHCP, LwM2M server +# connection and possible connection for FOTA download, there's also an EAPOL +# connection opened by wpa_supplicant. +CONFIG_NET_MAX_CONN=5 # WiFi CONFIG_WIFI=y CONFIG_WIFI_NRF700X=y CONFIG_WPA_SUPP=y +CONFIG_WPA_SUPP_CRYPTO_PSA=y +CONFIG_PSA_WANT_ALG_HMAC=y CONFIG_NET_L2_WIFI_MGMT=y CONFIG_NET_L2_WIFI_MGMT_LOG_LEVEL_ERR=y CONFIG_NET_L2_ETHERNET=y @@ -40,8 +44,26 @@ CONFIG_DATE_TIME_TOO_OLD_SECONDS=600 CONFIG_DATE_TIME_NTP_QUERY_TIME_SECONDS=5 # File system +CONFIG_STREAM_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_MPU_ALLOW_FLASH_WRITE=y # Heap -CONFIG_HEAP_MEM_POOL_SIZE=200000 +CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=150000 +CONFIG_HEAP_MEM_POOL_SIZE=150000 + +# MCUboot +CONFIG_BOOTLOADER_MCUBOOT=y +CONFIG_IMG_MANAGER=y +CONFIG_IMG_ERASE_PROGRESSIVELY=y +CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.11.0" + +# External flash +CONFIG_SPI=y +CONFIG_SPI_NOR=y +CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096 +CONFIG_SPI_NOR_SFDP_DEVICETREE=y +CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y + +# Network core upgrades collide with app FOTA +CONFIG_NRF53_UPGRADE_NETWORK_CORE=n diff --git a/demo/boards/nrf7002dk_nrf5340_cpuapp_ns.overlay b/demo/boards/nrf7002dk_nrf5340_cpuapp_ns.overlay index e6d49ce..ab1decd 100644 --- a/demo/boards/nrf7002dk_nrf5340_cpuapp_ns.overlay +++ b/demo/boards/nrf7002dk_nrf5340_cpuapp_ns.overlay @@ -5,4 +5,12 @@ status-led = &led0; light-control-0 = &led1; }; + + chosen { + nordic,pm-ext-flash = &mx25r64; + }; +}; + +&mx25r64 { + status = "ok"; }; diff --git a/demo/boards/nrf9160dk_nrf9160_ns.conf b/demo/boards/nrf9160dk_nrf9160_ns.conf index 59ebf9a..ef7bf37 100644 --- a/demo/boards/nrf9160dk_nrf9160_ns.conf +++ b/demo/boards/nrf9160dk_nrf9160_ns.conf @@ -26,7 +26,6 @@ CONFIG_NRF_MODEM_LIB=y CONFIG_MODEM_INFO=y CONFIG_LTE_LINK_CONTROL=y CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y -CONFIG_LTE_AUTO_INIT_AND_CONNECT=n CONFIG_LTE_NETWORK_TIMEOUT=600 # Clock synchronization @@ -47,7 +46,7 @@ CONFIG_HEAP_MEM_POOL_SIZE=2048 CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_IMG_MANAGER=y CONFIG_IMG_ERASE_PROGRESSIVELY=y -CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.5.0" +CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.11.0" # Config menu CONFIG_CONSOLE_SUBSYS=y diff --git a/demo/boards/nrf9160dk_nrf9160_ns_intflash.conf b/demo/boards/nrf9160dk_nrf9160_ns_intflash.conf index 964b655..080755e 100644 --- a/demo/boards/nrf9160dk_nrf9160_ns_intflash.conf +++ b/demo/boards/nrf9160dk_nrf9160_ns_intflash.conf @@ -35,7 +35,6 @@ CONFIG_NRF_MODEM_LIB=y CONFIG_MODEM_INFO=y CONFIG_LTE_LINK_CONTROL=y CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y -CONFIG_LTE_AUTO_INIT_AND_CONNECT=n CONFIG_LTE_NETWORK_TIMEOUT=600 CONFIG_NRF_CLOUD_GPS_LOG_LEVEL_INF=y @@ -57,7 +56,7 @@ CONFIG_HEAP_MEM_POOL_SIZE=2048 CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_IMG_MANAGER=y CONFIG_IMG_ERASE_PROGRESSIVELY=y -CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.5.0" +CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.11.0" # Shell settings CONFIG_SHELL_MINIMAL=y diff --git a/demo/boards/thingy91_nrf9160_ns.conf b/demo/boards/thingy91_nrf9160_ns.conf index 3a2a125..32ae91d 100644 --- a/demo/boards/thingy91_nrf9160_ns.conf +++ b/demo/boards/thingy91_nrf9160_ns.conf @@ -39,7 +39,6 @@ CONFIG_NRF_MODEM_LIB=y CONFIG_MODEM_INFO=y CONFIG_LTE_LINK_CONTROL=y CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y -CONFIG_LTE_AUTO_INIT_AND_CONNECT=n CONFIG_LTE_NETWORK_TIMEOUT=600 # Clock synchronization @@ -71,7 +70,7 @@ CONFIG_REGULATOR=n CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_IMG_MANAGER=y CONFIG_IMG_ERASE_PROGRESSIVELY=y -CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.5.0" +CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="24.11.0" # Shell settings CONFIG_SHELL_MINIMAL=y @@ -100,7 +99,6 @@ CONFIG_NRF_CLOUD_LOG_LEVEL_OFF=y CONFIG_AT_MONITOR_LOG_LEVEL_ERR=y CONFIG_MODEM_KEY_MGMT_LOG_LEVEL_ERR=y CONFIG_MODEM_ANTENNA_LOG_LEVEL_ERR=y -CONFIG_ESB_LOG_LEVEL_ERR=y CONFIG_MPSL_FEM_LOG_LEVEL_ERR=y CONFIG_MPSL_LOG_LEVEL_ERR=y CONFIG_MGMT_FMFU_LOG_LEVEL_ERR=y @@ -113,7 +111,6 @@ CONFIG_UART_LOG_LEVEL_ERR=y CONFIG_INTC_LOG_LEVEL_ERR=y CONFIG_ENTROPY_LOG_LEVEL_ERR=y CONFIG_GPIO_LOG_LEVEL_ERR=y -CONFIG_FXL6408_LOG_LEVEL_ERR=y CONFIG_SPI_LOG_LEVEL_ERR=y CONFIG_I2C_LOG_LEVEL_ERR=y CONFIG_PWM_LOG_LEVEL_ERR=y @@ -122,7 +119,6 @@ CONFIG_PINCTRL_LOG_LEVEL_ERR=y CONFIG_USBC_LOG_LEVEL_ERR=y CONFIG_CBPRINTF_PACKAGE_LOG_LEVEL_ERR=y CONFIG_NVS_LOG_LEVEL_ERR=y -CONFIG_PM_LOG_LEVEL_ERR=y CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR=y CONFIG_IMG_MANAGER_LOG_LEVEL_ERR=y CONFIG_STREAM_FLASH_LOG_LEVEL_ERR=y diff --git a/demo/boards/tmo_dev_edge.conf b/demo/boards/tmo_dev_edge.conf index ddd0b58..63f2366 100644 --- a/demo/boards/tmo_dev_edge.conf +++ b/demo/boards/tmo_dev_edge.conf @@ -22,14 +22,10 @@ CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y # CONFIG_THREAD_NAME=y # MbedTLS and security -CONFIG_MBEDTLS=y CONFIG_MBEDTLS_ECP_C=y CONFIG_MBEDTLS_ECDH_C=y CONFIG_MBEDTLS_ECDSA_C=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y CONFIG_MBEDTLS_CIPHER_CCM_ENABLED=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y # Hardware Configuration CONFIG_SOC_GECKO_EMU_DCDC=y @@ -81,7 +77,6 @@ CONFIG_CONSOLE_GETLINE=y # Networking CONFIG_NET_L2_WIFI_MGMT=y -CONFIG_NET_SOCKETS_POSIX_NAMES=y CONFIG_NET_TCP=y # Offload TCP/IP stack to a co-processor @@ -101,4 +96,4 @@ CONFIG_BOOTLOADER_MCUBOOT=y # Note: if relative paths are used here, it is treated as # relative to $WEST_TOPDIR (typically ~/zephyrproject) CONFIG_MCUBOOT_SIGNATURE_KEY_FILE="bootloader/mcuboot/root-rsa-2048.pem" -CONFIG_MCUBOOT_EXTRA_IMGTOOL_ARGS="--version 24.5.0" +CONFIG_MCUBOOT_EXTRA_IMGTOOL_ARGS="--version 24.11.0" diff --git a/demo/child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.conf b/demo/child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.conf new file mode 100644 index 0000000..918173a --- /dev/null +++ b/demo/child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.conf @@ -0,0 +1,17 @@ +# This file sets some board-dependent variables in MCUBoot child image. +# Refer to: +# https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.5.0/nrf/config_and_build/multi_image.html#image-specific-variables + +### anjay-zephyr-client +CONFIG_PM_PARTITION_SIZE_MCUBOOT=0x10000 +CONFIG_PM_PARTITION_SIZE_MCUBOOT_PAD=0x200 +CONFIG_PM_PARTITION_SIZE_MCUBOOT_SCRATCH=0x10000 + +# External flash config +CONFIG_SPI=y +CONFIG_SPI_NOR=y +CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096 +CONFIG_SPI_NOR_SFDP_DEVICETREE=y + +CONFIG_NRF53_UPGRADE_NETWORK_CORE=n +CONFIG_FLASH_SIMULATOR=n diff --git a/demo/child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.overlay b/demo/child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.overlay new file mode 100644 index 0000000..6ebdc9e --- /dev/null +++ b/demo/child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.overlay @@ -0,0 +1,9 @@ +/ { + chosen { + nordic,pm-ext-flash = &mx25r64; + }; +}; + +&mx25r64 { + status = "ok"; +}; diff --git a/demo/overlay_nrf9160_afu.conf b/demo/overlay_nrf9160_afu.conf index 2db69c7..6adf9bf 100644 --- a/demo/overlay_nrf9160_afu.conf +++ b/demo/overlay_nrf9160_afu.conf @@ -1,3 +1,2 @@ -CONFIG_NRF_MODEM_LIB_SYS_INIT=n CONFIG_ANJAY_ZEPHYR_FOTA=n CONFIG_ANJAY_ZEPHYR_ADVANCED_FOTA_NRF9160_APP_DELTA_MODEM=y diff --git a/demo/overlay_nrf9160_afu_full.conf b/demo/overlay_nrf9160_afu_full.conf index 6621fb4..152fa83 100644 --- a/demo/overlay_nrf9160_afu_full.conf +++ b/demo/overlay_nrf9160_afu_full.conf @@ -1,3 +1,2 @@ -CONFIG_NRF_MODEM_LIB_SYS_INIT=n CONFIG_ANJAY_ZEPHYR_FOTA=n CONFIG_ANJAY_ZEPHYR_ADVANCED_FOTA_NRF9160_APP_DELTA_FULL_MODEM=y diff --git a/demo/pm_static_nrf7002dk_nrf5340_cpuapp_ns.yml b/demo/pm_static_nrf7002dk_nrf5340_cpuapp_ns.yml new file mode 100644 index 0000000..7071cec --- /dev/null +++ b/demo/pm_static_nrf7002dk_nrf5340_cpuapp_ns.yml @@ -0,0 +1,123 @@ +EMPTY_0: + address: 0xfe000 + end_address: 0x100000 + placement: + after: + - settings_storage + region: flash_primary + size: 0x2000 +app: + address: 0x18000 + end_address: 0xec000 + region: flash_primary + size: 0xd4000 +external_flash: + address: 0xdc000 + end_address: 0x800000 + region: external_flash + size: 0x724000 +mcuboot: + address: 0x0 + end_address: 0x10000 + placement: + before: + - mcuboot_primary + region: flash_primary + size: 0x10000 +mcuboot_pad: + address: 0x10000 + end_address: 0x10200 + placement: + align: + start: 0x4000 + before: + - mcuboot_primary_app + region: flash_primary + size: 0x200 +mcuboot_primary: + address: 0x10000 + end_address: 0xec000 + orig_span: &id001 + - mcuboot_pad + - app + - tfm + region: flash_primary + size: 0xdc000 + span: *id001 +mcuboot_primary_app: + address: 0x10200 + end_address: 0xec000 + orig_span: &id002 + - app + - tfm + region: flash_primary + size: 0xdbe00 + span: *id002 +mcuboot_scratch: + address: 0xec000 + end_address: 0xfc000 + placement: + after: + - app + align: + start: 0x4000 + region: flash_primary + size: 0x10000 +mcuboot_secondary: + address: 0x0 + device: DT_CHOSEN(nordic_pm_ext_flash) + end_address: 0xdc000 + placement: + align: + start: 0x4 + region: external_flash + share_size: + - mcuboot_primary + size: 0xdc000 +nonsecure_storage: + address: 0xfc000 + end_address: 0xfe000 + orig_span: &id004 + - settings_storage + region: flash_primary + size: 0x2000 + span: *id004 +settings_storage: + address: 0xfc000 + end_address: 0xfe000 + inside: + - nonsecure_storage + placement: + align: + start: 0x4000 + before: + - end + region: flash_primary + size: 0x2000 +tfm: + address: 0x10200 + end_address: 0x18000 + inside: + - mcuboot_primary_app + placement: + before: + - app + region: flash_primary + size: 0x7e00 +tfm_nonsecure: + address: 0x18000 + end_address: 0xec000 + orig_span: &id007 + - app + region: flash_primary + size: 0xd4000 + span: *id007 +tfm_secure: + address: 0x10000 + end_address: 0x18000 + orig_span: &id008 + - mcuboot_pad + - tfm + region: flash_primary + size: 0x8000 + span: *id008 diff --git a/demo/prj_intflash.conf b/demo/prj_intflash.conf deleted file mode 100644 index 03a2acb..0000000 --- a/demo/prj_intflash.conf +++ /dev/null @@ -1,36 +0,0 @@ -# Anjay Settings -CONFIG_ANJAY=y - -# Anjay Zephyr Settings -CONFIG_ANJAY_ZEPHYR_SHELL=y - -# General settings -CONFIG_LOG=y -CONFIG_REBOOT=y -CONFIG_FPU=y -CONFIG_PRINTK=y -CONFIG_SHELL=y - -# Networking -CONFIG_NETWORKING=y -CONFIG_NET_MGMT=y -CONFIG_NET_MGMT_EVENT=y -CONFIG_NET_SOCKETS=y -CONFIG_NET_IPV4=y -CONFIG_NET_IPV6=n -CONFIG_NET_TCP=n -CONFIG_NET_LOG=y - -# Logging -CONFIG_LOG_MODE_DEFERRED=y -CONFIG_LOG_BLOCK_IN_THREAD=y - -# Config menu -CONFIG_HWINFO=y - -# Storage -CONFIG_FLASH=y -CONFIG_FLASH_MAP=y -CONFIG_NVS=y -CONFIG_SETTINGS=y -CONFIG_FLASH_LOG_LEVEL_ERR=y diff --git a/demo/src/peripherals.h b/demo/src/peripherals.h index c8d48b8..d8cc56c 100644 --- a/demo/src/peripherals.h +++ b/demo/src/peripherals.h @@ -42,18 +42,14 @@ #define SWITCH_AVAILABLE_ANY (SWITCH_AVAILABLE(0) || SWITCH_AVAILABLE(1) || SWITCH_AVAILABLE(2)) #define PUSH_BUTTON_GLUE_ITEM(num) \ - { \ - .device = DEVICE_DT_GET(DT_GPIO_CTLR(PUSH_BUTTON_NODE(num), gpios)), \ - .gpio_pin = DT_GPIO_PIN(PUSH_BUTTON_NODE(num), gpios), \ - .gpio_flags = (GPIO_INPUT | DT_GPIO_FLAGS(PUSH_BUTTON_NODE(num), gpios)) \ - } + { .device = DEVICE_DT_GET(DT_GPIO_CTLR(PUSH_BUTTON_NODE(num), gpios)), \ + .gpio_pin = DT_GPIO_PIN(PUSH_BUTTON_NODE(num), gpios), \ + .gpio_flags = (GPIO_INPUT | DT_GPIO_FLAGS(PUSH_BUTTON_NODE(num), gpios)) } #define SWITCH_BUTTON_GLUE_ITEM(num) \ - { \ - .device = DEVICE_DT_GET(DT_GPIO_CTLR(SWITCH_NODE(num), gpios)), \ - .gpio_pin = DT_GPIO_PIN(SWITCH_NODE(num), gpios), \ - .gpio_flags = (GPIO_INPUT | DT_GPIO_FLAGS(SWITCH_NODE(num), gpios)) \ - } + { .device = DEVICE_DT_GET(DT_GPIO_CTLR(SWITCH_NODE(num), gpios)), \ + .gpio_pin = DT_GPIO_PIN(SWITCH_NODE(num), gpios), \ + .gpio_flags = (GPIO_INPUT | DT_GPIO_FLAGS(SWITCH_NODE(num), gpios)) } #define TEMPERATURE_NODE DT_ALIAS(temperature) #define TEMPERATURE_AVAILABLE DT_NODE_HAS_STATUS(TEMPERATURE_NODE, okay) diff --git a/demo/west-nrf.yml b/demo/west-nrf.yml index b1f52e6..3482cff 100644 --- a/demo/west-nrf.yml +++ b/demo/west-nrf.yml @@ -23,10 +23,10 @@ manifest: - name: sdk-nrf path: nrf remote: ncs - revision: v2.5.0 + revision: v2.7.0 import: true - name: Anjay-zephyr submodules: true remote: anjay - revision: 3.8.0 + revision: 3.8.1 path: modules/lib/anjay diff --git a/demo/west-t-mobile.yml b/demo/west-t-mobile.yml index 576846a..2cf31a2 100644 --- a/demo/west-t-mobile.yml +++ b/demo/west-t-mobile.yml @@ -28,7 +28,7 @@ manifest: - name: Anjay-zephyr submodules: true remote: anjay - revision: 3.8.0 + revision: 3.8.1 path: modules/lib/anjay - name: DevEdge-IoTDevKit-ZephyrSDK path: modules/lib/t-mobile-sdk diff --git a/demo/west.yml b/demo/west.yml index 6c3f76a..670288d 100644 --- a/demo/west.yml +++ b/demo/west.yml @@ -23,10 +23,10 @@ manifest: - name: zephyr path: zephyr remote: zephyrproject-rtos - revision: v3.5.0 + revision: v3.6.0 import: true - name: Anjay-zephyr submodules: true remote: anjay - revision: 3.8.0 + revision: 3.8.1 path: modules/lib/anjay diff --git a/ei_demo/README.md b/ei_demo/README.md index ef54ec2..2602e62 100644 --- a/ei_demo/README.md +++ b/ei_demo/README.md @@ -4,7 +4,7 @@ This example runs example motion recognition model, built with Edge Impulse, and ## Supported hardware and overview This example works on following targets: - - `thingy91_nrf9160_ns` + - `thingy91/nrf9160/ns` The following LwM2M Objects are supported: - Security (/0) @@ -21,7 +21,7 @@ west config manifest.file west-nrf.yml west update ``` -You can now compile the project for Thingy:91 using `west build -b thingy91_nrf9160_ns` in `ei_demo` directory. +You can now compile the project for Thingy:91 using `west build -b thingy91/nrf9160/ns` in `ei_demo` directory. ## Flashing the target diff --git a/ei_demo/boards/thingy91_nrf9160_ns.conf b/ei_demo/boards/thingy91_nrf9160_ns.conf index 919b735..3f052a4 100644 --- a/ei_demo/boards/thingy91_nrf9160_ns.conf +++ b/ei_demo/boards/thingy91_nrf9160_ns.conf @@ -20,7 +20,6 @@ CONFIG_NET_TCP_ISN_RFC6528=n CONFIG_NRF_MODEM_LIB=y CONFIG_MODEM_INFO=y CONFIG_LTE_LINK_CONTROL=y -CONFIG_LTE_AUTO_INIT_AND_CONNECT=n CONFIG_LTE_NETWORK_TIMEOUT=600 # Clock synchronization diff --git a/ei_demo/prj.conf b/ei_demo/prj.conf index 952779b..b7b53cd 100644 --- a/ei_demo/prj.conf +++ b/ei_demo/prj.conf @@ -17,7 +17,6 @@ CONFIG_NETWORKING=y CONFIG_NET_UDP=y CONFIG_NET_IPV4=y CONFIG_NET_SOCKETS=y -CONFIG_NET_SOCKETS_POSIX_NAMES=y CONFIG_POSIX_MAX_FDS=6 CONFIG_NET_CONNECTION_MANAGER=y diff --git a/ei_demo/west-nrf.yml b/ei_demo/west-nrf.yml index b1f52e6..3482cff 100644 --- a/ei_demo/west-nrf.yml +++ b/ei_demo/west-nrf.yml @@ -23,10 +23,10 @@ manifest: - name: sdk-nrf path: nrf remote: ncs - revision: v2.5.0 + revision: v2.7.0 import: true - name: Anjay-zephyr submodules: true remote: anjay - revision: 3.8.0 + revision: 3.8.1 path: modules/lib/anjay diff --git a/minimal/README.md b/minimal/README.md index 55e941e..edcf79e 100644 --- a/minimal/README.md +++ b/minimal/README.md @@ -7,10 +7,10 @@ It should serve as a template for custom projects. This folder contains LwM2M Client minimal application example for following targets: - [qemu_x86](https://docs.zephyrproject.org/latest/boards/x86/qemu_x86/doc/index.html) - [disco_l475_iot1](https://docs.zephyrproject.org/latest/boards/arm/disco_l475_iot1/doc/index.html) - - [nrf9160dk_nrf9160_ns](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_nrf9160.html) - - [thingy91_nrf9160_ns](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_thingy91.html) + - [nrf9160dk/nrf9160/ns](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_nrf9160.html) + - [thingy91/nrf9160/ns](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_thingy91.html) - [ESP32-DevKitC](https://www.espressif.com/en/products/devkits/esp32-devkitc) - - [nrf52840dk_nrf52840](https://docs.zephyrproject.org/latest/boards/arm/nrf52840dk_nrf52840/doc/index.html) + - [nrf52840dk/nrf52840](https://docs.zephyrproject.org/latest/boards/arm/nrf52840dk_nrf52840/doc/index.html) - [nRF7002 Development kit](https://www.nordicsemi.com/Products/Development-hardware/nRF7002-DK) - [Arduino Nano 33 BLE Sense Lite](https://store.arduino.cc/products/arduino-nano-33-ble-sense) - [DevEdge](https://devedge.t-mobile.com/solutions/iotdevkit) @@ -40,7 +40,7 @@ west config manifest.path Anjay-zephyr-client/minimal west config manifest.file west-nrf.yml west update ``` -Now you can compile the project using `west build -b nrf9160dk_nrf9160_ns`, `west build -b thingy91_nrf9160_ns`, `west build -b nrf7002dk_nrf5340_cpuapp_ns`, `west build -b nrf52840dk_nrf52840` or `west build -b arduino_nano_33_ble_sense` in `minimal` directory, respectively. The last two commands compiles project for use with the OpenThread network, more about this can be found in the section [Connecting to the LwM2M Server with OpenThread](#connecting-to-the-lwm2m-server-with-openthread). +Now you can compile the project using `west build -b nrf9160dk/nrf9160/ns`, `west build -b thingy91/nrf9160/ns`, `west build -b nrf7002dk/nrf5340/cpuapp/ns`, `west build -b nrf52840dk/nrf52840` or `west build -b arduino_nano_33_ble/nrf52840/sense` in `minimal` directory, respectively. The last two commands compiles project for use with the OpenThread network, more about this can be found in the section [Connecting to the LwM2M Server with OpenThread](#connecting-to-the-lwm2m-server-with-openthread). ### Compilation guide for T-Mobile DevEdge diff --git a/minimal/boards/arduino_nano_33_ble_sense.conf b/minimal/boards/arduino_nano_33_ble_sense.conf index b6ef9e2..1b32e51 100644 --- a/minimal/boards/arduino_nano_33_ble_sense.conf +++ b/minimal/boards/arduino_nano_33_ble_sense.conf @@ -37,8 +37,6 @@ CONFIG_OPENTHREAD_JOINER_PSKD="J01NME" CONFIG_OPENTHREAD_MTD=y # MbedTLS and security -CONFIG_MBEDTLS=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y +CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y +CONFIG_MBEDTLS_CTR_DRBG_C=y CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y diff --git a/minimal/boards/disco_l475_iot1.conf b/minimal/boards/disco_l475_iot1.conf index 00e06e1..4f27325 100644 --- a/minimal/boards/disco_l475_iot1.conf +++ b/minimal/boards/disco_l475_iot1.conf @@ -16,11 +16,7 @@ CONFIG_LOG_BLOCK_IN_THREAD=y CONFIG_LOG_MODE_DEFERRED=y # MbedTLS and security -CONFIG_MBEDTLS=y CONFIG_MBEDTLS_CIPHER_CCM_ENABLED=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y # Clock synchronization CONFIG_SNTP=y diff --git a/minimal/boards/esp32_devkitc_wroom.conf b/minimal/boards/esp32_devkitc_wroom.conf index 37faf43..7e519eb 100644 --- a/minimal/boards/esp32_devkitc_wroom.conf +++ b/minimal/boards/esp32_devkitc_wroom.conf @@ -13,8 +13,6 @@ CONFIG_DNS_RESOLVER=y # MbedTLS and security CONFIG_ANJAY_COMPAT_MBEDTLS=y -CONFIG_MBEDTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y diff --git a/minimal/boards/nrf52840dk_nrf52840.conf b/minimal/boards/nrf52840dk_nrf52840.conf index 702c347..014b95a 100644 --- a/minimal/boards/nrf52840dk_nrf52840.conf +++ b/minimal/boards/nrf52840dk_nrf52840.conf @@ -37,8 +37,6 @@ CONFIG_OPENTHREAD_JOINER_PSKD="J01NME" CONFIG_OPENTHREAD_MTD=y # MbedTLS and security -CONFIG_MBEDTLS=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y +CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y +CONFIG_MBEDTLS_CTR_DRBG_C=y CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y diff --git a/minimal/boards/nrf7002dk_nrf5340_cpuapp_ns.conf b/minimal/boards/nrf7002dk_nrf5340_cpuapp_ns.conf index 8c82ef5..90b52d1 100644 --- a/minimal/boards/nrf7002dk_nrf5340_cpuapp_ns.conf +++ b/minimal/boards/nrf7002dk_nrf5340_cpuapp_ns.conf @@ -5,7 +5,6 @@ CONFIG_ANJAY_ZEPHYR_MODEL_NUMBER="nRF7002DK" # Anjay Settings CONFIG_ANJAY_COMPAT_MBEDTLS=y CONFIG_ANJAY_COMPAT_NET=y -CONFIG_ANJAY_COMPAT_TIME=y CONFIG_ANJAY_LOG_LEVEL_INF=y CONFIG_ANJAY_WITH_NET_STATS=n CONFIG_ANJAY_WITH_SENML_JSON=y @@ -13,8 +12,6 @@ CONFIG_ANJAY_WITH_TRACE_LOGS=n CONFIG_ANJAY_WITH_ACCESS_CONTROL=n # General Settings -CONFIG_NEWLIB_LIBC=y -CONFIG_NEWLIB_LIBC_NANO=n CONFIG_MAIN_STACK_SIZE=2048 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096 CONFIG_LOG_MAX_LEVEL=3 @@ -30,6 +27,8 @@ CONFIG_NET_IPV6=n CONFIG_WIFI=y CONFIG_WIFI_NRF700X=y CONFIG_WPA_SUPP=y +CONFIG_WPA_SUPP_CRYPTO_PSA=y +CONFIG_PSA_WANT_ALG_HMAC=y CONFIG_NET_L2_WIFI_MGMT=y CONFIG_NET_L2_WIFI_MGMT_LOG_LEVEL_ERR=y CONFIG_NET_L2_ETHERNET=y @@ -45,4 +44,5 @@ CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_MPU_ALLOW_FLASH_WRITE=y # Heap -CONFIG_HEAP_MEM_POOL_SIZE=200000 +CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=150000 +CONFIG_HEAP_MEM_POOL_SIZE=150000 diff --git a/minimal/boards/nrf9160dk_nrf9160_ns.conf b/minimal/boards/nrf9160dk_nrf9160_ns.conf index 7e118f8..1f71d01 100644 --- a/minimal/boards/nrf9160dk_nrf9160_ns.conf +++ b/minimal/boards/nrf9160dk_nrf9160_ns.conf @@ -15,7 +15,6 @@ CONFIG_NRF_MODEM_LIB=y CONFIG_MODEM_INFO=y CONFIG_LTE_LINK_CONTROL=y CONFIG_LTE_NETWORK_MODE_LTE_M=y -CONFIG_LTE_AUTO_INIT_AND_CONNECT=n CONFIG_LTE_NETWORK_TIMEOUT=600 # Logging diff --git a/minimal/boards/qemu_x86.conf b/minimal/boards/qemu_x86.conf index 217496b..93e62e7 100644 --- a/minimal/boards/qemu_x86.conf +++ b/minimal/boards/qemu_x86.conf @@ -32,8 +32,4 @@ CONFIG_NET_BUF_TX_COUNT=64 CONFIG_NET_CONTEXT_NET_PKT_POOL=y # MbedTLS and security -CONFIG_MBEDTLS=y CONFIG_MBEDTLS_CIPHER_CCM_ENABLED=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y diff --git a/minimal/boards/thingy91_nrf9160_ns.conf b/minimal/boards/thingy91_nrf9160_ns.conf index 7e118f8..1f71d01 100644 --- a/minimal/boards/thingy91_nrf9160_ns.conf +++ b/minimal/boards/thingy91_nrf9160_ns.conf @@ -15,7 +15,6 @@ CONFIG_NRF_MODEM_LIB=y CONFIG_MODEM_INFO=y CONFIG_LTE_LINK_CONTROL=y CONFIG_LTE_NETWORK_MODE_LTE_M=y -CONFIG_LTE_AUTO_INIT_AND_CONNECT=n CONFIG_LTE_NETWORK_TIMEOUT=600 # Logging diff --git a/minimal/boards/tmo_dev_edge.conf b/minimal/boards/tmo_dev_edge.conf index cb62a60..741c480 100644 --- a/minimal/boards/tmo_dev_edge.conf +++ b/minimal/boards/tmo_dev_edge.conf @@ -8,11 +8,7 @@ CONFIG_ANJAY_COMPAT_NET=y CONFIG_ANJAY_COMPAT_TIME=y # MbedTLS and security -CONFIG_MBEDTLS=y -CONFIG_MBEDTLS_DTLS=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y CONFIG_MBEDTLS_CIPHER_CCM_ENABLED=y -CONFIG_MBEDTLS_ENTROPY_ENABLED=y # Hardware Configuration CONFIG_SOC_GECKO_EMU_DCDC=y @@ -60,7 +56,6 @@ CONFIG_LOG_BLOCK_IN_THREAD=y # Networking CONFIG_NET_L2_WIFI_MGMT=y -CONFIG_NET_SOCKETS_POSIX_NAMES=y # Offload TCP/IP stack to a co-processor CONFIG_RS9116W_TLS_OFFLOAD=y diff --git a/minimal/prj.conf b/minimal/prj.conf index cf1eeb4..67f07f5 100644 --- a/minimal/prj.conf +++ b/minimal/prj.conf @@ -23,7 +23,6 @@ CONFIG_NET_TCP=n CONFIG_NET_IPV4=y CONFIG_NET_IPV6=n CONFIG_NET_SOCKETS=y -CONFIG_NET_SOCKETS_POSIX_NAMES=y CONFIG_POSIX_MAX_FDS=6 CONFIG_NET_MGMT=y CONFIG_NET_MGMT_EVENT=y diff --git a/minimal/west-nrf.yml b/minimal/west-nrf.yml index b1f52e6..3482cff 100644 --- a/minimal/west-nrf.yml +++ b/minimal/west-nrf.yml @@ -23,10 +23,10 @@ manifest: - name: sdk-nrf path: nrf remote: ncs - revision: v2.5.0 + revision: v2.7.0 import: true - name: Anjay-zephyr submodules: true remote: anjay - revision: 3.8.0 + revision: 3.8.1 path: modules/lib/anjay diff --git a/minimal/west-t-mobile.yml b/minimal/west-t-mobile.yml index 576846a..2cf31a2 100644 --- a/minimal/west-t-mobile.yml +++ b/minimal/west-t-mobile.yml @@ -28,7 +28,7 @@ manifest: - name: Anjay-zephyr submodules: true remote: anjay - revision: 3.8.0 + revision: 3.8.1 path: modules/lib/anjay - name: DevEdge-IoTDevKit-ZephyrSDK path: modules/lib/t-mobile-sdk diff --git a/minimal/west.yml b/minimal/west.yml index 6c3f76a..670288d 100644 --- a/minimal/west.yml +++ b/minimal/west.yml @@ -23,10 +23,10 @@ manifest: - name: zephyr path: zephyr remote: zephyrproject-rtos - revision: v3.5.0 + revision: v3.6.0 import: true - name: Anjay-zephyr submodules: true remote: anjay - revision: 3.8.0 + revision: 3.8.1 path: modules/lib/anjay diff --git a/tools/provisioning-tool/ptool.py b/tools/provisioning-tool/ptool.py index 39151e1..b50d8d3 100755 --- a/tools/provisioning-tool/ptool.py +++ b/tools/provisioning-tool/ptool.py @@ -43,7 +43,7 @@ def __init__(self, board, image_dir, conf_file): for kind in ['initial', 'final']: self.image_path[kind] = os.path.join(self.image_dir, f'{kind}.hex') self.overlay[kind] = os.path.join( - script_directory, f'{kind}_overlay_nrf9160dk.conf' if board == "nrf9160dk_nrf9160_ns" and kind == 'final' else f'{kind}_overlay.conf') + script_directory, f'{kind}_overlay_nrf9160dk.conf' if board == "nrf9160dk/nrf9160/ns" and kind == 'final' else f'{kind}_overlay.conf') def __build(self, kind): current_build_directory = os.path.join(self.image_dir, kind)