summaryrefslogtreecommitdiffstats
path: root/classes/kernel-imximage.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'classes/kernel-imximage.bbclass')
-rw-r--r--classes/kernel-imximage.bbclass41
1 files changed, 41 insertions, 0 deletions
diff --git a/classes/kernel-imximage.bbclass b/classes/kernel-imximage.bbclass
new file mode 100644
index 00000000..efc819f0
--- /dev/null
+++ b/classes/kernel-imximage.bbclass
@@ -0,0 +1,41 @@
1DEPENDS_append = ' u-boot-mkimage-native'
2
3IMXIMAGE_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}"
4
5imx_mkimage() {
6 uboot-mkimage -n $1 -T imximage -e ${IMXIMAGE_ENTRYPOINT} -d $2 $2.imx
7}
8
9gen_imximage() {
10 if [ -z "${IMXIMAGE_ENTRYPOINT}" ]; then
11 bbfatal "IMXIMAGE_ENTRYPOINT must have a valid value"
12 fi
13
14 for DTB in ${KERNEL_DEVICETREE}; do
15 DTB=`normalize_dtb "${DTB}"`
16 DTB_EXT=${DTB##*.}
17 DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
18 base_name="zImage-"${KERNEL_IMAGE_BASE_NAME}
19 symlink_name="zImage-"${KERNEL_IMAGE_SYMLINK_NAME}
20 DTB_NAME=`echo ${base_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
21 DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
22 for DCD in dcd-${DTB}.cfg dcd.cfg; do
23 if [ -e "${WORKDIR}/${DCD}" ]; then
24 if [ -e ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT}.bin ]; then
25 imx_mkimage ${WORKDIR}/${DCD} ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT}.bin
26 ln -sf ${DTB_NAME}.${DTB_EXT}.bin.imx ${DEPLOYDIR}/$type-${DTB_BASE_NAME}.${DTB_EXT}.bin.imx
27 fi
28
29 if [ -e ${DEPLOYDIR}/zImage-${INITRAMFS_BASE_NAME}-${DTB_BASE_NAME}.${DTB_EXT}.bin ]; then
30 imx_mkimage ${WORKDIR}/${DCD} ${DEPLOYDIR}/zImage-${INITRAMFS_BASE_NAME}-${DTB_BASE_NAME}.${DTB_EXT}.bin
31 ln -sf zImage-${INITRAMFS_BASE_NAME}-${DTB_BASE_NAME}.${DTB_EXT}.bin.imx \
32 ${DEPLOYDIR}/zImage-initramfs-${DTB_BASE_NAME}.${DTB_EXT}-${MACHINE}.bin.imx
33 fi
34 fi
35 done
36 done
37}
38
39do_deploy_append() {
40 gen_imximage
41}