diff --git a/meta-phosphor/classes/image-overlay.bbclass b/meta-phosphor/classes/image-overlay.bbclass
index 64a8356..ff97605 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_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 @@
 }
 
 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
+	dd if=${S}/$rwfs of=$dst bs=1k conv=notrunc seek=${FLASH_RWFS_OFFSET}
 
-	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
+	cd ${IMGDEPLOYDIR}
+	ln -sf $flash ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.overlay
 
-	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
+	# Maintain a number of non-standard name legacy links.
+	ln -sf $flash ${IMGDEPLOYDIR}/flash-${MACHINE}
 }
-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() {
+	ddir="${IMGDEPLOYDIR}"
+	kernel="${FLASH_KERNEL_IMAGE}"
+	uboot="u-boot.${UBOOT_SUFFIX}"
+	rootfs="${IMAGE_LINK_NAME}.${IMAGE_BASETYPE}"
+	rwfs="rwfs.${OVERLAY_BASETYPE}"
 
-addtask generate_flash before do_build
+	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_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_image_complete
+addtask generate_tars before do_image_complete
