From 240f5467751fb39850fe28d8d8b731f90f557897 Mon Sep 17 00:00:00 2001 From: Brad Bishop Date: Thu, 8 Oct 2015 14:41:20 -0400 Subject: Add uboot image type specialization Combines all the build artifacts into a single flash image. --- .../obmc-phosphor-image_types_uboot.bbclass | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass diff --git a/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass b/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass new file mode 100644 index 000000000..6652f3b52 --- /dev/null +++ b/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass @@ -0,0 +1,47 @@ +inherit image_types_uboot + +# oe_mkimage() was defined in image_types_uboot. Howver, it does not consider +# 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} \ + -a ${INITRD_IMAGE_LOADADDRESS} -e ${INITRD_IMAGE_ENTRYPOINT} \ + -d ${DEPLOY_DIR_IMAGE}/$1 ${DEPLOY_DIR_IMAGE}/$1.u-boot +} + +INITRD_IMAGE_ENTRYPOINT ?= "0x42000000" +INITRD_IMAGE_LOADADDRESS ?= "${INITRD_IMAGE_ENTRYPOINT}" + +FLASH_IMAGE_NAME ?= "flash-${MACHINE}-${DATETIME}" +FLASH_IMAGE_LINK ?= "flash-${MACHINE}" + +FLASH_UBOOT_OFFSET ?= "0" +FLASH_KERNEL_OFFSET ?= "512" +FLASH_ROOTFS_OFFSET ?= "3072" + +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" + fi + if [ ! -f $uboot ]; then + bbfatal "U-boot file ${uboot} does not exist" + fi + if [ ! -f $rootfs ]; then + bbfatal "Rootfs file ${rootfs} does not exist" + fi + + dst="${DEPLOY_DIR_IMAGE}/${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}" + rm -rf $dstlink + ln -sf ${FLASH_IMAGE_NAME} $dstlink +} -- cgit v1.2.1