diff options
author | Lukasz Majewski <l.majewski@majess.pl> | 2016-09-17 06:57:39 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-10-06 21:00:53 -0400 |
commit | 27229b2a4caf60ef685f8b9d1a3f6304487b18c7 (patch) | |
tree | a80641556dc7d2558b2864cc641908959540888b | |
parent | f61c9bcdfd3d1bb4ab6680d567081b0f6cbf908b (diff) | |
download | u-boot-imx-27229b2a4caf60ef685f8b9d1a3f6304487b18c7.zip u-boot-imx-27229b2a4caf60ef685f8b9d1a3f6304487b18c7.tar.gz u-boot-imx-27229b2a4caf60ef685f8b9d1a3f6304487b18c7.tar.bz2 |
scripts: Add script to extract default environment
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>
Reviewed-by: Simon Glass <sjg@chromium.org>
-rwxr-xr-x | scripts/get_default_envs.sh | 34 |
1 files changed, 34 insertions, 0 deletions
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 |