summaryrefslogtreecommitdiffstats
path: root/bsp/meta-arm/meta-arm-autonomy/classes/kernel-xenguest.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-arm/meta-arm-autonomy/classes/kernel-xenguest.bbclass')
-rw-r--r--bsp/meta-arm/meta-arm-autonomy/classes/kernel-xenguest.bbclass34
1 files changed, 34 insertions, 0 deletions
diff --git a/bsp/meta-arm/meta-arm-autonomy/classes/kernel-xenguest.bbclass b/bsp/meta-arm/meta-arm-autonomy/classes/kernel-xenguest.bbclass
new file mode 100644
index 00000000..a4954aaa
--- /dev/null
+++ b/bsp/meta-arm/meta-arm-autonomy/classes/kernel-xenguest.bbclass
@@ -0,0 +1,34 @@
+# Create a xenguest image containing the kernel with initramfs when
+# initramfs is activated
+# This is done using kernel-fitimage as model
+# To activate this, kernel-xenguest must be added to KERNEL_CLASSES
+
+inherit xenguest-image
+
+# use a local copy to pack all together
+XENGUEST_IMAGE_DEPLOY_DIR = "${WORKDIR}/tmp-xenguest"
+
+python __anonymous () {
+ # only if xenguest image type is present
+ if bb.utils.contains('IMAGE_FSTYPES', 'xenguest', '1', '0', d):
+ # only if initramfs bundle is activated
+ if d.getVar('INITRAMFS_IMAGE') and d.getVar('INITRAMFS_IMAGE_BUNDLE') == "1":
+ if not bb.utils.contains('KERNEL_IMAGETYPES', 'Image', '1', '0', d):
+ bb.fatal("xenguest image type with initramfs require Image kernel image type")
+ bb.build.addtask('do_assemble_xenguest_initramfs', 'do_deploy', 'do_bundle_initramfs', d)
+}
+
+do_assemble_xenguest_initramfs() {
+ xenguest_image_clone
+ call_xenguest_mkimage partial --xen-kernel=${B}/${KERNEL_OUTPUT_DIR}/Image.initramfs
+ rm -f ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest
+ call_xenguest_mkimage pack ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest
+}
+do_assemble_xenguest_initramfs[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
+
+kernel_do_deploy_append() {
+ if [ -f "${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest" ]; then
+ install -m 0644 ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest "$deployDir/Image-${INITRAMFS_NAME}.xenguest"
+ ln -snf Image-${INITRAMFS_NAME}.xenguest $deployDir/Image-${INITRAMFS_LINK_NAME}.xenguest
+ fi
+}