summaryrefslogtreecommitdiffstats
path: root/meta-phosphor/classes
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2017-07-24 15:05:05 -0400
committerPatrick Williams <patrick@stwcx.xyz>2017-08-01 19:02:13 +0000
commit527177383e35ef7652cca498a57801d8797badc1 (patch)
tree84f115daa68a7b7c9c10d3e2069396cd02384780 /meta-phosphor/classes
parent97cce000ece7fbe9b1fcebd8b265e978f826fff5 (diff)
downloadtalos-openbmc-527177383e35ef7652cca498a57801d8797badc1.tar.gz
talos-openbmc-527177383e35ef7652cca498a57801d8797badc1.zip
overlay: Minor refactoring
Use IMGDEPLOYDIR rather than DEPLOY_DIR_IMAGE to leverage sstate. Add dependency on kernel deploy. Add dependency on rootfs do_image_<> task. Adopt standard artifact naming conventions for tars, flash image. Remove unnecessary checks for missing artifacts provided by dependencies. Don't deploy intermediate files. Split tar generation into its own task. Change-Id: I63385924e38287db20426c6e74dcdac84a4abc33 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-phosphor/classes')
-rw-r--r--meta-phosphor/classes/image-overlay.bbclass100
1 files changed, 63 insertions, 37 deletions
diff --git a/meta-phosphor/classes/image-overlay.bbclass b/meta-phosphor/classes/image-overlay.bbclass
index 64a835668..ff97605b9 100644
--- a/meta-phosphor/classes/image-overlay.bbclass
+++ b/meta-phosphor/classes/image-overlay.bbclass
@@ -1,3 +1,7 @@
+# Constructs a bootable, fixed-offset mtd image with u-boot
+# bootloader, kernel fitimage, read only root filesystem,
+# and writeable overlay filesystem.
+
IMAGE_BASETYPE ?= "squashfs-xz"
OVERLAY_BASETYPE ?= "jffs2"
@@ -6,10 +10,6 @@ IMAGE_TYPES += "overlay"
IMAGE_TYPEDEP_overlay = "${IMAGE_BASETYPE}"
IMAGE_TYPES_MASKED += "overlay"
-FLASH_IMAGE_NAME ?= "flash-${MACHINE}-${DATETIME}"
-FLASH_IMAGE_NAME[vardepsexclude] = "DATETIME"
-FLASH_IMAGE_LINK ?= "flash-${MACHINE}"
-
FLASH_KERNEL_IMAGE ?= "fitImage-${INITRAMFS_IMAGE}-${MACHINE}.bin"
FLASH_UBOOT_OFFSET ?= "0"
@@ -36,51 +36,77 @@ mk_nor_image() {
}
do_generate_flash() {
- ddir="${DEPLOY_DIR_IMAGE}"
+ ddir="${IMGDEPLOYDIR}"
kernel="${FLASH_KERNEL_IMAGE}"
uboot="u-boot.${UBOOT_SUFFIX}"
rootfs="${IMAGE_LINK_NAME}.${IMAGE_BASETYPE}"
rwfs="rwfs.${OVERLAY_BASETYPE}"
- if [ ! -f $ddir/$kernel ]; then
- bbfatal "Kernel file $ddir/$kernel does not exist"
- fi
- if [ ! -f $ddir/$uboot ]; then
- bbfatal "U-boot file $ddir/$uboot does not exist"
- fi
- if [ ! -f $ddir/$rootfs ]; then
- bbfatal "Rootfs file $ddir/$rootfs does not exist"
- fi
+ flash="${IMAGE_NAME}.overlay"
- mk_nor_image $ddir/$rwfs ${RWFS_SIZE}
+ mk_nor_image ${S}/$rwfs ${RWFS_SIZE}
if [ "${OVERLAY_BASETYPE}" != jffs2 ]; then
- mkfs.${OVERLAY_BASETYPE} ${OVERLAY_MKFS_OPTS} $ddir/$rwfs || \
+ mkfs.${OVERLAY_BASETYPE} ${OVERLAY_MKFS_OPTS} ${S}/$rwfs || \
bbfatal "mkfs rwfs"
fi
- dst="$ddir/${FLASH_IMAGE_NAME}"
- rm -rf $dst
+ # Assemble the flash image
+ dst="$ddir/$flash"
mk_nor_image $dst ${FLASH_SIZE}
- dd if=$ddir/$uboot of=$dst bs=1k conv=notrunc seek=${FLASH_UBOOT_OFFSET}
- dd if=$ddir/$kernel of=$dst bs=1k conv=notrunc seek=${FLASH_KERNEL_OFFSET}
+ dd if=${DEPLOY_DIR_IMAGE}/$uboot of=$dst bs=1k conv=notrunc seek=${FLASH_UBOOT_OFFSET}
+ dd if=${DEPLOY_DIR_IMAGE}/$kernel of=$dst bs=1k conv=notrunc seek=${FLASH_KERNEL_OFFSET}
dd if=$ddir/$rootfs of=$dst bs=1k conv=notrunc seek=${FLASH_ROFS_OFFSET}
- dd if=$ddir/$rwfs of=$dst bs=1k conv=notrunc seek=${FLASH_RWFS_OFFSET}
- dstlink="$ddir/${FLASH_IMAGE_LINK}"
- rm -rf $dstlink
- ln -sf ${FLASH_IMAGE_NAME} $dstlink
-
- ln -sf ${FLASH_IMAGE_NAME} $ddir/image-bmc
- ln -sf $uboot $ddir/image-u-boot
- ln -sf $kernel $ddir/image-kernel
- ln -sf $rootfs $ddir/image-rofs
- ln -sf $rwfs $ddir/image-rwfs
-
- tar -h -cvf $ddir/${MACHINE}-${DATETIME}.all.tar -C $ddir image-bmc
- tar -h -cvf $ddir/${MACHINE}-${DATETIME}.tar -C $ddir image-u-boot image-kernel image-rofs image-rwfs
+ dd if=${S}/$rwfs of=$dst bs=1k conv=notrunc seek=${FLASH_RWFS_OFFSET}
+
+ cd ${IMGDEPLOYDIR}
+ ln -sf $flash ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.overlay
+
+ # Maintain a number of non-standard name legacy links.
+ ln -sf $flash ${IMGDEPLOYDIR}/flash-${MACHINE}
+}
+
+do_generate_tars() {
+ ddir="${IMGDEPLOYDIR}"
+ kernel="${FLASH_KERNEL_IMAGE}"
+ uboot="u-boot.${UBOOT_SUFFIX}"
+ rootfs="${IMAGE_LINK_NAME}.${IMAGE_BASETYPE}"
+ rwfs="rwfs.${OVERLAY_BASETYPE}"
+
+ flash="${IMAGE_NAME}.overlay"
+ alltar="${IMAGE_NAME}.all.tar"
+ tar="${IMAGE_NAME}.tar"
+
+ # Create some links to help make the tar archives
+ ln -sf $ddir/${IMAGE_LINK_NAME}.overlay ${S}/image-bmc
+ ln -sf ${DEPLOY_DIR_IMAGE}/$uboot ${S}/image-u-boot
+ ln -sf ${DEPLOY_DIR_IMAGE}/$kernel ${S}/image-kernel
+ ln -sf $ddir/$rootfs ${S}/image-rofs
+ ln -sf $rwfs ${S}/image-rwfs
+
+ # Create the tar archives
+ tar -h -cvf $ddir/$alltar -C ${S} image-bmc
+ tar -h -cvf $ddir/$tar -C ${S} image-u-boot image-kernel image-rofs image-rwfs
+
+ cd ${IMGDEPLOYDIR}
+ ln -sf $alltar ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.all.tar
+ ln -sf $tar ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.tar
+
+ # Maintain a number of non-standard name legacy links.
+ ln -sf $tar ${IMGDEPLOYDIR}/${MACHINE}-${DATETIME}.tar
+ ln -sf $alltar ${IMGDEPLOYDIR}/${MACHINE}-${DATETIME}.all.tar
}
-do_generate_flash[vardepsexclude] = "DATETIME"
-do_generate_flash[depends] += "${PN}:do_image_complete"
-do_generate_flash[depends] += "u-boot:do_populate_sysroot"
+do_generate_tars[vardepsexclude] = "DATETIME"
+
+do_generate_flash[depends] += " \
+ ${PN}:do_image_${@d.getVar('IMAGE_BASETYPE', True).replace('-', '_')} \
+ virtual/kernel:do_deploy \
+ u-boot:do_populate_sysroot \
+ "
+
+do_generate_tars[depends] += " \
+ ${PN}:do_generate_flash \
+ "
-addtask generate_flash before do_build
+addtask generate_flash before do_image_complete
+addtask generate_tars before do_image_complete
OpenPOWER on IntegriCloud