board/stm32mp157: remove hardcoded device tree names from post-image.sh
PATCH 1/1 board/stm32mp157: remove hardcoded device tree names from post-image.sh
The post-image.sh script is used in several STM32MP157-based board configs. It had hardcoded device tree file names for the supported boards which were used for matching the expected TF-A binary name. Replace this mechanism with a pair of grep and sed that build the TF-A binary name from the device tree file name. For example, if BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES contained DTB_FILE_NAME=stm32mp157c-dk2.dtb, the appropriate TF-A file would be named tf-a-stm32mp157c-dk2.stm32.
Since the Bash Here Strings are removed with this change, I took the opportunity to remove the only other non-POSIX command, "local", and then I was able to change the shebang to plain /bin/sh, with -eu for simpler error handling.
--- .../common/stm32mp157/post-image.sh | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-)
board/stmicroelectronics/common/stm32mp157/post-image.sh +10 -13
@@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh -eu # # atf_image extracts the ATF binary image from DTB_FILE_NAME that appears in
@@ -8,22 +8,19 @@ # atf_image() { - local ATF_VARIABLES="$(sed -n 's/^BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="\([\/a-zA-Z0-9_=. \-]*\)"$/\1/p' ${BR2_CONFIG})" - - if grep -Eq "DTB_FILE_NAME=stm32mp157c-dk2.dtb" <<< ${ATF_VARIABLES}; then - echo "tf-a-stm32mp157c-dk2.stm32" - elif grep -Eq "DTB_FILE_NAME=stm32mp157a-dk1.dtb" <<< ${ATF_VARIABLES}; then - echo "tf-a-stm32mp157a-dk1.stm32" - elif grep -Eq "DTB_FILE_NAME=stm32mp157a-avenger96.dtb" <<< ${ATF_VARIABLES}; then - echo "tf-a-stm32mp157a-avenger96.stm32" - fi + ATF_VARIABLES="$(sed -n 's/^BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="\([\/a-zA-Z0-9_=. \-]*\)"$/\1/p' ${BR2_CONFIG})" + # make sure DTB_FILE_NAME is set + printf '%s\n' "${ATF_VARIABLES}" | grep -Eq 'DTB_FILE_NAME=[0-9A-Za-z_\-]*' + # extract the value + DTB_FILE_NAME="$(printf '%s\n' "${ATF_VARIABLES}" | sed 's/.*DTB_FILE_NAME=\([a-zA-Z0-9_\-]*\)\.dtb.*/\1/')" + echo "tf-a-${DTB_FILE_NAME}.stm32" } main() { - local ATFBIN="$(atf_image)" - local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)" - local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + ATFBIN="$(atf_image)" + GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)" + GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" sed -e "s/%ATFBIN%/${ATFBIN}/" \ board/stmicroelectronics/common/stm32mp157/genimage.cfg.template > ${GENIMAGE_CFG}
Signature · 5 lines
2.40.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Quoted 50 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Grzegorz" == Grzegorz Szymaszek <[email protected]> writes:
The
post-image.shscript is used in several STM32MP157-based board configs. It had hardcoded device tree file names for the supported boards which were used for matching the expected TF-A binary name. Replace this mechanism with a pair of grep and sed that build the TF-A binary name from the device tree file name. For example, ifBR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLEScontained DTB_FILE_NAME=stm32mp157c-dk2.dtb, the appropriate TF-A file would be named tf-a-stm32mp157c-dk2.stm32.Since the Bash Here Strings are removed with this change, I took the opportunity to remove the only other non-POSIX command, "local", and then I was able to change the shebang to plain
/bin/sh, with -eu for simpler error handling.Signed-off-by Grzegorz Szymaszek <[email protected]>--- .../common/stm32mp157/post-image.sh | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-)board/stmicroelectronics/common/stm32mp157/post-image.sh +7
-10@@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh -eu # # atf_image extracts the ATF binary image from DTB_FILE_NAME that appears in@@ -8,22 +8,19 @@ # atf_image() { - local ATF_VARIABLES="$(sed -n 's/^BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="\([\/a-zA-Z0-9_=. \-]*\)"$/\1/p' ${BR2_CONFIG})" - - if grep -Eq "DTB_FILE_NAME=stm32mp157c-dk2.dtb" <<< ${ATF_VARIABLES}; then - echo "tf-a-stm32mp157c-dk2.stm32" - elif grep -Eq "DTB_FILE_NAME=stm32mp157a-dk1.dtb" <<< ${ATF_VARIABLES}; then - echo "tf-a-stm32mp157a-dk1.stm32" - elif grep -Eq "DTB_FILE_NAME=stm32mp157a-avenger96.dtb" <<< ${ATF_VARIABLES}; then - echo "tf-a-stm32mp157a-avenger96.stm32" - fi + ATF_VARIABLES="$(sed -n 's/^BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="\([\/a-zA-Z0-9_=. \-]*\)"$/\1/p' ${BR2_CONFIG})" + # make sure DTB_FILE_NAME is set + printf '%s\n' "${ATF_VARIABLES}" | grep -Eq 'DTB_FILE_NAME=[0-9A-Za-z_\-]*' + # extract the value + DTB_FILE_NAME="$(printf '%s\n' "${ATF_VARIABLES}" | sed 's/.*DTB_FILE_NAME=\([a-zA-Z0-9_\-]*\)\.dtb.*/\1/')" + echo "tf-a-${DTB_FILE_NAME}.stm32"
board/stmicroelectronics/common/stm32mp157/post-image.sh line 23
Quoted 10 lines
board/stmicroelectronics/common/stm32mp157/post-image.sh +3
-3} main() { - local ATFBIN="$(atf_image)" - local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)" - local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + ATFBIN="$(atf_image)" + GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)" + GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
It looks like GENIMAGE_TMP is not used anywhere. Committed with that removed, thanks.
Signature · 5 lines
Bye, Peter Korsgaard _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot