Files
Arch-R/projects/ROCKNIX/bootloader/mkimage
Philippe Simons 4615819c3f Grub efi refactor (#2000)
* grub: move files to /boot/grub

* add rocknix-u-boot-dt-id dts property

* Delete LinuxLoader.cfg

* install u-boot dtb

* use rocknix-u-boot-dt-id to update dtb.img

* update config.xml and mkimage

* tools/rocknix-abl: add package

install in mk_image

* sm8650/sm8550: fix update.sh

* fix S922X

* rocknix-abl: dont depend on toolchain

* fix update.sh

* Qualcomm: copy dtb with mkimage_dtb
2025-11-12 21:31:15 +01:00

104 lines
3.7 KiB
Plaintext

# 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