mcumgr: The firmware doesn't boot up after upload

Hi there,

I use MCUboot, and seemingly, the firmware update succeeds:

$ p mcumgr --conntype serial --connstring "/dev/ttyACM2,baud=115200" image upload -e zephyr.bin
 413.38 KiB / 413.38 KiB [============================================================================================================================================================================================================================] 100.00% 1.06 KiB/s 6m31s
Done

However, for some reason, the `image list` command yields no results:

$ p mcumgr --conntype serial --connstring "/dev/ttyACM2,baud=115200" image list
Images:
Split status: N/A (0)

Given the lack of image results, I couldn't reproduce the steps of the  Add DFU support to your application guide, which I've tried to follow.

After restarting the device, the firmware doesn't boot up.

CONFIG_BOOTLOADER_MCUBOOT=y is featured in my prj.conf.

child_image/mcuboot.conf contains the following:

CONFIG_PINCTRL=y
CONFIG_PM_PARTITION_SIZE_MCUBOOT=0x10000
CONFIG_LOG=y
CONFIG_SIZE_OPTIMIZATIONS=y
CONFIG_SERIAL=y
CONFIG_UART_LINE_CTRL=y
CONFIG_MCUBOOT_SERIAL=y
CONFIG_BOOT_SERIAL_CDC_ACM=y
CONFIG_BOOT_SERIAL_PIN_RESET=y
CONFIG_BOOT_SERIAL_WAIT_FOR_DFU=y
CONFIG_BOOT_SERIAL_WAIT_FOR_DFU_ALWAYS=n
CONFIG_BOOT_SERIAL_WAIT_FOR_DFU_TIMEOUT=3000
CONFIG_BOOT_SERIAL_NO_APPLICATION=y
CONFIG_LOG_BACKEND_UART=y
CONFIG_LOG_BACKEND_RTT=n

(The CONFIG_BOOT_SERIAL_WAIT_FOR_DFU_ALWAYS=n Kconfig option comes from  MCUboot should only timeout after hardware reset .)

The devicetree flash section:

&flash0 {
    partitions {
        compatible = "fixed-partitions";
        #address-cells = <1>;
        #size-cells = <1>;

        boot_partition: partition@0 {
            label = "mcuboot";
            reg = <0x0 0xc000>;
        };
        slot0_partition: partition@c000 {
            label = "image-0";
            reg = <0xc000 0x72000>;
        };
        slot1_partition: partition@7e000 {
            label = "image-1";
            reg = <0x7e000 0x72000>;
        };
        scratch_partition: partition@f0000 {
            label = "image-scratch";
            reg = <0xf0000 0xa000>;
        };
        storage_partition: partition@fa000 {
            label = "storage";
            reg = <0xfa000 0x6000>;
        };
    };
};

Thanks in advance for your help!

Laci

Parents Reply Children
Related