ARM: mxs: tools: Add support for boot progress display flag

mkimage -T mxs now support new flag in config file:
DISPLAYPROGRESS - makes boot process print HTLLC characters for each BootROM
instruction.

Signed-off-by: Alexey Ignatov <lexszero@gmail.com>
This commit is contained in:
Alexey Ignatov 2014-10-12 01:43:30 +04:00 committed by Stefano Babic
parent f196044dfd
commit 7a139959d0
6 changed files with 27 additions and 12 deletions

View file

@ -1,3 +1,4 @@
DISPLAYPROGRESS
SECTION 0x0 BOOTABLE
TAG LAST
LOAD 0x1000 spl/u-boot-spl.bin

View file

@ -1,3 +1,4 @@
DISPLAYPROGRESS
SECTION 0x0 BOOTABLE
TAG LAST
LOAD 0x1000 spl/u-boot-spl.bin

View file

@ -1,3 +1,4 @@
DISPLAYPROGRESS
SECTION 0x0 BOOTABLE
TAG LAST
LOAD 0x1000 spl/u-boot-spl.bin

View file

@ -27,7 +27,7 @@ These semantics and rules will be outlined now.
- Each line of the configuration file contains exactly one instruction.
- Every numeric value must be encoded in hexadecimal and in format 0xabcdef12 .
- The configuration file is a concatenation of blocks called "sections" and
optionally "DCD blocks" (see below).
optionally "DCD blocks" (see below), and optional flags lines.
- Each "section" is started by the "SECTION" instruction.
- The "SECTION" instruction has the following semantics:
@ -139,9 +139,14 @@ These semantics and rules will be outlined now.
NOOP
- This instruction does nothing.
- If the verbose output from the BootROM is enabled, the BootROM will produce a
letter on the Debug UART for each instruction it started processing. Here is a
mapping between the above instructions and the BootROM verbose output:
- An optional flags lines can be one of the following:
DISPLAYPROGRESS
- Enable boot progress output form the BootROM.
- If the boot progress output from the BootROM is enabled, the BootROM will
produce a letter on the Debug UART for each instruction it started processing.
Here is a mapping between the above instructions and the BootROM output:
H -- SB Image header loaded
T -- TAG instruction

View file

@ -125,7 +125,7 @@ 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 silent_dump:1;
char *input_filename;
char *output_filename;
@ -1308,8 +1308,8 @@ 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;
/* FIXME -- We support only default key */
hdr->key_count = 1;
@ -1428,6 +1428,12 @@ static int sb_parse_line(struct sb_image_ctx *ictx, struct sb_cmd_list *cmd)
cmd->cmd = rptr;
/* set DISPLAY_PROGRESS flag */
if (!strcmp(tok, "DISPLAYPROGRESS")) {
ictx->display_progress = 1;
return 0;
}
/* DCD */
if (!strcmp(tok, "DCD")) {
ictx->in_section = 0;
@ -1681,10 +1687,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" : "");
hdr->flags & SB_IMAGE_FLAG_DISPLAY_PROGRESS ?
"Display_progress" : "");
if (ret)
return ret;
@ -2287,7 +2294,6 @@ static int mxsimage_generate(struct image_tool_params *params,
ctx.cfg_filename = params->imagename;
ctx.output_filename = params->imagefile;
ctx.verbose_boot = 1;
ret = sb_build_tree_from_cfg(&ctx);
if (ret)

View file

@ -81,8 +81,9 @@ struct sb_boot_image_header {
#define SB_VERSION_MAJOR 1
#define SB_VERSION_MINOR 1
/* Enable to HTLLC verbose boot report. */
#define SB_IMAGE_FLAG_VERBOSE (1 << 0)
/* Enable to HTLLC boot report. */
#define SB_IMAGE_FLAG_DISPLAY_PROGRESS (1 << 0)
#define SB_IMAGE_FLAGS_MASK SB_IMAGE_FLAG_DISPLAY_PROGRESS
struct sb_key_dictionary_key {
/* The CBC-MAC of image and sections header. */