dfu: mcuboot: add shell module
Add new shell module for mcuboot enabled application. It provides information about image slots and allows to perform such operations as: confirm, erase and request upgrade. Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
This commit is contained in:
parent
7356cb2e45
commit
0e769c1a36
5 changed files with 266 additions and 40 deletions
|
@ -17,6 +17,8 @@
|
|||
#include <sys/byteorder.h>
|
||||
#include <dfu/mcuboot.h>
|
||||
|
||||
#include "mcuboot_priv.h"
|
||||
|
||||
/*
|
||||
* Helpers for image headers and trailers, as defined by mcuboot.
|
||||
*/
|
||||
|
@ -30,12 +32,6 @@
|
|||
#define BOOT_HEADER_MAGIC_V1 0x96f3b83d
|
||||
#define BOOT_HEADER_SIZE_V1 32
|
||||
|
||||
/* Trailer: */
|
||||
#define BOOT_FLAG_SET 1
|
||||
#define BOOT_FLAG_BAD 2
|
||||
#define BOOT_FLAG_UNSET 3
|
||||
#define BOOT_FLAG_ANY 4 /* NOTE: control only, not dependent on sector */
|
||||
|
||||
/*
|
||||
* Raw (on-flash) representation of the v1 image header.
|
||||
*/
|
||||
|
@ -59,33 +55,12 @@ struct mcuboot_v1_raw_header {
|
|||
* End of strict defines
|
||||
*/
|
||||
|
||||
#define BOOT_MAGIC_GOOD 1
|
||||
#define BOOT_MAGIC_BAD 2
|
||||
#define BOOT_MAGIC_UNSET 3
|
||||
#define BOOT_MAGIC_ANY 4 /* NOTE: control only, not dependent on sector */
|
||||
#define BOOT_MAGIC_NOTGOOD 5 /* NOTE: control only, not dependent on sector */
|
||||
|
||||
#define BOOT_FLAG_IMAGE_OK 0
|
||||
#define BOOT_FLAG_COPY_DONE 1
|
||||
|
||||
#define FLASH_MIN_WRITE_SIZE \
|
||||
DT_PROP(DT_CHOSEN(zephyr_flash), write_block_size)
|
||||
|
||||
/* FLASH_AREA_ID() values used below are auto-generated by DT */
|
||||
#ifdef CONFIG_TRUSTED_EXECUTION_NONSECURE
|
||||
#define FLASH_AREA_IMAGE_PRIMARY FLASH_AREA_ID(image_0_nonsecure)
|
||||
#define FLASH_AREA_IMAGE_SECONDARY FLASH_AREA_ID(image_1_nonsecure)
|
||||
#else
|
||||
#define FLASH_AREA_IMAGE_PRIMARY FLASH_AREA_ID(image_0)
|
||||
#if FLASH_AREA_LABEL_EXISTS(image_1)
|
||||
#define FLASH_AREA_IMAGE_SECONDARY FLASH_AREA_ID(image_1)
|
||||
#endif
|
||||
#endif /* CONFIG_TRUSTED_EXECUTION_NONSECURE */
|
||||
|
||||
#if FLASH_AREA_LABEL_EXISTS(image_scratch)
|
||||
#define FLASH_AREA_IMAGE_SCRATCH FLASH_AREA_ID(image_scratch)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_TRAILER_SWAP_TYPE
|
||||
#define SWAP_TYPE_OFFS(bank_area) ((bank_area)->fa_size -\
|
||||
BOOT_MAGIC_SZ - BOOT_MAX_ALIGN * 3)
|
||||
|
@ -120,14 +95,6 @@ struct boot_swap_table {
|
|||
uint8_t swap_type;
|
||||
};
|
||||
|
||||
/** Represents the management state of a single image slot. */
|
||||
struct boot_swap_state {
|
||||
uint8_t magic; /* One of the BOOT_MAGIC_[...] values. */
|
||||
uint8_t swap_type; /* One of the BOOT_SWAP_TYPE_[...] values. */
|
||||
uint8_t copy_done; /* One of the BOOT_FLAG_[...] values. */
|
||||
uint8_t image_ok; /* One of the BOOT_FLAG_[...] values. */
|
||||
};
|
||||
|
||||
#ifdef FLASH_AREA_IMAGE_SECONDARY
|
||||
/**
|
||||
* This set of tables maps image trailer contents to swap operation type.
|
||||
|
@ -579,11 +546,7 @@ static int boot_read_swap_state(const struct flash_area *fa,
|
|||
}
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_BOOTLOADER_MCUBOOT) && !defined(CONFIG_ZTEST)
|
||||
/* provided by MCUBoot */
|
||||
int
|
||||
boot_read_swap_state_by_id(int flash_area_id, struct boot_swap_state *state);
|
||||
#else
|
||||
#if defined(CONFIG_BOOTLOADER_MCUBOOT) || defined(CONFIG_ZTEST)
|
||||
/**
|
||||
* Reads the image trailer from the scratch area.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue