Skip to contentSkip to conversation

ARM: mxs: tools: Add support for verbose and silent boot progress flags

PATCH New Alexey Ignatov 2 participants 4 messages Oct 8, 2014 Arm i.MX and Layerscape

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: mxs: tools: Add support for verbose and silent boot progress flags

mkimage -T mxs now support new flags in config file:
NODISPLAYPROGRESS - makes boot silent VERBOSEPROGRESS - makes boot progress display more verbose

---
 tools/mxsimage.c | 41 ++++++++++++++++++++++++++++++++++-------
 tools/mxsimage.h |  6 +++++-
 2 files changed, 39 insertions(+), 8 deletions(-)
tools/mxsimage.c +34 -7
index 045b35a..55c6691 100644
@@ -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)
tools/mxsimage.h +5 -1
index 6cd59d2..01624f7 100644
@@ -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. */
Signature · 1 line
1.8.5.3
#1 lore raw

PATCH 1/1 ARM: mxs: tools: Add support for verbose and silent boot progress flags

Quoted 2 lines · Alexey Ignatov

mkimage -T mxs now support new flags in config file:
NODISPLAYPROGRESS - makes boot silent

Please make this the other way -- that is, add flag to make the display not- silent. What does this mean anyway?

Quoted 1 line

VERBOSEPROGRESS - makes boot progress display more verbose

And how is the above different from this new flag?

Please document those flags in doc/README.mxsimage too.

The code looks mostly OK, thanks !

Best regards,
Marek Vasut

#2 lore raw

PATCH 1/1 ARM: mxs: tools: Add support for verbose and silent boot progress flags

2014-10-09 2:10 GMT+04:00 Marek Vasut <[email protected]>:

Quoted 5 lines · Alexey Ignatov
Quoted 2 lines

mkimage -T mxs now support new flags in config file:
NODISPLAYPROGRESS - makes boot silent

Please make this the other way -- that is, add flag to make the display not- silent. What does this mean anyway?

Default behaviour of current MXS booting is to print HTLLCHTLLC characters when before usual uboot output - it is a feature to debug early boot stages, signatures checking, etc. Negation here to not break default behaviour

Quoted 2 lines
Quoted 1 line

VERBOSEPROGRESS - makes boot progress display more verbose

And how is the above different from this new flag?

I'm not really sure what this does (I haven't seen any differences with this flag on and off), but
http://www.rockbox.org/wiki/SbFileFormat mentions existence of this bit. Unfortunately, Freescale documentation is not full and a bit hard to search and use :(

Quoted 2 lines

Please document those flags in doc/README.mxsimage too. The code looks mostly OK, thanks !

Thank you for comments, I'll add documentation, fix DISPLAYPROGRESS and post a v2 of the patch.

Regards,
Alexey Ignatov

#3 lore raw

PATCH 1/1 ARM: mxs: tools: Add support for verbose and silent boot progress flags

Quoted 5 lines · Alexey Ignatov

2014-10-09 2:10 GMT+04:00 Marek Vasut <[email protected]>:

Quoted 4 lines · Alexey Ignatov
Quoted 2 lines

mkimage -T mxs now support new flags in config file:
NODISPLAYPROGRESS - makes boot silent

Quoted 7 lines
Quoted 2 lines

Please make this the other way -- that is, add flag to make the display not- silent. What does this mean anyway?

Default behaviour of current MXS booting is to print HTLLCHTLLC characters when before usual uboot output - it is a feature to debug early boot stages, signatures checking, etc. Negation here to not break default behaviour

That's OK, you can just patch the arch/arm/cpu/arm926ejs/mxs/mxsimage*cfg to keep the behavior intact.

Quoted 9 lines
Quoted 3 lines
Quoted 1 line

VERBOSEPROGRESS - makes boot progress display more verbose

And how is the above different from this new flag?

I'm not really sure what this does (I haven't seen any differences with this flag on and off), but
http://www.rockbox.org/wiki/SbFileFormat mentions existence of this bit. Unfortunately, Freescale documentation is not full and a bit hard to search and use :(

Do we need this at all then ?

Quoted 5 lines
Quoted 2 lines

Please document those flags in doc/README.mxsimage too. The code looks mostly OK, thanks !

Thank you for comments, I'll add documentation, fix DISPLAYPROGRESS and post a v2 of the patch.

Thanks!

Best regards,
Marek Vasut