# SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX) . config/functions mkimage_uboot() { if [ -f "${RELEASE_DIR}/3rdparty/bootloader/${SUBDEVICE}_uboot.bin" ]; then # RK3566-Generic and RK3566-Powkiddy_x55 echo "image: writing ${SUBDEVICE}_uboot.bin to $(basename "${DISK}")..." dd if="${RELEASE_DIR}/3rdparty/bootloader/${SUBDEVICE}_uboot.bin" of="${DISK}" bs=512 seek=64 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error elif [ -f "${RELEASE_DIR}/3rdparty/bootloader/uboot.bin" ]; then echo "image: writing uboot.bin to $(basename "${DISK}")..." dd if="${RELEASE_DIR}/3rdparty/bootloader/uboot.bin" of="${DISK}" bs=512 seek=64 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error elif [ -f "${RELEASE_DIR}/3rdparty/bootloader/u-boot.bin" ]; then # S922X echo "image: writing u-boot.bin to $(basename "${DISK}")..." dd if="${RELEASE_DIR}/3rdparty/bootloader/u-boot.bin" of="${DISK}" bs=512 seek=1 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error elif [ -f "${RELEASE_DIR}/3rdparty/bootloader/u-boot-sunxi-with-spl.bin" ]; then # H700 echo "image: writing u-boot-sunxi-with-spl.bin to $(basename "${DISK}")..." dd if="${RELEASE_DIR}/3rdparty/bootloader/u-boot-sunxi-with-spl.bin" of="${DISK}" bs=1K seek=8 conv=fsync,notrunc >"${SAVE_ERROR}" 2>&1 || show_error elif [ -f "${RELEASE_DIR}/3rdparty/bootloader/rocknix-u-boot.img" ]; then # SM8650 & SM8550 echo "image: copying rocknix u-boot files..." mcopy -o "${RELEASE_DIR}/3rdparty/bootloader/rocknix-u-boot.img" :: mcopy -s -o "${RELEASE_DIR}/3rdparty/bootloader/device_trees" :: else echo "ERROR no u-boot file found for ${SUBDEVICE}" fi } mkimage_extlinux() { if [ -d "${RELEASE_DIR}/3rdparty/bootloader/extlinux" ]; then echo "image: copying custom extlinux.conf..." mcopy -s -o "${RELEASE_DIR}/3rdparty/bootloader/extlinux" :: else local fdt_type fdt_type=$(get_fdt_type) echo "image: set extlinux.conf to $fdt_type /$(get_fdt)..." mkdir -p "${IMG_TMP}/extlinux" cat << EOF > "${IMG_TMP}/extlinux/extlinux.conf" LABEL ${DISTRO} LINUX /${KERNEL_NAME} ${fdt_type} /$(get_fdt) APPEND boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} ${EXTRA_CMDLINE} EOF echo "image: copying extlinux.conf..." mcopy -s -o "${IMG_TMP}/extlinux" :: fi } mkimage_bootscr() { if [ -f "${RELEASE_DIR}/3rdparty/bootloader/${SUBDEVICE}_boot.scr" ]; then echo "image: copying ${SUBDEVICE}_boot.scr..." mcopy "${RELEASE_DIR}/3rdparty/bootloader/${SUBDEVICE}_boot.scr" ::/boot.scr else echo "cannot find ${RELEASE_DIR}/3rdparty/bootloader/${SUBDEVICE}_boot.scr" exit 2 fi } mkimage_dtb() { echo "image: copying device trees..." case "$DEVICE" in RK3326) mcopy "${RELEASE_DIR}/3rdparty/bootloader/device_trees/"*.dtb :: ;; SM8550|SM8650|SM8250|SDM845) mcopy -s -o "${RELEASE_DIR}/3rdparty/bootloader/boot" :: ;; S922X) mcopy "${RELEASE_DIR}/3rdparty/bootloader/"*.dtb :: ;; *) mcopy -s "${RELEASE_DIR}/3rdparty/bootloader/device_trees" :: ;; esac if [ -d "${RELEASE_DIR}/3rdparty/bootloader/overlays" ]; then echo "image: copying device tree overlays..." mcopy -s "${RELEASE_DIR}/3rdparty/bootloader/overlays" :: fi } mkimage_gou_extras() { echo "image: copying res..." mcopy "${RELEASE_DIR}/3rdparty/bootloader/res" :: } mkimage_grub() { echo "image: copying grub files and dtb..." mcopy -s -o "${RELEASE_DIR}/3rdparty/bootloader/EFI" :: } mkimage_abl() { echo "image: copying ROCKNIX ABL..." mcopy "${RELEASE_DIR}/3rdparty/bootloader/rocknix_abl" :: } mkimage_all