Migration guide for nRF Connect SDK v2.8.0 (Working draft)

This document describes the changes required or recommended when migrating your application from nRF Connect SDK v2.7.0 to nRF Connect SDK v2.8.0.

nRF54H20

This section describes the changes specific to the nRF54H20 SoC and DK support in the nRF Connect SDK.

DK compatibility

  • The nRF Connect SDK v2.8.0 is compatible only with the following versions of the nRF54H20 DK, PCA10175:

    • Engineering B - versions ranging from v0.8.0 to 0.8.2

    • Engineering C - v0.8.3 and later revisions

    Check the version number on your DK’s sticker to verify its compatibility with the nRF Connect SDK.

Dependencies

The following required dependencies for the nRF54H20 SoC and DK have been updated.

nRF54H20 BICR

  • The nRF54H20 BICR has been updated (from the one supporting nRF Connect SDK v2.7.0).

    Note

    BICR update is not required if migrating from nRF Connect SDK v2.7.99-cs1 or v2.7.99-cs2.

    To update the BICR of your development kit while in Root of Trust, do the following:

    1. Download the BICR new binary file.

    2. Connect the nRF54H20 DK to your computer using the DEBUGGER port on the DK.

      Note

      On MacOS, connecting the DK might repeatedly trigger a popup displaying the message Disk Not Ejected Properly. To disable this, run JLinkExe, then run MSDDisable in the J-Link Commander interface.

    3. List all the connected development kits to see their serial number (matching the one on the DK’s sticker):

      nrfutil device list
      
    4. Move the BICR HEX file to a folder of your choice, then program the BICR by running nRF Util from that folder using the following command:

      nrfutil device program --options chip_erase_mode=ERASE_NONE --firmware <path_to_bicr.hex> --core Application --serial-number <serial_number>
      

nRF54H20 SoC binaries

  • The nRF54H20 SoC binaries bundle has been updated to version 0.7.0.

    Caution

    If migrating from nRF Connect SDK v2.7.0, before proceeding with the SoC binaries update, you must first update the BICR as described in the previous section.

    To update the SoC binaries bundle of your development kit while in Root of Trust, do the following:

    1. Download the nRF54H20 SoC binaries v0.7.0:

      Note

      On MacOS, ensure that the ZIP file is not unpacked automatically upon download.

    2. Purge the device as follows:

      nrfutil device recover --core Application --serial-number <serial_number>
      nrfutil device recover --core Network --serial-number <serial_number>
      
    3. Run west update.

    4. Move the correct .zip bundle to a folder of your choice, then run nRF Util to program the binaries using one of the following commands, depending on your DK:

      • For Engineering B:

        nrfutil device x-suit-dfu --firmware nrf54h20_soc_binaries_v0.7.0_<revision>.zip --serial-number <serial_number>
        
      • For Engineering C:

        nrfutil device x-suit-dfu --firmware nrf54h20_soc_binaries_v0.7.0_<revision>.zip --serial-number <serial_number> --update-candidate-info-address 0x0e1ef340
        

nrfutil device

  • nrfutil device has been updated to version 2.7.2.

    Install the nRF Util device command version 2.7.2 as follows:

    nrfutil install device=2.7.2 --force
    

    For more information, consult the nRF Util documentation.

nrfutil-trace

  • nrfutil-trace has been updated to version 2.11.0.

    Install the nRF Util trace command version 2.11.0 as follows:

    nrfutil install trace=2.11.0 --force
    

    For more information, consult the nRF Util documentation.

nrf-regtool

  • nrf-regtool has been updated to version 7.0.0.

    1. Open nRF Connect for Desktop, navigate to the Toolchain Manager, select the v2.7.99-cs2 toolchain, and click the Open terminal button.

    2. In the terminal window, install nrf-regtool version 7.0.0 as follows:

      pip install nrf-regtool==7.0.0
      

nRF Connect Device Manager

Samples and applications

For more information on changes related to samples and applications usage on the nRF54H20 DK, see nRF54H20.

Required changes

The following changes are mandatory to make your application work in the same way as in previous releases.

Samples and applications

This section describes the changes related to samples and applications.

nRF54L Series

