linux: factor dts/dtc/dtb handling into a specific include
Fixes [BUGID #610] The powerpc linux-yocto kernels were not creating dtb images in the deploy directories. This was due to two problems: - the dtb generation rules were not being configured - the boards were not specifying a device tree in their config This change addresses the first point by factoring out the dtb generation routines into a new include that can be used by multiple recipes. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
This commit is contained in:
parent
1de7185d8e
commit
970f3959d3
|
@ -0,0 +1,27 @@
|
|||
# Support for device tree generation
|
||||
FILES_kernel_devicetree = "/boot/devicetree*"
|
||||
KERNEL_DEVICETREE_FLAGS = "-R 8 -p 0x3000"
|
||||
|
||||
python __anonymous () {
|
||||
import bb
|
||||
|
||||
devicetree = bb.data.getVar("KERNEL_DEVICETREE", d, 1) or ''
|
||||
if devicetree:
|
||||
depends = bb.data.getVar("DEPENDS", d, 1)
|
||||
bb.data.setVar("DEPENDS", "%s dtc-native" % depends, d)
|
||||
packages = bb.data.getVar("PACKAGES", d, 1)
|
||||
bb.data.setVar("PACKAGES", "%s kernel-devicetree" % packages, d)
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
if test -n "${KERNEL_DEVICETREE}"; then
|
||||
dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o devicetree ${KERNEL_DEVICETREE}
|
||||
install -m 0644 devicetree ${D}/boot/devicetree-${KERNEL_VERSION}
|
||||
install -d ${DEPLOY_DIR_IMAGE}
|
||||
install -m 0644 devicetree ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb
|
||||
cd ${DEPLOY_DIR_IMAGE}
|
||||
rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
|
||||
ln -sf ${KERNEL_IMAGE_BASE_NAME}.dtb ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
|
||||
fi
|
||||
}
|
||||
|
|
@ -18,5 +18,6 @@ addtask kernel_configme before do_configure after do_patch
|
|||
|
||||
# Pick up shared functions
|
||||
inherit kernel-yocto
|
||||
require linux-dtb.inc
|
||||
|
||||
B = "${WORKDIR}/linux-${MACHINE}-${LINUX_KERNEL_TYPE}-build"
|
||||
|
|
|
@ -3,6 +3,7 @@ SECTION = "kernel"
|
|||
LICENSE = "GPL"
|
||||
|
||||
inherit kernel
|
||||
require linux-dtb.inc
|
||||
|
||||
DEPENDS_append_em-x270 = " mtd-utils "
|
||||
|
||||
|
@ -15,21 +16,6 @@ CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rootfs
|
|||
#boot from nfs
|
||||
#CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=301 root=/dev/nfs nfsroot=172.20.3.1:/data/at91 ip=172.20.0.5:::255.255.0.0"
|
||||
|
||||
# Support for device tree generation
|
||||
FILES_kernel_devicetree = "/boot/devicetree*"
|
||||
KERNEL_DEVICETREE_FLAGS = "-R 8 -p 0x3000"
|
||||
|
||||
python __anonymous () {
|
||||
import bb
|
||||
|
||||
devicetree = bb.data.getVar("KERNEL_DEVICETREE", d, 1) or ''
|
||||
if devicetree:
|
||||
depends = bb.data.getVar("DEPENDS", d, 1)
|
||||
bb.data.setVar("DEPENDS", "%s dtc-native" % depends, d)
|
||||
packages = bb.data.getVar("PACKAGES", d, 1)
|
||||
bb.data.setVar("PACKAGES", "%s kernel-devicetree" % packages, d)
|
||||
}
|
||||
|
||||
do_configure_prepend() {
|
||||
echo "" > ${S}/.config
|
||||
|
||||
|
@ -105,14 +91,3 @@ do_install_prepend() {
|
|||
fi
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
if test -n "${KERNEL_DEVICETREE}"; then
|
||||
dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o devicetree ${KERNEL_DEVICETREE}
|
||||
install -m 0644 devicetree ${D}/boot/devicetree-${KERNEL_VERSION}
|
||||
install -d ${DEPLOY_DIR_IMAGE}
|
||||
install -m 0644 devicetree ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb
|
||||
cd ${DEPLOY_DIR_IMAGE}
|
||||
rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
|
||||
ln -sf ${KERNEL_IMAGE_BASE_NAME}.dtb ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
|
||||
fi
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue