SDK 3.4.0 build/flash issue

I'm having strange behaviour after switching to 3.4.0 on nrf9151. Our existing application was working well on 3.2.0 but showed no life with 3.4.0.

To demonstrate, I built hello world sample with 3.2.0 and flashed and it worked as expected.

I created a new copy of sample hello world, tried to build it with 3.4.0 sdk and toolchain.

The build and flash produced no errors. When the device resets after the flash it still runs the old code.

Running erase and flash means nothing runs.

Having checked the partitioning is the same, I think it's related to TFM -- only the ns build doesn't run.

I'm on ubuntu 24.04. I'm slightly surprised "hello world" doesn't work straight out the box.

Parents
  • Hello,

    It sounds like the issue is that the application is being placed elsewhere in flash, since the old application continues to run after flashing. This could be related to the transition from using Partition Manager to static Devicetree partitions for managing the memory layout (Migrating partition configuration from Partition Manager to devicetree (DTS)). As you may have seen, Partition Manager is no longer enabled by default in SDK v3.4.0, and I would say this is the biggest difference between the two releases.

    Are you using the nrf9151dk as your build target, or have you defined your own board. Either way, as a test, please try building with the Partition manager enabled by passing the CMake argument below to your build command.

    -DSB_CONFIG_PARTITION_MANAGER=y

    You may also verify the start address of the TF-M and application image from the *.map output. TF-M should be starting at 0x0.

    Best regards,

    Vidar

Reply
  • Hello,

    It sounds like the issue is that the application is being placed elsewhere in flash, since the old application continues to run after flashing. This could be related to the transition from using Partition Manager to static Devicetree partitions for managing the memory layout (Migrating partition configuration from Partition Manager to devicetree (DTS)). As you may have seen, Partition Manager is no longer enabled by default in SDK v3.4.0, and I would say this is the biggest difference between the two releases.

    Are you using the nrf9151dk as your build target, or have you defined your own board. Either way, as a test, please try building with the Partition manager enabled by passing the CMake argument below to your build command.

    -DSB_CONFIG_PARTITION_MANAGER=y

    You may also verify the start address of the TF-M and application image from the *.map output. TF-M should be starting at 0x0.

    Best regards,

    Vidar

Children
Related