From 5b5c8a0cc0821865091aa35af3d9394105558421 Mon Sep 17 00:00:00 2001 From: chewitt Date: Sat, 15 Jun 2019 08:48:54 +0000 Subject: [PATCH] amlogic: updates to bootloader scripts --- projects/Amlogic/bootloader/config | 1 + projects/Amlogic/bootloader/install | 15 ++++++---- projects/Amlogic/bootloader/mkimage | 43 +++++++++++++++++++-------- projects/Amlogic/bootloader/update.sh | 34 ++++++++++++++------- 4 files changed, 65 insertions(+), 28 deletions(-) diff --git a/projects/Amlogic/bootloader/config b/projects/Amlogic/bootloader/config index 373b083518..15663b0517 100644 --- a/projects/Amlogic/bootloader/config +++ b/projects/Amlogic/bootloader/config @@ -1,3 +1,4 @@ CONFIG_LZ4=y CONFIG_LZO=y CONFIG_LZMA=y +CONFIG_BOOTDELAY=0 diff --git a/projects/Amlogic/bootloader/install b/projects/Amlogic/bootloader/install index c67dff75fc..902213dbdf 100644 --- a/projects/Amlogic/bootloader/install +++ b/projects/Amlogic/bootloader/install @@ -165,19 +165,24 @@ case "${UBOOT_SYSTEM}" in $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input $DESTDIR/bl31.img $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input $DESTDIR/bl33.bin $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input $DESTDIR/bl2_new.bin --output $DESTDIR/bl2.n.bin.sig - $FIPDIR/gxl/aml_encrypt_gxl --bootmk --output $DESTDIR/u-boot.bin.sd.bin --bl2 $DESTDIR/bl2.n.bin.sig --bl30 $DESTDIR/bl30_new.bin.enc --bl31 $DESTDIR/bl31.img.enc --bl33 $DESTDIR/bl33.bin.enc + $FIPDIR/gxl/aml_encrypt_gxl --bootmk --output $DESTDIR/u-boot.bin --bl2 $DESTDIR/bl2.n.bin.sig --bl30 $DESTDIR/bl30_new.bin.enc --bl31 $DESTDIR/bl31.img.enc --bl33 $DESTDIR/bl33.bin.enc ;; esac # Clean up after previous build rm -rf $INSTALL/usr/share/bootloader/boot.ini -rm -rf $INSTALL/usr/share/bootloader/u-boot.bin.sd.bin +rm -rf $INSTALL/usr/share/bootloader/u-boot* +# Install u-boot mkdir -p $INSTALL/usr/share/bootloader - -if [ -f $DESTDIR/u-boot.bin.sd.bin ] ; then - cp -av $DESTDIR/u-boot.bin.sd.bin $INSTALL/usr/share/bootloader +if [ $UBOOT_SYSTEM != "box" ]; then + if [ -f $DESTDIR/u-boot.bin.sd.bin ]; then + cp -av $DESTDIR/u-boot.bin.sd.bin $INSTALL/usr/share/bootloader + fi + if [ -f $DESTDIR/u-boot.bin ]; then + cp -av $DESTDIR/u-boot.bin $INSTALL/usr/share/bootloader + fi fi # Install boot.ini if it exists diff --git a/projects/Amlogic/bootloader/mkimage b/projects/Amlogic/bootloader/mkimage index 0475229660..66f1065e2f 100644 --- a/projects/Amlogic/bootloader/mkimage +++ b/projects/Amlogic/bootloader/mkimage @@ -1,22 +1,30 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) -. config/options $1 +. config/options "" DTB="$(${SCRIPTS}/uboot_helper ${PROJECT} ${DEVICE} ${UBOOT_SYSTEM} dtb)" mkimage_uboot(){ echo "image: writing u-boot to $(basename $DISK)" - dd if="$INSTALL/usr/share/bootloader/u-boot.bin.sd.bin" of="$DISK" conv=fsync,notrunc bs=1 count=112 >"$SAVE_ERROR" 2>&1 || show_error + dd if="$INSTALL/usr/share/bootloader/u-boot.bin.sd.bin" of="$DISK" conv=fsync,notrunc bs=1 count=444 >"$SAVE_ERROR" 2>&1 || show_error dd if="$INSTALL/usr/share/bootloader/u-boot.bin.sd.bin" of="$DISK" conv=fsync,notrunc bs=512 skip=1 seek=1 >"$SAVE_ERROR" 2>&1 || show_error } mkimage_autoscripts(){ - echo "image: copying autoscript files and device trees" - mcopy -s ${RELEASE_DIR}/3rdparty/bootloader/* :: + echo "image: copying autoscript files" + mcopy -s -o ${RELEASE_DIR}/3rdparty/bootloader/*script :: + mcopy -s -o ${RELEASE_DIR}/3rdparty/bootloader/*.scr :: touch "$RELEASE_DIR/3rdparty/bootloader/aml_autoscript.zip" } +mkimage_bootini(){ + if [ -f ${RELEASE_DIR}/3rdparty/bootloader/boot.ini ]; then + echo "image: copying boot.ini" + mcopy -s -o ${RELEASE_DIR}/3rdparty/bootloader/boot.ini :: + fi +} + mkimage_uEnv(){ echo "image: creating uEnv.ini" cat << EOF > "${LE_TMP}/uEnv.ini" @@ -39,25 +47,34 @@ EOF } mkimage_dtb(){ - echo "image: copying device tree" - mcopy -s ${RELEASE_DIR}/3rdparty/bootloader/dtb/$DTB :: + if [ "$DTB" != "@@DTB_NAME@@" ]; then + echo "image: copying device tree" + mcopy -s -o "${RELEASE_DIR}/3rdparty/bootloader/dtb/$DTB" :: + else + echo "image: copying device trees" + mcopy -s -o "${RELEASE_DIR}/3rdparty/bootloader/dtb" :: + fi } case "${UBOOT_SYSTEM}" in box|"") DTB="@@DTB_NAME@@" - mkimage_autoscripts mkimage_uEnv + mkimage_autoscripts + mkimage_bootini + mkimage_dtb ;; khadas*|lepotato|nanopi-k2|odroid*) + mkimage_uboot + mkimage_extlinux + mkimage_dtb + ;; + *) + mkimage_uEnv + mkimage_autoscripts + mkimage_bootini mkimage_extlinux mkimage_uboot mkimage_dtb ;; - *) - mkimage_uboot - mkimage_extlinux - mkimage_autoscripts - mkimage_uEnv - ;; esac diff --git a/projects/Amlogic/bootloader/update.sh b/projects/Amlogic/bootloader/update.sh index d58ec11bd8..924fc1d704 100644 --- a/projects/Amlogic/bootloader/update.sh +++ b/projects/Amlogic/bootloader/update.sh @@ -22,18 +22,32 @@ # mount $BOOT_ROOT rw mount -o remount,rw $BOOT_ROOT -# update device trees - for dtbfile in $BOOT_ROOT/dtb/*.dtb ; do - dtb=$(basename $dtbfile) - echo "Updating $dtb" - cp -p $SYSTEM_ROOT/usr/share/bootloader/$dtb $BOOT_ROOT/dtb/ 2>/dev/null || true - done +# update extlinux device trees + if [ -f $BOOT_ROOT/extlinux/extlinux.conf ]; then + for dtbfile in $BOOT_ROOT/*.dtb ; do + dtb=$(basename $dtbfile) + echo "Updating $dtb" + cp -p $SYSTEM_ROOT/usr/share/bootloader/$dtb $BOOT_ROOT/dtb/ 2>/dev/null || true + done + fi + +# update box device trees + if [ -f $BOOT_ROOT/uEnv.ini ]; then + for dtbfile in $BOOT_ROOT/dtb/*.dtb ; do + dtb=$(basename $dtbfile) + echo "Updating $dtb" + cp -p $SYSTEM_ROOT/usr/share/bootloader/$dtb $BOOT_ROOT/dtb/ 2>/dev/null || true + done + fi # update u-boot scripts - for scriptfile in $SYSTEM_ROOT/usr/share/bootloader/*_autoscript* $SYSTEM_ROOT/usr/share/bootloader/*.scr ; do - echo "Updating $(basename $scriptfile)" - cp -p $scriptfile $BOOT_ROOT 2>/dev/null || true - done + if [ -f $BOOT_ROOT/uEnv.ini ]; then + for scriptfile in $SYSTEM_ROOT/usr/share/bootloader/*_autoscript* $SYSTEM_ROOT/usr/share/bootloader/*.scr ; do + script=$(basename $scriptfile) + echo "Updating $script" + cp -p $SYSTEM_ROOT/usr/share/bootloader/$script $BOOT_ROOT/ 2>/dev/null || true + done + fi # mount $BOOT_ROOT ro sync