aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass
blob: 348d0a733e628ba3261ee0763d0564a2fddd5e03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
python __anonymous () {
    kerneltypes = set((d.getVar("KERNEL_IMAGETYPE") or "").split())
    kerneltypes |= set((d.getVar("KERNEL_IMAGETYPES") or "").split())
    if any(t.startswith("simpleImage.") for t in kerneltypes):
        # Enable building of simpleImage
        bb.build.addtask('do_prep_simpleimage', 'do_compile', 'do_configure', d)
    uarch = d.getVar("UBOOT_ARCH")
    if uarch == "microblaze":
        d.appendVarFlag('do_prep_simpleimage', 'depends', ' virtual/dtb:do_populate_sysroot')
}

do_prep_simpleimage[dirs] += "${B}"
do_prep_simpleimage () {
    install -d ${B}/arch/${ARCH}/boot/dts
    for type in ${KERNEL_IMAGETYPES} ; do
        if [[ "${type}" =~ "simpleImage" ]] && [ ${ARCH} = "microblaze" ]; then
            ext="${type##*.}"
            # Microblaze simpleImage only works with dts file
            cp ${RECIPE_SYSROOT}/boot/devicetree/${ext}.dts ${B}/arch/${ARCH}/boot/dts/
        fi
    done
}

do_deploy_append () {
    for type in ${KERNEL_IMAGETYPES} ; do
        if [[ "${type}" =~ "simpleImage" ]] && [ ${ARCH} = "microblaze" ]; then
            base_name=${imageType}-${KERNEL_IMAGE_NAME}
            install -m 0644 ${KERNEL_OUTPUT_DIR}/${type}.strip $deployDir/${base_name}.strip
            install -m 0644 ${KERNEL_OUTPUT_DIR}/${type}.unstrip $deployDir/${base_name}.unstrip
            symlink_name=${imageType}-${KERNEL_IMAGE_LINK_NAME}
            ln -sf ${base_name}.strip $deployDir/${symlink_name}.strip
            ln -sf ${base_name}.unstrip $deployDir/${symlink_name}.unstrip
        fi
    done
}