All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <l.majewski@majess.pl>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCHv2] scripts: Add script to extract default environment
Date: Tue, 27 Sep 2016 15:37:24 +0200	[thread overview]
Message-ID: <20160927153724.1bf81b45@jawa> (raw)
In-Reply-To: <CAPnjgZ26xGav9AdJgcukRxwG8=hhK0jLJ8JSqvinUaofr4JYnQ@mail.gmail.com>

Hi Simon,

> Hi Lukasz,
> 
> On 16 September 2016 at 22:57, Lukasz Majewski <l.majewski@majess.pl>
> wrote:
> > This script looks for env_common.o object file and extracts from it
> > default u-boot environment, which is afterwards printed on standard
> > output.
> >
> > Usage example:
> > get_default_envs.sh > u-boot-env-default.txt
> >
> > The generated text file can be used as input for mkenvimage.
> >
> > Signed-off-by: Lukasz Majewski <l.majewski@majess.pl>
> >
> > ---
> > Changes for v2:
> > - Sort uniquely entries
> > - Exclude env_common.o generated for SPL
> > ---
> >  scripts/get_default_envs.sh | 34 ++++++++++++++++++++++++++++++++++
> >  1 file changed, 34 insertions(+)
> >  create mode 100755 scripts/get_default_envs.sh
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> 
> But why is this needed?

Some boards for production u-boot have all the envs hardcoded in
their ./include/configs/<board>.h file.

Also, they support envs stored on persistent memory - like eMMC.

During flashing both u-boot and envs are stored on the target memory.
Such script allows having the same data in both places.

I do know that I could also use external file, which I could include to
u-boot during compilation and compile the boot.scr file with mkimage.

Or maybe there is any other way?

Best regards,
?ukasz Majewski

> 
> >
> > diff --git a/scripts/get_default_envs.sh
> > b/scripts/get_default_envs.sh new file mode 100755
> > index 0000000..7955db6
> > --- /dev/null
> > +++ b/scripts/get_default_envs.sh
> > @@ -0,0 +1,34 @@
> > +#! /bin/bash
> > +#
> > +# Copyright (C) 2016, Lukasz Majewski <l.majewski@majess.pl>
> > +#
> > +# SPDX-License-Identifier:      GPL-2.0+
> > +#
> > +
> > +# This file extracts default envs from built u-boot
> > +# usage: get_default_envs.sh > u-boot-env-default.txt
> > +set -ue
> > +
> > +ENV_OBJ_FILE="env_common.o"
> > +ENV_OBJ_FILE_COPY="copy_${ENV_OBJ_FILE}"
> > +
> > +echoerr() { echo "$@" 1>&2; }
> > +
> > +path=$(readlink -f $0)
> > +env_obj_file_path=$(find ${path%/scripts*} -not -path "*/spl/*" \
> > +                        -name "${ENV_OBJ_FILE}")
> > +[ -z "${env_obj_file_path}" ] && \
> > +    { echoerr "File '${ENV_OBJ_FILE}' not found!"; exit 1; }
> > +
> > +cp ${env_obj_file_path} ${ENV_OBJ_FILE_COPY}
> > +
> > +# NOTE: objcopy saves its output to file passed in
> > +# (copy_env_common.o in this case)
> > +objcopy -O binary -j ".rodata.default_environment"
> > ${ENV_OBJ_FILE_COPY} +
> > +# Replace default '\0' with '\n' and sort entries
> > +tr '\0' '\n' < ${ENV_OBJ_FILE_COPY} | sort -u
> > +
> > +rm ${ENV_OBJ_FILE_COPY}
> > +
> > +exit 0
> 
> This isn't needed.
> 
> > --
> > 2.1.4
> >
> 
> Regards,
> Simon

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160927/d47c2111/attachment.sig>

  reply	other threads:[~2016-09-27 13:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-17  4:57 [U-Boot] [PATCHv2] scripts: Add script to extract default environment Lukasz Majewski
2016-09-27  0:33 ` Simon Glass
2016-09-27 13:37   ` Lukasz Majewski [this message]
2016-09-28 15:46     ` Simon Glass
2016-09-28 20:33       ` Lukasz Majewski
2016-10-08 17:06 ` [U-Boot] [U-Boot, PATCHv2] " Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160927153724.1bf81b45@jawa \
    --to=l.majewski@majess.pl \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.