
mkimage -T mxs now support new flags in config file: NODISPLAYPROGRESS - makes boot silent VERBOSEPROGRESS - makes boot progress display more verbose
Signed-off-by: Alexey Ignatov lexszero@gmail.com --- tools/mxsimage.c | 41 ++++++++++++++++++++++++++++++++++------- tools/mxsimage.h | 6 +++++- 2 files changed, 39 insertions(+), 8 deletions(-)
diff --git a/tools/mxsimage.c b/tools/mxsimage.c index 045b35a..55c6691 100644 --- a/tools/mxsimage.c +++ b/tools/mxsimage.c @@ -124,7 +124,8 @@ struct sb_image_ctx { unsigned int in_section:1; unsigned int in_dcd:1; /* Image configuration */ - unsigned int verbose_boot:1; + unsigned int display_progress:1; + unsigned int verbose_progress:1; unsigned int silent_dump:1; char *input_filename; char *output_filename; @@ -1328,8 +1329,9 @@ static int sb_prefill_image_header(struct sb_image_ctx *ictx) sizeof(struct sb_sections_header) / SB_BLOCK_SIZE; hdr->timestamp_us = sb_get_timestamp() * 1000000;
- /* FIXME -- add proper config option */ - hdr->flags = ictx->verbose_boot ? SB_IMAGE_FLAG_VERBOSE : 0, + hdr->flags = + ictx->display_progress ? SB_IMAGE_FLAG_DISPLAY_PROGRESS : 0 | + ictx->verbose_progress ? SB_IMAGE_FLAG_VERBOSE_PROGRESS : 0,
/* FIXME -- We support only default key */ hdr->key_count = 1; @@ -1447,6 +1449,30 @@ static int sb_parse_line(struct sb_image_ctx *ictx, struct sb_cmd_list *cmd) }
cmd->cmd = rptr; + + /* clear DISPLAY_PROGRESS flag */ + if (!strcmp(tok, "NODISPLAYPROGRESS")) { + if (ictx->verbose_progress) { + fprintf(stderr, + "#%i ERR: VERBOSEPROGRESS incompatible with NODISPLAYPROGRESS\n", + cmd->lineno); + return -EINVAL; + } + ictx->display_progress = 0; + return 0; + } + + /* set VERBOSE_PROGRESS flag */ + if (!strcmp(tok, "VERBOSEPROGRESS")) { + if (!ictx->display_progress) { + fprintf(stderr, + "#%i ERR: VERBOSEPROGRESS incompatible with NODISPLAYPROGRESS\n", + cmd->lineno); + return -EINVAL; + } + ictx->verbose_progress = 1; + return 0; + }
/* DCD */ if (!strcmp(tok, "DCD")) { @@ -1701,10 +1727,11 @@ static int sb_verify_image_header(struct sb_image_ctx *ictx, ntohs(hdr->component_version.minor), ntohs(hdr->component_version.revision));
- if (hdr->flags & ~SB_IMAGE_FLAG_VERBOSE) + if (hdr->flags & ~SB_IMAGE_FLAGS_MASK) ret = -EINVAL; - soprintf(ictx, "%s Image flags: %s\n", stat[!!ret], - hdr->flags & SB_IMAGE_FLAG_VERBOSE ? "Verbose_boot" : ""); + soprintf(ictx, "%s Image flags: %s %s\n", stat[!!ret], + hdr->flags & SB_IMAGE_FLAG_DISPLAY_PROGRESS ? "Display_progress" : "", + hdr->flags & SB_IMAGE_FLAG_VERBOSE_PROGRESS ? "Verbose_progress" : ""); if (ret) return ret;
@@ -2305,7 +2332,7 @@ static int mxsimage_generate(struct image_tool_params *params,
ctx.cfg_filename = params->imagename; ctx.output_filename = params->imagefile; - ctx.verbose_boot = 1; + ctx.display_progress = 1;
ret = sb_build_tree_from_cfg(&ctx); if (ret) diff --git a/tools/mxsimage.h b/tools/mxsimage.h index 6cd59d2..01624f7 100644 --- a/tools/mxsimage.h +++ b/tools/mxsimage.h @@ -82,7 +82,11 @@ struct sb_boot_image_header { #define SB_VERSION_MINOR 1
/* Enable to HTLLC verbose boot report. */ -#define SB_IMAGE_FLAG_VERBOSE (1 << 0) +#define SB_IMAGE_FLAG_DISPLAY_PROGRESS (1 << 0) +#define SB_IMAGE_FLAG_VERBOSE_PROGRESS (1 << 1) +#define SB_IMAGE_FLAGS_MASK \ + (SB_IMAGE_FLAG_DISPLAY_PROGRESS | \ + SB_IMAGE_FLAG_VERBOSE_PROGRESS)
struct sb_key_dictionary_key { /* The CBC-MAC of image and sections header. */