error: 'PM_mcuboot_primary_ID' undeclared (first use in this function) after migrating to HW v2

11 -MD -MT zephyr/subsys/dfu/boot/CMakeFiles/subsys__dfu__boot.dir/mcuboot.c.obj -MF zephyr/subsys/dfu/boot/CMakeFiles/subsys__dfu__boot.dir/mcuboot.c.obj.d -o zephyr/subsys/dfu/boot/CMakeFiles/subsys__dfu__boot.dir/mcuboot.c.obj -c /opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot.c
In file included from /opt/nordic/ncs/v2.9.2/zephyr/include/zephyr/storage/flash_map.h:300,
                 from /opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot.c:12:
/opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot.c: In function 'boot_is_img_confirmed':
/opt/nordic/ncs/v2.9.2/nrf/include/flash_map_pm.h:47:22: error: 'PM_mcuboot_primary_ID' undeclared (first use in this function)
   47 | #define PM_ID(label) PM_##label##_ID
      |                      ^~~
/opt/nordic/ncs/v2.9.2/nrf/include/flash_map_pm.h:52:35: note: in expansion of macro 'PM_ID'
   52 | #define FIXED_PARTITION_ID(label) PM_ID(label)
      |                                   ^~~~~
/opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot_priv.h:22:34: note: in expansion of macro 'FIXED_PARTITION_ID'
   22 | #define FLASH_AREA_IMAGE_PRIMARY FIXED_PARTITION_ID(SLOT0_LABEL)
      |                                  ^~~~~~~~~~~~~~~~~~
/opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot.c:236:30: note: in expansion of macro 'FLASH_AREA_IMAGE_PRIMARY'
  236 |         rc = flash_area_open(FLASH_AREA_IMAGE_PRIMARY, &fa);
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/nordic/ncs/v2.9.2/nrf/include/flash_map_pm.h:47:22: note: each undeclared identifier is reported only once for each function it appears in
   47 | #define PM_ID(label) PM_##label##_ID
      |                      ^~~
/opt/nordic/ncs/v2.9.2/nrf/include/flash_map_pm.h:52:35: note: in expansion of macro 'PM_ID'
   52 | #define FIXED_PARTITION_ID(label) PM_ID(label)
      |                                   ^~~~~
/opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot_priv.h:22:34: note: in expansion of macro 'FIXED_PARTITION_ID'
   22 | #define FLASH_AREA_IMAGE_PRIMARY FIXED_PARTITION_ID(SLOT0_LABEL)
      |                                  ^~~~~~~~~~~~~~~~~~
/opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot.c:236:30: note: in expansion of macro 'FLASH_AREA_IMAGE_PRIMARY'
  236 |         rc = flash_area_open(FLASH_AREA_IMAGE_PRIMARY, &fa);
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot.c: In function 'boot_write_img_confirmed':
/opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot.c:68:49: error: 'PM_MCUBOOT_PRIMARY_ID' undeclared (first use in this function)
   68 |         #define ACTIVE_SLOT_FLASH_AREA_ID       PM_MCUBOOT_PRIMARY_ID
      |                                                 ^~~~~~~~~~~~~~~~~~~~~
/opt/nordic/ncs/v2.9.2/zephyr/subsys/dfu/boot/mcuboot.c:263:29: note: in expansion of macro 'ACTIVE_SLOT_FLASH_AREA_ID'
  263 |         if (flash_area_open(ACTIVE_SLOT_FLASH_AREA_ID, &fa) != 0) {
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~
[176/410] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/net_if.c.obj

After I used the migration script to migrate my boards from the HW V1 to V2 I started getting this issue.

I get it across two diffrent boards, I tired other versions of the sdk and tool chain and same issue.

  • Can you try building this on SDK v3.0.0 or newer?

  • Failed agian with 3.1.1

    with these configs in sysbuild.conf

    SB_CONFIG_PARTITION_MANAGER=y
    SB_CONFIG_BOOTLOADER_MCUBOOT=y



    [289/412] Building C object modules/nrf/subsys/net/lib/download_client/CMakeFiles/..__nrf__subsys__net__lib__download_client.dir/src/download_client.c.obj
    FAILED: modules/nrf/subsys/net/lib/download_client/CMakeFiles/..__nrf__subsys__net__lib__download_client.dir/src/download_client.c.obj 
    ccache /opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc -DKERNEL -DK_HEAP_MEM_POOL_SIZE=65536 -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DMBEDTLS_PSA_CRYPTO_CONFIG_FILE=\"nrf-psa-crypto-config.h\" -DNRF54L_CONFIGURATION_56_ENABLE=0 -DNRF9120_XXAA -DNRF_SKIP_FICR_NS_COPY_TO_RAM -DNRF_TRUSTZONE_NONSECURE -DPB_MAX_REQUIRED_FIELDS=64 -DUSE_PARTITION_MANAGER=1 -D_ANSI_SOURCE -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/build_dk_nrf9151/cellular-building-monitor/zephyr/include/generated/zephyr -I/opt/nordic/ncs/v3.1.1/zephyr/include -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/build_dk_nrf9151/cellular-building-monitor/zephyr/include/generated -I/opt/nordic/ncs/v3.1.1/zephyr/soc/nordic -I/opt/nordic/ncs/v3.1.1/zephyr/lib/libc/newlib/include -I/opt/nordic/ncs/v3.1.1/zephyr/soc/nordic/nrf91/. -I/opt/nordic/ncs/v3.1.1/zephyr/soc/nordic/common/. -I/opt/nordic/ncs/v3.1.1/nrf/include -I/opt/nordic/ncs/v3.1.1/nrf/lib/at_parser/include -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/build_dk_nrf9151/cellular-building-monitor/tfm/api_ns/interface/include -I/opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/./include -I/opt/nordic/ncs/v3.1.1/nrf/modules/trusted-firmware-m/. -I/opt/nordic/ncs/v3.1.1/nrf/include/tfm -I/opt/nordic/ncs/v3.1.1/nrf/tests/include -I/opt/nordic/ncs/v3.1.1/modules/lib/cjson -I/opt/nordic/ncs/v3.1.1/nrf/modules/cjson/include -I/opt/nordic/ncs/v3.1.1/modules/lib/nanopb -I/opt/nordic/ncs/v3.1.1/modules/hal/cmsis/CMSIS/Core/Include -I/opt/nordic/ncs/v3.1.1/modules/hal/cmsis_6/CMSIS/Core/Include -I/opt/nordic/ncs/v3.1.1/zephyr/modules/cmsis_6/. -I/opt/nordic/ncs/v3.1.1/nrf/modules/hal_nordic/. -I/opt/nordic/ncs/v3.1.1/modules/hal/nordic/nrfx -I/opt/nordic/ncs/v3.1.1/modules/hal/nordic/nrfx/drivers/include -I/opt/nordic/ncs/v3.1.1/modules/hal/nordic/nrfx/mdk -I/opt/nordic/ncs/v3.1.1/zephyr/modules/hal_nordic/nrfx/. -I/opt/nordic/ncs/v3.1.1/nrfxlib/nrf_modem/include -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/boards -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/cloud -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/wdt -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/buzzer -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/twi -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/led -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/algorithm -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/utils -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/algorithm/building-monitor-algorithm/algorithm -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/algorithm/building-monitor-algorithm/algorithm/utilities -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/algorithm/building-monitor-algorithm/drivers -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/algorithm/building-monitor-algorithm/drivers/lis2mdl -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/algorithm/building-monitor-algorithm/filters -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src/algorithm/building-monitor-algorithm/interfaces -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/src -I/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/build_dk_nrf9151/cellular-building-monitor/generated/interface_nrf_security_psa -I/opt/nordic/ncs/v3.1.1/nrf/subsys/nrf_security/include -I/opt/nordic/ncs/v3.1.1/modules/crypto/oberon-psa-crypto/include -I/opt/nordic/ncs/v3.1.1/nrf/subsys/nrf_security/src/threading/include -I/opt/nordic/ncs/v3.1.1/nrf/subsys/nrf_security/src/utils -I/opt/nordic/ncs/v3.1.1/modules/crypto/oberon-psa-crypto/library -I/opt/nordic/ncs/v3.1.1/modules/crypto/mbedtls/library -I/opt/nordic/ncs/v3.1.1/modules/crypto/mbedtls/include -I/opt/nordic/ncs/v3.1.1/modules/crypto/mbedtls/include/library -I/opt/nordic/ncs/v3.1.1/nrfxlib/crypto/nrf_oberon/include -I/opt/nordic/ncs/v3.1.1/nrfxlib/crypto/nrf_oberon/include/mbedtls -isystem /opt/nordic/ncs/v3.1.1/zephyr/lib/libc/common/include -fno-strict-aliasing -Os -imacros /Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor/build_dk_nrf9151/cellular-building-monitor/zephyr/include/generated/zephyr/autoconf.h -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -mfp16-format=ieee --sysroot=/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi -imacros /opt/nordic/ncs/v3.1.1/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-pic -fno-pie -fno-asynchronous-unwind-tables -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop -fmacro-prefix-map=/Users/charlesfayal/Projects/NOWI/Engineering/Firmware/cellular-building-monitor=CMAKE_SOURCE_DIR -fmacro-prefix-map=/opt/nordic/ncs/v3.1.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=/opt/nordic/ncs/v3.1.1=WEST_TOPDIR -ffunction-sections -fdata-sections -specs=nano.specs -D_POSIX_THREADS -std=c11 -MD -MT modules/nrf/subsys/net/lib/download_client/CMakeFiles/..__nrf__subsys__net__lib__download_client.dir/src/download_client.c.obj -MF modules/nrf/subsys/net/lib/download_client/CMakeFiles/..__nrf__subsys__net__lib__download_client.dir/src/download_client.c.obj.d -o modules/nrf/subsys/net/lib/download_client/CMakeFiles/..__nrf__subsys__net__lib__download_client.dir/src/download_client.c.obj -c /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c: In function 'set_recv_socket_timeout':
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:128:15: warning: implicit declaration of function 'setsockopt'; did you mean 'zsock_setsockopt'? [-Wimplicit-function-declaration]
      128 |         err = setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &timeo, sizeof(timeo));
          |               ^~~~~~~~~~
          |               zsock_setsockopt
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c: In function 'host_lookup':
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:236:16: error: variable 'hints' has initializer but incomplete type
      236 |         struct addrinfo hints = {
          |                ^~~~~~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:237:18: error: 'struct addrinfo' has no member named 'ai_family'
      237 |                 .ai_family = family,
          |                  ^~~~~~~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:237:30: warning: excess elements in struct initializer
      237 |                 .ai_family = family,
          |                              ^~~~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:237:30: note: (near initialization for 'hints')
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:236:25: error: storage size of 'hints' isn't known
      236 |         struct addrinfo hints = {
          |                         ^~~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:249:23: warning: implicit declaration of function 'getaddrinfo'; did you mean 'net_addr_ntop'? [-Wimplicit-function-declaration]
      249 |                 err = getaddrinfo(hostname, pdnserv, &hints, &ai);
          |                       ^~~~~~~~~~~
          |                       net_addr_ntop
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:260:22: error: invalid use of undefined type 'struct addrinfo'
      260 |         memcpy(sa, ai->ai_addr, ai->ai_addrlen);
          |                      ^~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:260:35: error: invalid use of undefined type 'struct addrinfo'
      260 |         memcpy(sa, ai->ai_addr, ai->ai_addrlen);
          |                                   ^~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:261:9: warning: implicit declaration of function 'freeaddrinfo'; did you mean 'zsock_freeaddrinfo'? [-Wimplicit-function-declaration]
      261 |         freeaddrinfo(ai);
          |         ^~~~~~~~~~~~
          |         zsock_freeaddrinfo
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:236:25: warning: unused variable 'hints' [-Wunused-variable]
      236 |         struct addrinfo hints = {
          |                         ^~~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c: In function 'client_socket_connect':
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:288:18: warning: implicit declaration of function 'socket' [-Wimplicit-function-declaration]
      288 |         dl->fd = socket(dl->remote_addr.sa_family, type, dl->proto);
          |                  ^~~~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:340:17: warning: implicit declaration of function 'inet_ntop' [-Wimplicit-function-declaration]
      340 |                 inet_ntop(dl->remote_addr.sa_family, sin_addr, ip_addr_str, sizeof(ip_addr_str));
          |                 ^~~~~~~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:346:15: warning: implicit declaration of function 'connect' [-Wimplicit-function-declaration]
      346 |         err = connect(dl->fd, &dl->remote_addr, addrlen);
          |               ^~~~~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:361:25: warning: implicit declaration of function 'close'; did you mean 'fclose'? [-Wimplicit-function-declaration]
      361 |                         close(dl->fd);
          |                         ^~~~~
          |                         fclose
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c: In function 'socket_send':
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:480:24: warning: implicit declaration of function 'send' [-Wimplicit-function-declaration]
      480 |                 sent = send(client->fd, client->buf + off, len, 0);
          |                        ^~~~
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c: In function 'socket_recv':
    /opt/nordic/ncs/v3.1.1/nrf/subsys/net/lib/download_client/src/download_client.c:588:16: warning: implicit declaration of function 'recv' [-Wimplicit-function-declaration]
      588 |         return recv(dl->fd, dl->buf + dl->offset, sizeof(dl->buf) - dl->offset, 0);
          |                ^~~~
    [300/412] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj
    ninja: build stopped: subcommand failed.
    [10/20] No configure step for 'mcuboot'


    without those configs we still hit this issue
    opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c: In function 'boot_fetch_active_slot':
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:83:49: error: 'PM_MCUBOOT_PRIMARY_ID' undeclared (first use in this function)
       83 |         #define ACTIVE_SLOT_FLASH_AREA_ID       PM_MCUBOOT_PRIMARY_ID
          |                                                 ^~~~~~~~~~~~~~~~~~~~~
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:149:16: note: in expansion of macro 'ACTIVE_SLOT_FLASH_AREA_ID'
      149 |         return ACTIVE_SLOT_FLASH_AREA_ID;
          |                ^~~~~~~~~~~~~~~~~~~~~~~~~
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:83:49: note: each undeclared identifier is reported only once for each function it appears in
       83 |         #define ACTIVE_SLOT_FLASH_AREA_ID       PM_MCUBOOT_PRIMARY_ID
          |                                                 ^~~~~~~~~~~~~~~~~~~~~
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:149:16: note: in expansion of macro 'ACTIVE_SLOT_FLASH_AREA_ID'
      149 |         return ACTIVE_SLOT_FLASH_AREA_ID;
          |                ^~~~~~~~~~~~~~~~~~~~~~~~~
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c: In function 'boot_is_img_confirmed':
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:83:49: error: 'PM_MCUBOOT_PRIMARY_ID' undeclared (first use in this function)
       83 |         #define ACTIVE_SLOT_FLASH_AREA_ID       PM_MCUBOOT_PRIMARY_ID
          |                                                 ^~~~~~~~~~~~~~~~~~~~~
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:345:30: note: in expansion of macro 'ACTIVE_SLOT_FLASH_AREA_ID'
      345 |         rc = flash_area_open(ACTIVE_SLOT_FLASH_AREA_ID, &fa);
          |                              ^~~~~~~~~~~~~~~~~~~~~~~~~
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c: In function 'boot_write_img_confirmed':
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:83:49: error: 'PM_MCUBOOT_PRIMARY_ID' undeclared (first use in this function)
       83 |         #define ACTIVE_SLOT_FLASH_AREA_ID       PM_MCUBOOT_PRIMARY_ID
          |                                                 ^~~~~~~~~~~~~~~~~~~~~
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:372:29: note: in expansion of macro 'ACTIVE_SLOT_FLASH_AREA_ID'
      372 |         if (flash_area_open(ACTIVE_SLOT_FLASH_AREA_ID, &fa) != 0) {
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c: In function 'boot_fetch_active_slot':
    /opt/nordic/ncs/v3.1.1/zephyr/subsys/dfu/boot/mcuboot.c:150:1: warning: control reaches end of non-void function [-Wreturn-type]
      150 | }
          | ^
    [226/410] Building C object zephyr/drivers/pwm/CMakeFiles/drivers__pwm.dir/pwm_nrfx.c.obj
    ninja: build stopped: subcommand failed.

  • Can you provide the zephyr.dts file for the first build?

Related