summaryrefslogtreecommitdiff
path: root/meta-phosphor/classes
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@us.ibm.com>2015-10-06 07:17:30 +0300
committerBrad Bishop <bradleyb@us.ibm.com>2015-10-06 07:18:48 +0300
commit038c66ae8cd6a3084aa300636585a1130063432b (patch)
tree1c7c095f2d0abe221b11e4a92181990bd2eff948 /meta-phosphor/classes
parent6c7915cf44c51c01a613f8a3d5e7d6bbecccadc6 (diff)
downloadopenbmc-038c66ae8cd6a3084aa300636585a1130063432b.tar.xz
Add kernel-cuimage class
Combined kernel / device tree kernel target emulation. Copied from kernel-uimage.
Diffstat (limited to 'meta-phosphor/classes')
-rw-r--r--meta-phosphor/classes/kernel-cuimage.bbclass45
1 files changed, 45 insertions, 0 deletions
diff --git a/meta-phosphor/classes/kernel-cuimage.bbclass b/meta-phosphor/classes/kernel-cuimage.bbclass
new file mode 100644
index 000000000..25d8f24c3
--- /dev/null
+++ b/meta-phosphor/classes/kernel-cuimage.bbclass
@@ -0,0 +1,45 @@
+# Essentially kernel-uimage, but for cuImage.
+
+inherit kernel-uboot
+
+KBUILD_HAS_CUIMAGE ?= "no"
+
+python __anonymous () {
+ kerneltype = d.getVar('KERNEL_IMAGETYPE', True)
+ if kerneltype == 'cuImage':
+ depends = d.getVar("DEPENDS", True)
+ depends = "%s u-boot-mkimage-native" % depends
+ d.setVar("DEPENDS", depends)
+
+ # Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal
+ # to kernel.bbclass . We override the variable here, since we need
+ # to build cuImage using the kernel build system if and only if
+ # KBUILD_HAS_CUIMAGE == yes. Otherwise, we pack compressed vmlinux into
+ # the cuImage .
+ if d.getVar("KBUILD_HAS_CUIMAGE", True) != 'yes':
+ d.setVar("KERNEL_IMAGETYPE_FOR_MAKE", "zImage")
+}
+
+do_uboot_mkcimage() {
+ dt="arch/${ARCH}/boot/dts/${KERNEL_DEVICETREE}"
+ if ! test -r $dt; then
+ dt=""
+ fi
+
+ if test "x${KERNEL_IMAGETYPE}" = "xcuImage" ; then
+ if test "x${KBUILD_HAS_CUIMAGE}" != "xyes" ; then
+ uboot_prep_kimage
+ cat linux.bin $dt > linux-dts.bin
+ ENTRYPOINT=${UBOOT_ENTRYPOINT}
+ if test -n "${UBOOT_ENTRYSYMBOL}"; then
+ ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \
+ awk '$3=="${UBOOT_ENTRYSYMBOL}" {print $1}'`
+ fi
+
+ uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux-dts.bin arch/${ARCH}/boot/cuImage
+ rm -f linux.bin linux-dts.bin
+ fi
+ fi
+}
+
+addtask uboot_mkcimage before do_bundle_initramfs after do_compile