[U-Boot] [PATCH] ARM: mxs: tools: Add support for verbose and silent boot progress flags

Alexey Ignatov lexszero at gmail.com
Wed Oct 8 22:49:38 CEST 2014


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 at 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. */
-- 
1.8.5.3



More information about the U-Boot mailing list