68 lines
2.6 KiB
BlitzBasic
68 lines
2.6 KiB
BlitzBasic
SUMMARY = "Provide 'extlinux.conf' file for U-Boot"
|
|
LICENSE = "MIT"
|
|
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
|
|
|
DEPENDS += "u-boot-mkimage-native"
|
|
|
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
|
|
SRC_URI = "file://boot.scr.cmd"
|
|
|
|
PV = "3.1.1"
|
|
|
|
inherit kernel-arch extlinuxconf-stm32mp
|
|
|
|
B = "${WORKDIR}/build"
|
|
|
|
UBOOT_EXTLINUX_BOOTSCR = "${WORKDIR}/boot.scr.cmd"
|
|
UBOOT_EXTLINUX_BOOTSCR_IMG = "${B}/boot.scr.uimg"
|
|
|
|
UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot"
|
|
|
|
do_compile() {
|
|
# If there is only one configuration, we try to figure out if we can cleanup
|
|
# to have a single exlinux.conf file on extlinux folder (to avoid using boot.scr script).
|
|
if [ "$(find ${B}/* -maxdepth 0 -type d | wc -w)" -eq 1 ] ; then
|
|
subdir=$(find ${B}/* -maxdepth 0 -type d)
|
|
bbnote "Only one subdir found for extlinux.conf files: ${subdir}"
|
|
# If there is the <DEVICETREE>_extlinux.conf file, then rename it to 'extlinux.conf'
|
|
# and use also default subdir name for u-boot (i.e. 'extlinux')
|
|
if [ "$(echo ${STM32MP_DEVICETREE} | wc -w)" -eq 1 ] ; then
|
|
dvtree=$(echo ${STM32MP_DEVICETREE})
|
|
bbnote "Only one devicetree defined: ${dvtree}"
|
|
if [ -f ${subdir}/${dvtree}_extlinux.conf ]; then
|
|
bbnote "Moving ${dvtree}_extlinux.conf to extlinux.conf file"
|
|
mv -f ${subdir}/${dvtree}_extlinux.conf ${subdir}/extlinux.conf
|
|
fi
|
|
if [ "$(basename ${subdir})" != "extlinux" ]; then
|
|
bbnote "Moving $(basename ${subdir}) to extlinux subdir"
|
|
mv -f ${subdir} ${B}/extlinux
|
|
fi
|
|
else
|
|
if [ "$(find ${B}/* -maxdepth 1 -type f | wc -l)" -eq 1 ] ; then
|
|
if [ "$(basename ${subdir})" != "extlinux" ]; then
|
|
bbnote "Moving $(basename ${subdir}) to extlinux subdir"
|
|
mv -f ${subdir} ${B}/extlinux
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
# Generate boot script only when multiple extlinux.conf file are set
|
|
if [ "$(find ${B}/* -name '*extlinux.conf' | wc -w)" -gt 1 ]; then
|
|
mkimage -C none -A ${UBOOT_ARCH} -T script -d ${UBOOT_EXTLINUX_BOOTSCR} ${UBOOT_EXTLINUX_BOOTSCR_IMG}
|
|
fi
|
|
}
|
|
|
|
do_install() {
|
|
install -d ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}
|
|
# Install boot script
|
|
if [ -e ${UBOOT_EXTLINUX_BOOTSCR_IMG} ]; then
|
|
install -m 755 ${UBOOT_EXTLINUX_BOOTSCR_IMG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}
|
|
fi
|
|
# Install extlinux files
|
|
if ! [ -z "$(ls -A ${B})" ]; then
|
|
cp -r ${B}/* ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}
|
|
fi
|
|
}
|
|
FILES:${PN} = "${UBOOT_EXTLINUX_INSTALL_DIR}"
|