distribution/projects/Rockchip/bootloader/mkimage

120 lines
3.6 KiB
Text
Raw Normal View History

2023-01-08 22:49:32 +00:00
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-2020 Team LibreELEC (https://libreelec.tv)
# Copyright (C) 2021-present Fewtarius
source ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/options
2023-05-04 18:06:54 +00:00
case "${PKG_SOC}" in
2023-06-23 03:14:11 +00:00
rk35*|rk3399)
2023-05-04 18:06:54 +00:00
IDBSEEK="bs=512 seek=64"
;;
*)
IDBSEEK="bs=32k seek=1"
;;
esac
2023-01-08 22:49:32 +00:00
if [ -f "${RELEASE_DIR}/3rdparty/bootloader/idbloader.img" ]; then
2023-05-04 18:06:54 +00:00
echo "image: burn idbloader.img to image... (${PKG_SOC},${IDBSEEK})"
dd if="${RELEASE_DIR}/3rdparty/bootloader/idbloader.img" of="$DISK" ${IDBSEEK} conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
2023-01-08 22:49:32 +00:00
fi
2023-01-09 22:26:15 +00:00
2023-05-04 18:06:54 +00:00
2023-01-08 22:49:32 +00:00
case "${PKG_SOC}" in
rk35*)
2023-01-09 22:26:15 +00:00
if [ -f "${RELEASE_DIR}/3rdparty/bootloader/u-boot.itb" ]; then
echo "image: burn uboot.itb to image... (${PKG_SOC})"
dd if="${RELEASE_DIR}/3rdparty/bootloader/u-boot.itb" of="${DISK}" bs=512 seek=16384 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
fi
if [ -f "${RELEASE_DIR}/3rdparty/bootloader/trust.img" ]; then
echo "image: burn trust.img to image..."
dd if="${RELEASE_DIR}/3rdparty/bootloader/trust.img" of="${DISK}" bs=512 seek=24576 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
elif [ -f "${RELEASE_DIR}/3rdparty/bootloader/resource.img" ]; then
echo "image: burn resource.img to image..."
dd if="${RELEASE_DIR}/3rdparty/bootloader/resource.img" of="${DISK}" bs=512 seek=24576 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
fi
2023-05-04 18:06:54 +00:00
;;
*)
if [ -f "${RELEASE_DIR}/3rdparty/bootloader/uboot.img" ]; then
echo "image: burn uboot.img to image..."
dd if="${RELEASE_DIR}/3rdparty/bootloader/uboot.img" of="$DISK" bs=512 seek=16384 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
fi
if [ -f "${RELEASE_DIR}/3rdparty/bootloader/trust.img" ]; then
echo "image: burn trust.img to image..."
dd if="${RELEASE_DIR}/3rdparty/bootloader/trust.img" of="$DISK" bs=512 seek=24576 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
fi
;;
2023-01-08 22:49:32 +00:00
esac
#Create boot.ini
if [ "${BOOT_INI}" == true ]
then
echo "image: create boot.ini..."
cat >"${LE_TMP}/boot.ini" <<EOF
odroidgoa-uboot-config
setenv bootargs "boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} ${EXTRA_CMDLINE}"
setenv loadaddr "0x02000000"
setenv dtb_loadaddr "0x01f00000"
load mmc 1:1 \${loadaddr} KERNEL
if test \${hwrev} = 'v11'; then
if gpio input c22; then
load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb
else
load mmc 1:1 \${dtb_loadaddr} rk3326-anbernic-rg351m.dtb
fi
elif test \${hwrev} = 'v10-go3'; then
load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go3.dtb
elif test \${hwrev} = 'v10'; then
load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2.dtb
2023-08-04 21:17:40 +00:00
elif test \${hwrev} = 'rg351v'; then
2023-05-16 14:51:12 +00:00
load mmc 1:1 \${dtb_loadaddr} rk3326-anbernic-rg351v.dtb
2023-08-04 21:17:40 +00:00
elif test \${hwrev} = 'rg351mp'; then
load mmc 1:1 \${dtb_loadaddr} rk3326-anbernic-rg351mp.dtb
fi
booti \${loadaddr} - \${dtb_loadaddr}
EOF
mcopy -so "${LE_TMP}/boot.ini" ::
2023-01-08 22:49:32 +00:00
fi
mkdir -p "${LE_TMP}/extlinux"
# copy device trees to part1
for DTB in ${DEVICE_DTB[@]}
do
if [ -e "${DTB}.dtb" ]
then
2023-03-10 13:14:45 +00:00
echo "image: copy device trees to image..."
2023-01-08 22:49:32 +00:00
mcopy -o "${DTB}.dtb" ::
fi
done
if [ "${EXT_LINUX_CONF}" == true ]
then
2023-01-08 22:49:32 +00:00
mkdir -p "${LE_TMP}/extlinux"
if [ "${TRUST_LABEL}" = "resource" ]
then
2023-03-10 13:14:45 +00:00
echo "image: Set FDTDIR to /..."
FDTMODE="FDTDIR /"
else
2023-03-23 21:12:16 +00:00
echo "image: Set FDT to ${DEVICE_DTB}..."
FDTMODE="FDT /${DEVICE_DTB}.dtb"
fi
2023-03-10 13:14:45 +00:00
echo "image: Set extlinux.conf..."
2023-01-08 22:49:32 +00:00
cat << EOF > "${LE_TMP}/extlinux/extlinux.conf"
LABEL ${DISTRO}
LINUX /${KERNEL_NAME}
${FDTMODE}
2023-01-08 22:49:32 +00:00
APPEND boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} ${EXTRA_CMDLINE}
EOF
mcopy -so "${LE_TMP}/extlinux" ::
fi