[3rdparty,v2,master,1/4] classes/image_types_digi: Image types for Digi ConnectCore modules

Submitted by Gonzalez, Alex on Nov. 23, 2018, 4:54 p.m. | Patch ID: 156591

Details

Message ID 1542992056-16014-2-git-send-email-alex.gonzalez@digi.com
State New
Headers show

Commit Message

Gonzalez, Alex Nov. 23, 2018, 4:54 p.m.
From: Javier Viguera <javier.viguera@digi.com>

This patch adds a new boot.ubifs image type that is programmed into the
boot partition of the NAND based ConnectCore modules.

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
---
 classes/image_types_digi.bbclass | 51 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 classes/image_types_digi.bbclass

Patch hide | download patch | download mbox

diff --git a/classes/image_types_digi.bbclass b/classes/image_types_digi.bbclass
new file mode 100644
index 000000000000..ab2442222712
--- /dev/null
+++ b/classes/image_types_digi.bbclass
@@ -0,0 +1,51 @@ 
+inherit image_types
+
+do_image_boot_ubifs[depends] += " \
+    mtd-utils-native:do_populate_sysroot \
+    u-boot:do_deploy \
+    virtual/kernel:do_deploy \
+"
+
+IMAGE_CMD_boot.ubifs() {
+	BOOTIMG_FILES_SYMLINK="${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin"
+	if [ -n "${KERNEL_DEVICETREE}" ]; then
+		for DTB in ${KERNEL_DEVICETREE}; do
+			# Remove potential sub-folders
+			DTB="$(basename ${DTB})"
+			if [ -e "${DEPLOY_DIR_IMAGE}/${DTB}" ]; then
+				BOOTIMG_FILES_SYMLINK="${BOOTIMG_FILES_SYMLINK} ${DEPLOY_DIR_IMAGE}/${DTB}"
+			fi
+		done
+	fi
+
+	# Create temporary folder
+	TMP_BOOTDIR="$(mktemp -d ${IMGDEPLOYDIR}/boot.XXXXXX)"
+
+	# Hard-link BOOTIMG_FILES into the temporary folder with the symlink filename
+	for item in ${BOOTIMG_FILES_SYMLINK}; do
+		orig="$(readlink -e ${item})"
+		ln "${orig}" "${TMP_BOOTDIR}/$(basename ${item})"
+	done
+
+	# Hard-link extlinux.conf file if available
+	if [ "${UBOOT_EXTLINUX}" = "1" ]; then
+		mkdir -p ${TMP_BOOTDIR}/${UBOOT_EXTLINUX_INSTALL_DIR}
+		orig="$(readlink -e ${DEPLOY_DIR_IMAGE}/${UBOOT_EXTLINUX_CONF_NAME})"
+		ln "${orig}" "${TMP_BOOTDIR}${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}"
+	fi
+
+	# Hard-link boot script if available
+	if [ -n "${UBOOT_BOOTSCRIPT}" ]; then
+		orig="$(readlink -e ${DEPLOY_DIR_IMAGE}/${UBOOT_BOOTSCRIPT})"
+		ln "${orig}" "${TMP_BOOTDIR}/${UBOOT_BOOTSCRIPT}"
+	fi
+
+	# Build UBIFS boot image out of temp folder
+	mkfs.ubifs -r "${TMP_BOOTDIR}" -o "${IMGDEPLOYDIR}/${IMAGE_NAME}.boot.ubifs" ${MKUBIFS_BOOT_ARGS}
+
+	# Remove the temporary folder
+	rm -rf ${TMP_BOOTDIR}
+}
+
+# Remove the default ".rootfs." suffix for 'boot.ubifs' images
+do_image_boot_ubifs[imgsuffix] = "."