nrf54lm20a OTA fail

Hi:

I use sdk ncs3.3.0 and nrf54lm20dk.

CONFIG_DFU_TARGET=y
CONFIG_DFU_TARGET_MCUBOOT=y

Failed to return using AA dfu_target_init.

OTA firmware is zephyr.signed.bin.

                    LOG_HEXDUMP_INF(&pkt->data[3], MIN(data_len, 16), "DFU header");
                    LOG_INF("data_len = %u", data_len);
                    enum dfu_target_image_type type = dfu_target_img_type(&pkt->data[3], data_len);
                    int err = dfu_target_init(type, 0, total_size, NULL);
                    if (err) {
                        LOG_ERR("Failed to initialize DFU target = %d", err);
                        return;
                    }

I: DFU header
I: 3d b8 f3 96 00 00 00 00 |=.......
I: 00 08 00 00 84 d7 03 00 |........
I: data_len = 63
E: No supported image type found
E: Unknown image type
E: Failed to initialize DFU target = -134

Parents Reply Children
  • Hi Sigurd:

    Thanks for your help!

    I have made the modifications, but there are still issues.

    I: OTA_RECEIVING: msg_type=0x04
    I: Chunk rx_seq=0 (expect=0) len=63 received=0/254036
    I: DFU header
    I: 3d b8 f3 96 00 00 00 00 |=.......
    I: 00 08 00 00 84 d7 03 00 |........
    I: First chunk: data_len=63
    E: Missing stream_buf, call '..set_buf' before '..init
    E: dfu_target_init failed: -19

    				LOG_HEXDUMP_INF(&pkt->data[3],
    						MIN(data_len, 16),
    						"DFU header");
    				LOG_INF("First chunk: data_len=%u", data_len);
    
    				/*
    				 * TODO: uncomment when flash writes are
    				 * enabled:
    				 */
    				enum dfu_target_image_type type;
    				type = dfu_target_img_type(&pkt->data[3],
    										data_len);
    				err = dfu_target_init(type, 0,
    										total_size, NULL);
    				if (err) {
    					LOG_ERR("dfu_target_init failed: %d", err);
    					ota_reset();
    					return;
    				}

Related