TL;DR - Mcuboot seems to be erasing my app images in split configuration, and I can't figure out why...(or what I'm doing wrong)
Hi All, I'm trying to get split images working but having no luck. Currently, I'm following these instructions: http://mynewt.apache.org/latest/os/modules/split/split.html#image-upgrade-split (With slight modifications to use mcumgr instead of newtmgr. Here's my setup: 1x NRF52DK (pca10400) dev board top-of-tree newt tool (build from source) top-of-tree mcumgr (go get github.com/apache/mynewt-mcumgr-cli/mcumgr) This repo has all the code: https://github.com/alvarop/split_test I'm using mcuboot with target nrf52_boot I'm using bleprph from apache-mynewt-nimble as my loader I'm using splitty from apache-mynewt-core as my main app First I load the booatloader with newt load nrf52_boot I then create the split image with create-image split-nrf52dk 1.0.0 I then load the image with newt load split-nrf52dk I query the images over BLE: mcumgr image list -c mybleprph Images: slot=0 version: 1.0.0 bootable: true flags: active confirmed hash: 31a1b0568dffb840a30a361db1cf747ba63f97c141aef2ac18674744000f12fb slot=1 version: 1.0.0 bootable: true flags: hash: f13c88e281e8b790e189b8db45abac25f86c19e6c85f8f56bfeec2ece349112a Split status: N/A (0) Right off the bat, the system never boots into the app image, it stays in the loader. Maybe it's because it is marked as active.. ok. I create a "new" image so we can differentiate with newt-dev create-image split-nrf52dk 1.0.1 I upload the new image: mcumgr image upload -c mybleprph bin/targets/split-nrf52dk/app/apps/splitty/splitty.img And confirm it is there: mcumgr image list -c mybleprph Images: slot=0 version: 1.0.0 bootable: true flags: active confirmed hash: 31a1b0568dffb840a30a361db1cf747ba63f97c141aef2ac18674744000f12fb slot=1 version: 1.0.1 bootable: true flags: hash: 45f5338c09eb5ea04729ef0092c3645876e7bd6a8ebf307a040780d9b50dea25 Split status: N/A (0) I then want to test it and use: mcumgr image test -c mybleprph 45f5338c09eb5ea04729ef0092c3645876e7bd6a8ebf307a040780d9b50dea25 Images: slot=0 version: 1.0.0 bootable: true flags: active confirmed hash: 31a1b0568dffb840a30a361db1cf747ba63f97c141aef2ac18674744000f12fb slot=1 version: 1.0.1 bootable: true flags: pending hash: 45f5338c09eb5ea04729ef0092c3645876e7bd6a8ebf307a040780d9b50dea25 Split status: N/A (0) Now the new image in slot 1 is pending. Resetting should switch to it. mcumgr reset -c mybleprph When I check again, the image is gone: mcumgr image list -c mybleprph Images: slot=0 version: 1.0.0 bootable: true flags: active confirmed hash: 31a1b0568dffb840a30a361db1cf747ba63f97c141aef2ac18674744000f12fb Split status: N/A (0) I have verified that the flash has been erased and that mcuboot did it. I want to check if there's anything obviously wrong with my procedure before digging in deeper into mcuboot. Thank you for your help, Cheers, Alvaro