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>
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox