|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [ImageBuilder][PATCH v2 1/4] scripts: Add support for prepending path to file names
On Thu, 30 Jun 2022, Andrei Cherechesu (OSS) wrote:
> From: Andrei Cherechesu <andrei.cherechesu@xxxxxxx>
>
> Added support for prepending path to file names in the final generated
> u-boot script, for the use-case where we have the files in a separate
> folder that can be accessed with a given $LOAD_CMD.
>
> For example, we can have "fatload mmc 0:2" as LOAD_CMD but the
> files would need to be loaded from the /boot folder within the 2nd
> partition, not from the root ("/"). By specifying the "-p <path>"
> parameter when running the script, paths like "/boot" can be
> automatically prepended to the generated u-boot commands used
> to load the files in board's memory.
>
> Also added the support to disk_image script, to enable generating
> a FAT partition with the binaries deployed in a custom folder
> within it, if the "-p" parameter is specified.
>
> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@xxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> ---
> scripts/disk_image | 37 +++++++++++++++++++++++--------------
> scripts/uboot-script-gen | 12 ++++++++----
> 2 files changed, 31 insertions(+), 18 deletions(-)
>
> diff --git a/scripts/disk_image b/scripts/disk_image
> index 12fb06b..97e798f 100755
> --- a/scripts/disk_image
> +++ b/scripts/disk_image
> @@ -539,7 +539,7 @@ function write_rootfs()
> function print_help
> {
> echo "usage:"
> - echo " $0 -c CONFIG_FILE -d UBOOT_DIRECTORY -t UBOOT_TYPE <-w
> WORK_DIRECTORY> <-s SLACK> <-a> -o IMG_FILE"
> + echo " $0 -c CONFIG_FILE -d UBOOT_DIRECTORY -t UBOOT_TYPE <-w
> WORK_DIRECTORY> <-s SLACK> <-a> -o IMG_FILE <-p PREPEND_PATH>"
> echo " $0 -h"
> echo "where:"
> echo " -c CONFIG_FILE - configuration file"
> @@ -553,6 +553,7 @@ function print_help
> echo " -s SLACK - free MB to add to each partition, default 128"
> echo " -a specifies that the size of IMG_FILE has to be aligned to the
> nearest power of two"
> echo " -o IMG_FILE - the output img file "
> + echo " -p PREPEND_PATH - path to be appended before file names to
> customize deploy location within rootfs"
> echo "Example:"
> echo " $0 -c ../config -d ./build42 -w tmp -o disk.img"
> }
> @@ -564,7 +565,7 @@ then
> exit 1
> fi
>
> -while getopts ":w:d:c:t:s:o:ah" opt
> +while getopts ":w:d:c:t:s:o:ahp:" opt
> do
> case ${opt} in
> t )
> @@ -606,6 +607,9 @@ do
> a )
> ALIGN=1
> ;;
> + p )
> + PREPEND_PATH="$OPTARG"
> + ;;
> h )
> print_help
> exit 0
> @@ -828,56 +832,61 @@ mount /dev/mapper/diskimage1 $DESTDIR/part/disk1
>
> # only copy over files that were counted for the partition size
> cd "$UBOOT_OUT"
> -cp --parents "$DOM0_KERNEL" "${DESTDIR_ABS}/part/disk1/"
> -cp --parents "$DEVICE_TREE" "${DESTDIR_ABS}/part/disk1/"
> -cp --parents "$UBOOT_SCRIPT" "${DESTDIR_ABS}/part/disk1/"
> +if [ -n "$PREPEND_PATH" ]
> +then
> + mkdir -p "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> +fi
> +
> +cp --parents "$DOM0_KERNEL" "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> +cp --parents "$DEVICE_TREE" "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> +cp --parents "$UBOOT_SCRIPT" "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
>
> if test "${DOM0_RAMDISK}"
> then
> - cp --parents "$DOM0_RAMDISK" "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "$DOM0_RAMDISK" "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> fi
> if test "$NUM_DT_OVERLAY" && test "$NUM_DT_OVERLAY" -gt 0
> then
> i=0
> while test $i -lt "$NUM_DT_OVERLAY"
> do
> - cp --parents "${DT_OVERLAY[$i]}" "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "${DT_OVERLAY[$i]}"
> "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> i=$(( $i + 1 ))
> done
> fi
> if test "${UBOOT_SOURCE}"
> then
> - cp --parents "$UBOOT_SOURCE" "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "$UBOOT_SOURCE" "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> fi
> if test "${XEN}"
> then
> - cp --parents "$XEN" "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "$XEN" "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> fi
> if test "$NUM_BOOT_AUX_FILE" && test "$NUM_BOOT_AUX_FILE" -gt 0
> then
> i=0
> while test $i -lt "$NUM_BOOT_AUX_FILE"
> do
> - cp --parents "${BOOT_AUX_FILE[$i]}" "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "${BOOT_AUX_FILE[$i]}"
> "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> i=$(( $i + 1 ))
> done
> fi
> if test "${BITSTREAM}"
> then
> - cp --parents "$BITSTREAM" "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "$BITSTREAM" "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> fi
>
> i=0
> while test $i -lt $NUM_DOMUS
> do
> - cp --parents "${DOMU_KERNEL[$i]}" "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "${DOMU_KERNEL[$i]}"
> "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> if test "${DOMU_RAMDISK[$i]}"
> then
> - cp --parents "${DOMU_RAMDISK[$i]}" "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "${DOMU_RAMDISK[$i]}"
> "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> fi
> if test "${DOMU_PASSTHROUGH_DTB[$i]}"
> then
> - cp --parents "${DOMU_PASSTHROUGH_DTB[$i]}"
> "${DESTDIR_ABS}/part/disk1/"
> + cp --parents "${DOMU_PASSTHROUGH_DTB[$i]}"
> "${DESTDIR_ABS}/part/disk1/${PREPEND_PATH}"
> fi
> i=$(( $i + 1 ))
> done
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index 085e29f..8f08cd6 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -316,7 +316,7 @@ function load_file()
> then
> echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
> else
> - echo "$LOAD_CMD $memaddr $relative_path" >> $UBOOT_SOURCE
> + echo "$LOAD_CMD $memaddr
> ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> fi
> add_size $filename
> }
> @@ -891,7 +891,7 @@ function print_help
> {
> script=`basename "$0"`
> echo "usage:"
> - echo " $script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k
> KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f]"
> + echo " $script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k
> KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
> echo " $script -h"
> echo "where:"
> echo " CONFIG_FILE - configuration file"
> @@ -907,6 +907,7 @@ function print_help
> echo " HINT - the file name of the crt and key file minus the suffix
> (ex, hint.crt and hint.key)"
> echo " U-BOOT_DTB - u-boot control dtb so that the public key gets
> added to it"
> echo " -f - enable generating a FIT image"
> + echo " PREPEND_PATH - path to be appended before file names to match
> deploy location within rootfs"
> echo " -h - prints out the help message and exits "
> echo "Defaults:"
> echo " CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var,
> DIRECTORY=$uboot_dir"
> @@ -914,7 +915,7 @@ function print_help
> echo " $script -c ../config -d ./build42 -t \"scsi load 1:1\""
> }
>
> -while getopts ":c:t:d:ho:k:u:f" opt; do
> +while getopts ":c:t:d:ho:k:u:fp:" opt; do
> case ${opt} in
> t )
> case $OPTARG in
> @@ -953,6 +954,9 @@ while getopts ":c:t:d:ho:k:u:f" opt; do
> f )
> fit_opt=y
> ;;
> + p )
> + prepend_path="$OPTARG"
> + ;;
> h )
> print_help
> exit 0
> @@ -1179,5 +1183,5 @@ then
> echo "$LOAD_CMD $fit_addr $FIT; source $fit_addr:boot_scr"
> else
> echo "Generated uboot script $UBOOT_SCRIPT, to be loaded at address
> $uboot_addr:"
> - echo "$LOAD_CMD $uboot_addr $UBOOT_SCRIPT; source $uboot_addr"
> + echo "$LOAD_CMD $uboot_addr
> ${prepend_path:+$prepend_path/}$UBOOT_SCRIPT; source $uboot_addr"
> fi
> --
> 2.35.1
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |