55 lines
1.4 KiB
Bash
Executable File
55 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright (C) 2025 Amlogic, Inc. All rights reserved.
|
|
#
|
|
|
|
source fip/variables.sh
|
|
|
|
set -e
|
|
|
|
echo "*****generate spl and tpl*****"
|
|
|
|
if [ $# -ne 6 ]; then
|
|
echo "input parameter error"
|
|
fi
|
|
|
|
if [ ! -d ${BUILD_FOLDER}spl_tpl ]; then
|
|
mkdir ${BUILD_FOLDER}spl_tpl
|
|
fi
|
|
|
|
postfix=$1
|
|
bl30_size=$2
|
|
bl31_size=$3
|
|
bl32_size=$4
|
|
bl40_size=$5
|
|
bl33_size=$6
|
|
|
|
bootloader="${FIP_BUILD_FOLDER}u-boot.bin${postfix}"
|
|
device_fip="${FIP_BUILD_FOLDER}device-fip.bin${postfix}"
|
|
device_fip_hdr="${FIP_BUILD_FOLDER}device-fip-header.bin"
|
|
spl_sto="${BUILD_FOLDER}spl_tpl/spl.sto.bin${postfix}"
|
|
spl_usb="${BUILD_FOLDER}spl_tpl/spl.usb.bin${postfix}"
|
|
tpl="${BUILD_FOLDER}spl_tpl/tpl.bin${postfix}"
|
|
|
|
bl3x_size=$((${bl31_size}+${bl32_size}+${bl40_size}))
|
|
devfip_hdr_size=`stat -c %s ${device_fip_hdr}`
|
|
bl40_off=$((devfip_hdr_size+$2+4096))
|
|
uboot_size=`stat -c %s ${bootloader}`
|
|
devfip_size=`stat -c %s ${device_fip}`
|
|
spl_size=$((uboot_size-devfip_size))
|
|
|
|
dd if=${bootloader} of=${spl_sto} bs=${spl_size} count=1 conv=notrunc status=none
|
|
dd if=${device_fip} of=${spl_sto}.tmp skip=${bl40_off} bs=1 count=${bl3x_size} conv=notrunc status=none
|
|
|
|
cat ${spl_sto}.tmp >> ${spl_sto}
|
|
|
|
dd if=${device_fip} of=${tpl} bs=1 count=${bl40_off} conv=notrunc status=none
|
|
dd if=${device_fip} of=${tpl}.tmp skip=$((bl40_off+bl3x_size)) bs=1 count=$((bl33_size+4096)) conv=notrunc status=none
|
|
cat ${tpl}.tmp >> ${tpl}
|
|
|
|
rm ${spl_sto}.tmp ${tpl}.tmp
|
|
|
|
#generate spl.usb.bin
|
|
cp ${bootloader} ${spl_usb} -f
|
|
|