blob: 193cf8c8d2149cf8e242795a83d25e602929cf65 [file] [log] [blame]
Brad Bishop240f5462015-10-08 14:41:20 -04001inherit image_types_uboot
2
Milton D. Miller IIee7c1202016-01-20 15:36:27 -06003INITRD_LINK_NAME = "${INITRD_IMAGE}-${MACHINE}${INITRAMFS_FSTYPE}"
Brad Bishop240f5462015-10-08 14:41:20 -04004
5FLASH_IMAGE_NAME ?= "flash-${MACHINE}-${DATETIME}"
Patrick Williams42e16422016-06-21 14:22:46 -05006FLASH_IMAGE_NAME[vardepsexclude] = "DATETIME"
Brad Bishop240f5462015-10-08 14:41:20 -04007FLASH_IMAGE_LINK ?= "flash-${MACHINE}"
8
Rick Altherr8ce17d12017-01-09 15:44:57 -08009FLASH_KERNEL_IMAGETYPE ?= "fitImage"
Rick Altherr75122832016-07-18 22:03:55 -070010
Brad Bishop240f5462015-10-08 14:41:20 -040011FLASH_UBOOT_OFFSET ?= "0"
12FLASH_KERNEL_OFFSET ?= "512"
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060013FLASH_INITRD_OFFSET ?= "3072"
14FLASH_ROFS_OFFSET ?= "4864"
15FLASH_RWFS_OFFSET ?= "28672"
16RWFS_SIZE ?= "4096"
Brad Bishop240f5462015-10-08 14:41:20 -040017
Andrew Jeffery7f32d212016-02-23 23:43:17 +103018# Allow rwfs mkfs configuration through OVERLAY_MKFS_OPTS and OVERRIDES. However,
19# avoid setting 'ext4' or 'jffs2' in OVERRIDES as such raw filesystem types are
20# reserved for the primary image (and setting them currently breaks the build).
21# Instead, prefix the overlay override value with 'rwfs-' to avoid collisions.
22DISTROOVERRIDES .= ":rwfs-${OVERLAY_BASETYPE}"
23
24OVERLAY_MKFS_OPTS_rwfs-ext4 = "-b 4096 -F -O^huge_file"
25
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060026# $(( ${FLASH_SIZE} - ${FLASH_RWFS_OFFSET} ))
27
28# IMAGE_POSTPROCESS_COMMAND += "do_generate_flash"
Brad Bishop240f5462015-10-08 14:41:20 -040029
Andrew Jeffery43f931d2016-02-23 23:42:06 +103030mk_nor_image() {
31 image_dst="$1"
32 image_size_kb=$2
33 dd if=/dev/zero bs=1k count=${image_size_kb} \
34 | tr '\000' '\377' > ${image_dst}
35}
36
Brad Bishop240f5462015-10-08 14:41:20 -040037do_generate_flash() {
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060038 INITRD_CTYPE=${INITRAMFS_CTYPE}
39 ddir="${DEPLOY_DIR_IMAGE}"
Rick Altherr75122832016-07-18 22:03:55 -070040 kernel="${FLASH_KERNEL_IMAGETYPE}"
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060041 uboot="u-boot.${UBOOT_SUFFIX}"
Rick Altherr794bd3d2016-12-16 13:18:15 -080042 uinitrd="${INITRD_LINK_NAME}.cpio.${INITRD_CTYPE}.u-boot"
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060043 rootfs="${IMAGE_LINK_NAME}.${IMAGE_BASETYPE}"
44 rwfs="rwfs.${OVERLAY_BASETYPE}"
45
46 if [ ! -f $ddir/$kernel ]; then
47 bbfatal "Kernel file ${ddir}/${kernel} does not exist"
Brad Bishop240f5462015-10-08 14:41:20 -040048 fi
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060049 if [ ! -f $ddir/$uboot ]; then
50 bbfatal "U-boot file ${ddir}/${uboot} does not exist"
Brad Bishop240f5462015-10-08 14:41:20 -040051 fi
Rick Altherr8c1f9202016-12-08 13:22:36 -080052 if [ ! -f $ddir/$uinitrd ]; then
53 bbfatal "uinitrd file ${ddir}/${uinitrd} does not exist"
54 fi
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060055 if [ ! -f $ddir/$rootfs ]; then
56 bbfatal "Rootfs file ${ddir}/${rootfs} does not exist"
Brad Bishop240f5462015-10-08 14:41:20 -040057 fi
58
Andrew Jeffery43f931d2016-02-23 23:42:06 +103059 mk_nor_image ${ddir}/${rwfs} ${RWFS_SIZE}
Andrew Jeffery7f32d212016-02-23 23:43:17 +103060 if [ "${OVERLAY_BASETYPE}" != jffs2 ]; then
61 mkfs.${OVERLAY_BASETYPE} ${OVERLAY_MKFS_OPTS} ${ddir}/${rwfs} || \
62 bbfatal "mkfs rwfs"
63 fi
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060064
65 dst="${ddir}/${FLASH_IMAGE_NAME}"
Brad Bishop240f5462015-10-08 14:41:20 -040066 rm -rf $dst
Andrew Jeffery43f931d2016-02-23 23:42:06 +103067 mk_nor_image ${dst} ${FLASH_SIZE}
Milton Miller59761f32016-06-09 10:32:21 -050068 dd if=${ddir}/${uboot} of=${dst} bs=1k conv=notrunc seek=${FLASH_UBOOT_OFFSET}
69 dd if=${ddir}/${kernel} of=${dst} bs=1k conv=notrunc seek=${FLASH_KERNEL_OFFSET}
70 dd if=${ddir}/${uinitrd} of=${dst} bs=1k conv=notrunc seek=${FLASH_INITRD_OFFSET}
71 dd if=${ddir}/${rootfs} of=${dst} bs=1k conv=notrunc seek=${FLASH_ROFS_OFFSET}
72 dd if=${ddir}/${rwfs} of=${dst} bs=1k conv=notrunc seek=${FLASH_RWFS_OFFSET}
Milton D. Miller IIee7c1202016-01-20 15:36:27 -060073 dstlink="${ddir}/${FLASH_IMAGE_LINK}"
Brad Bishop240f5462015-10-08 14:41:20 -040074 rm -rf $dstlink
75 ln -sf ${FLASH_IMAGE_NAME} $dstlink
Norman Jamesb7bc04b2016-01-31 22:29:26 -060076
77 ln -sf ${FLASH_IMAGE_NAME} ${ddir}/image-bmc
78 ln -sf ${uboot} ${ddir}/image-u-boot
79 ln -sf ${kernel} ${ddir}/image-kernel
80 ln -sf ${uinitrd} ${ddir}/image-initramfs
81 ln -sf ${rootfs} ${ddir}/image-rofs
Norman Jamesf569e3f2016-02-03 16:52:09 -060082 ln -sf ${rwfs} ${ddir}/image-rwfs
Norman Jamesb7bc04b2016-01-31 22:29:26 -060083
84 tar -h -cvf ${ddir}/${MACHINE}-${DATETIME}.all.tar -C ${ddir} image-bmc
Norman Jamesf569e3f2016-02-03 16:52:09 -060085 tar -h -cvf ${ddir}/${MACHINE}-${DATETIME}.tar -C ${ddir} image-u-boot image-kernel image-initramfs image-rofs image-rwfs
Brad Bishop240f5462015-10-08 14:41:20 -040086}
Patrick Williams42e16422016-06-21 14:22:46 -050087do_generate_flash[vardepsexclude] = "DATETIME"