summaryrefslogtreecommitdiffstats
path: root/meta-phosphor/classes
diff options
context:
space:
mode:
Diffstat (limited to 'meta-phosphor/classes')
-rw-r--r--meta-phosphor/classes/image-overlay.bbclass18
-rw-r--r--meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass55
2 files changed, 56 insertions, 17 deletions
diff --git a/meta-phosphor/classes/image-overlay.bbclass b/meta-phosphor/classes/image-overlay.bbclass
new file mode 100644
index 000000000..1c6137d7a
--- /dev/null
+++ b/meta-phosphor/classes/image-overlay.bbclass
@@ -0,0 +1,18 @@
+
+INITRD_IMAGE ?= "core-image-minimal-initramfs"
+INITRD ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE}-${MACHINE}.cpio.${INITRD_CTYPE}${uboot}"
+
+IMAGE_BASETYPE ?= "squashfs-xz"
+OVERLAY_BASETYPE ?= "ext4"
+
+IMAGE_TYPES_${PN} += "${IMAGE_BASETYPE}"
+
+IMAGE_TYPEDEP_overlay = "${IMAGE_BASETYPE} ${OVERLAY_BASETYPE}"
+IMAGE_TYPES_MASKED += "overlay"
+
+ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.${IMAGE_BASETYPE}"
+
+do_generate_flash[depends] += "${INITRD_IMAGE}:do_rootfs"
+do_generate_flash[depends] += "${PN}:do_rootfs"
+
+addtask generate_flash after do_rootfs before do_build
diff --git a/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass b/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
index 835e890c4..14e928923 100644
--- a/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
@@ -4,44 +4,65 @@ inherit image_types_uboot
# the image load address and entry point. Override it here.
oe_mkimage () {
- mkimage -A ${UBOOT_ARCH} -O linux -T ramdisk -C $2 -n ${IMAGE_NAME} \
+ mkimage -A ${UBOOT_ARCH} -O linux -T ramdisk -C $2 -n ${IMAGE_BASENAME} \
-a ${INITRD_IMAGE_LOADADDRESS} -e ${INITRD_IMAGE_ENTRYPOINT} \
-d ${DEPLOY_DIR_IMAGE}/$1 ${DEPLOY_DIR_IMAGE}/$1.u-boot
}
INITRD_IMAGE_ENTRYPOINT ?= "0x40800000"
INITRD_IMAGE_LOADADDRESS ?= "${INITRD_IMAGE_ENTRYPOINT}"
+INITRD_LINK_NAME = "${INITRD_IMAGE}-${MACHINE}${INITRAMFS_FSTYPE}"
FLASH_IMAGE_NAME ?= "flash-${MACHINE}-${DATETIME}"
FLASH_IMAGE_LINK ?= "flash-${MACHINE}"
FLASH_UBOOT_OFFSET ?= "0"
FLASH_KERNEL_OFFSET ?= "512"
-FLASH_ROOTFS_OFFSET ?= "3072"
+FLASH_INITRD_OFFSET ?= "3072"
+FLASH_ROFS_OFFSET ?= "4864"
+FLASH_RWFS_OFFSET ?= "28672"
+RWFS_SIZE ?= "4096"
-IMAGE_POSTPROCESS_COMMAND += "do_generate_flash"
+# $(( ${FLASH_SIZE} - ${FLASH_RWFS_OFFSET} ))
+
+# IMAGE_POSTPROCESS_COMMAND += "do_generate_flash"
do_generate_flash() {
- kernel="${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}"
- uboot="${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX}"
- rootfs="${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.cpio.${IMAGE_CTYPE}.u-boot"
- if [ ! -f $kernel ]; then
- bbfatal "Kernel file ${kernel} does not exist"
+ INITRD_CTYPE=${INITRAMFS_CTYPE}
+ ddir="${DEPLOY_DIR_IMAGE}"
+ kernel="${KERNEL_IMAGETYPE}"
+ uboot="u-boot.${UBOOT_SUFFIX}"
+ initrd="${INITRD_LINK_NAME}.cpio.${INITRD_CTYPE}"
+ uinitrd="${initrd}.u-boot"
+ 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 $uboot ]; then
- bbfatal "U-boot file ${uboot} does not exist"
+ if [ ! -f $ddir/$uboot ]; then
+ bbfatal "U-boot file ${ddir}/${uboot} does not exist"
fi
- if [ ! -f $rootfs ]; then
- bbfatal "Rootfs file ${rootfs} does not exist"
+ if [ ! -f $ddir/$initrd ]; then
+ bbfatal "initrd file ${ddir}/${initrd} does not exist"
fi
+ if [ ! -f $ddir/$rootfs ]; then
+ bbfatal "Rootfs file ${ddir}/${rootfs} does not exist"
+ fi
+
+ oe_mkimage "${initrd}" "${INITRD_CTYPE}" || bbfatal "oe_mkimage initrd"
+ dd if=/dev/zero of=${ddir}/${rwfs} bs=1k count=${RWFS_SIZE}
+ mkfs.${OVERLAY_BASETYPE} -b 4096 -F -O^huge_file ${ddir}/${rwfs} || bbfatal "mkfs rwfs"
- dst="${DEPLOY_DIR_IMAGE}/${FLASH_IMAGE_NAME}"
+ dst="${ddir}/${FLASH_IMAGE_NAME}"
rm -rf $dst
dd if=/dev/zero of=${dst} bs=1k count=${FLASH_SIZE}
- dd if=${uboot} of=${dst} bs=1k seek=${FLASH_UBOOT_OFFSET}
- dd if=${kernel} of=${dst} bs=1k seek=${FLASH_KERNEL_OFFSET}
- dd if=${rootfs} of=${dst} bs=1k seek=${FLASH_ROOTFS_OFFSET}
- dstlink="${DEPLOY_DIR_IMAGE}/${FLASH_IMAGE_LINK}"
+ dd if=${ddir}/${uboot} of=${dst} bs=1k seek=${FLASH_UBOOT_OFFSET}
+ dd if=${ddir}/${kernel} of=${dst} bs=1k seek=${FLASH_KERNEL_OFFSET}
+ dd if=${ddir}/${uinitrd} of=${dst} bs=1k seek=${FLASH_INITRD_OFFSET}
+ dd if=${ddir}/${rootfs} of=${dst} bs=1k seek=${FLASH_ROFS_OFFSET}
+ dd if=${ddir}/${rwfs} of=${dst} bs=1k seek=${FLASH_RWFS_OFFSET}
+ dstlink="${ddir}/${FLASH_IMAGE_LINK}"
rm -rf $dstlink
ln -sf ${FLASH_IMAGE_NAME} $dstlink
}
OpenPOWER on IntegriCloud