
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?
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