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.majew...@majess.pl> --- scripts/get_default_envs.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 scripts/get_default_envs.sh diff --git a/scripts/get_default_envs.sh b/scripts/get_default_envs.sh new file mode 100755 index 0000000..5c5a78a --- /dev/null +++ b/scripts/get_default_envs.sh @@ -0,0 +1,33 @@ +#! /bin/bash +# +# Copyright (C) 2016, Lukasz Majewski <l.majew...@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*} -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' +tr '\0' '\n' < ${ENV_OBJ_FILE_COPY} + +rm ${ENV_OBJ_FILE_COPY} + +exit 0 -- 2.1.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot