mio-ops/hardware/odroid-hc4/overlays/uboot/blx_fix.nix

42 lines
1 KiB
Nix

{ writeShellScript }:
writeShellScript "blx_fix" ''
#bl2 file size 41K, bl21 file size 3K (file size not equal runtime size)
#total 44K
#after encrypt process, bl2 add 4K header, cut off 4K tail
#bl30 limit 41K
#bl301 limit 12K
#bl2 limit 41K
#bl21 limit 3K, but encrypt tool need 48K bl2.bin, so fix to 7168byte.
#$7:name flag
if [ "$7" = "bl30" ]; then
declare blx_bin_limit=40960
declare blx01_bin_limit=13312
elif [ "$7" = "bl2" ]; then
declare blx_bin_limit=57344
declare blx01_bin_limit=4096
else
echo "blx_fix name flag not supported!"
exit 1
fi
# blx_size: blx.bin size, zero_size: fill with zeros
declare -i blx_size=$(du -b $1 | awk '{print int($1)}')
declare -i zero_size=$blx_bin_limit-$blx_size
dd if=/dev/zero of=$2 bs=1 count=$zero_size
cat $1 $2 >$3
rm $2
declare -i blx01_size=$(du -b $4 | awk '{print int($1)}')
declare -i zero_size_01=$blx01_bin_limit-$blx01_size
dd if=/dev/zero of=$2 bs=1 count=$zero_size_01
cat $4 $2 >$5
cat $3 $5 >$6
rm $2
exit 0
''