I think I might have located something in the latest v2.4.0 and v2.4.1 SDKs that others might run into, it involves using mcuboot while also using an SD card (on spi3) in the application.

If this is a repeat post then I apologize, I have not fully searched the forums here yet.

I turns out that a new option has been added to mcuboot in v2.4.0 (Zephyr v3.3.99) (CONFIG_SPI_NOR=y) which conflicts with spi3 in the application. Adding CONFIG_SPI_NOR=y to the mcuboot prj.conf will resolve the issue. I made the following post on Nordic’s forums and would like to provide that information here as a heads up.

I am waiting for a reply from Nordic currently, but the above work around appears to be ok for now (as long as external NOR is not needed if using mcuboot for FOTA updates).

See the below post for a clean way to add the mcuboot options to the project without altering the SDK.

https://devzone.nordicsemi.com/f/nordic-q-a/102609/nrf9160-enabling-mcuboot-in-v2-4-0-causes-sd-card-on-spi3-to-stop-working-spi3-conflict

Allan

    @aldras I had some interesting issues as well with NOR flash. By the way you can always add an overlay in mcuboot at the application level:

    app on  master [✘!?] 
    ❯ tree -L 5
    .
    ├── nrf9160
    │   ├── CMakeLists.txt
    │   ├── Kconfig
    │   ├── boards
    │   │   ├── circuitdojo_feather_nrf9160_ns.conf
    │   │   └── circuitdojo_feather_nrf9160_ns.overlay
    │   ├── child_image
    │   │   └── mcuboot
    │   │       └── boards
    │   │           └── circuitdojo_feather_nrf9160.overlay
    └── west.yml

    Or create a mcuboot.conf in that child_image folder.

      I received a reply from an engineer at Nordic, but the workaround is pretty close to what I had come up with already.
      It is a confirmed “bug” and I am hoping there will be a better solution with a later release.
      The reply is in the link in the first post if you are curious about the official reply.

      Allan

      a month later

      @aldras thanks so much for posting this!

      I ran into a similar issue this weekend and just found this post after pulling my hair out the last 2 days trying to troubleshoot… (we’ve got a CAN controller hooked up to the SPI3 peripheral on the SparkFun Thing Plus - nRF9160 and after upgrading from v2.3.0 to v2.4.1 the CAN interface stopped working).

      I ended up using @jaredwolff suggestion to add a board-specific overlay in the child_image/mcuboot/boards directory that just deletes the w25q32jv node from the devicetree for this board (we’re not currently using it):

      /delete-node/ &w25q32jv;
      Terms and Conditions | Privacy Policy