Serial LTE Modem (SLM)

  • The handling of Release Assistance Indication (RAI) socket options has been updated in the #XSOCKETOPT command. The individual RAI-related socket options have been consolidated into a single SO_RAI option. You must modify your application to use the new SO_RAI option with the corresponding value to specify the RAI behavior. The changes are as follows:

    The SO_RAI_NO_DATA, SO_RAI_LAST, SO_RAI_ONE_RESP, SO_RAI_ONGOING, and SO_RAI_WAIT_MORE options have been replaced by the SO_RAI option with values from 1 to 5.

    Replace the following commands in your application code if they were used previously:

    • AT#XSOCKETOPT=1,50, with AT#XSOCKETOPT=1,61,1 to indicate RAI_NO_DATA.

    • AT#XSOCKETOPT=1,51, with AT#XSOCKETOPT=1,61,2 to indicate RAI_LAST.

    • AT#XSOCKETOPT=1,52, with AT#XSOCKETOPT=1,61,3 to indicate RAI_ONE_RESP.

    • AT#XSOCKETOPT=1,53, with AT#XSOCKETOPT=1,61,4 to indicate RAI_ONGOING.

    • AT#XSOCKETOPT=1,54, with AT#XSOCKETOPT=1,61,5 to indicate RAI_WAIT_MORE.

nRF54H20

  • When using the nRF54H20 DK Engineering B (from v0.8.0 to 0.8.2), you must build samples and applications using the board revision 0.8.0 with the <board>@<revision> syntax. For example, nrf54h20dk@0.8.0/nrf54h20/cpuapp when building for the application core, or nrf54h20dk@0.8.0/nrf54h20/cpurad when building for the radio core.

  • When using SUIT DFU on the nRF54H20 SoC, the manifest sequence number is no longer configured through a sysbuild Kconfig option. The values are now read from the VERSION file, used for Application version management in Zephyr and the nRF Connect SDK. This change to the sysbuild Kconfig option requires the following updates in the SUIT templates for your project:

    • Remove from all templates:

      suit-manifest-sequence-number: {{ sysbuild['config']['SB_CONFIG_SUIT_ENVELOPE_SEQUENCE_NUM'] }}
      
    • Add the line that corresponds to the manifest name, that is APP_ROOT_SEQ_NUM for the application root manifest:

      suit-manifest-sequence-number: {{ APP_ROOT_SEQ_NUM }}
      

    If the value of the sequence number was changed in your application, append the following line to the VERSION file:

    APP_ROOT_SEQ_NUM = <N>
    

    For the list of all variables, set through the VERSION, refer to the How to customize the SUIT DFU process.

  • When using MCU Manager, the Confirm command is now needed to trigger a device firmware update.

  • The build command to enable DFU from the external flash is now the following:

    west build ./ -b nrf54h20dk/nrf54h20/cpuapp -T sample.suit.smp_transfer.cache_push.extflash.bt
    
  • For updating using the SUIT Device Manager application, you can also use the following zip file: <main_application_build_directory>/zephyr/dfu_suit_recovery.zip.

  • Some Kconfig options and SUIT manifests have been modified, changing names and configurations. Ensure the compatibility of your application with these changes.

Nordic Secure Immutable Bootloader (NSIB, B0, or B0n)

  • Custom printing has been dropped in favor of using the logging subsystem, with output printed out to the default logging device. The CONFIG_SECURE_BOOT_DEBUG Kconfig option has been removed. To disable logging in B0 or B0n, set the CONFIG_LOG option to n. To send logs over RTT instead of UART, apply the following settings:

nRF70 Series

  • The nRF70 Series support is now part of Zephyr upstream and it requires the following changes:

  • The nRF70 Series driver namespace has been renamed from NRF700X to NRF70. For example, CONFIG_NRF700X_RAW_DATA_RX to CONIFG_NRF70_RAW_DATA_RX. Update your application configurations to use the new namespace.

  • The nRF70 Series driver now uses per-module kernel heap with a higher default. If a sample or an application uses the kernel heap but uses less than the default size, a build warning is displayed. Use the CONFIG_HEAP_MEM_POOL_IGNORE_MIN Kconfig option and enable it to suppress the warning.

  • The WPA supplicant is also now part of Zephyr upstream and it requires the following changes:

  • The WPA supplicant namespace has been renamed from WPA_SUPP to WIFI_NM_WPA_SUPPLICANT. For example, CONFIG_WPA_SUPP=y to CONFIG_WIFI_NM_WPA_SUPPLICANT=y. Update your application configurations to use the new namespace.

Libraries

This section describes the changes related to libraries.

Wi-Fi®

  • For Wi-Fi credentials library:

    • Syntax for add command has been modified to support getopt model.

      For example, the following command with old syntax: wifi_cred add SSID WPA2-PSK password should be replaced with the following command with new syntax: wifi_cred add -s SSID -k 1 -p password. wifi_cred add --help command will provide more information on the new syntax.

AT command parser

nRF Cloud

nRF Security

  • The CONFIG_CRACEN_LOAD_KMU_SEED Kconfig option was renamed to CONFIG_CRACEN_IKG_SEED_LOAD.

  • The CONFIG_MBEDTLS_CIPHER_MODE_CFB and CONFIG_MBEDTLS_CIPHER_MODE_OFB Kconfig options have been removed. Use other cipher modes instead.