summaryrefslogtreecommitdiff
path: root/packages/linux/compulab-pxa270_2.6.16.bb
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/compulab-pxa270_2.6.16.bb')
-rw-r--r--packages/linux/compulab-pxa270_2.6.16.bb21
1 files changed, 19 insertions, 2 deletions
diff --git a/packages/linux/compulab-pxa270_2.6.16.bb b/packages/linux/compulab-pxa270_2.6.16.bb
index 0e9a43d9b6..928bde8f6a 100644
--- a/packages/linux/compulab-pxa270_2.6.16.bb
+++ b/packages/linux/compulab-pxa270_2.6.16.bb
@@ -1,7 +1,12 @@
SECTION = "kernel"
DESCRIPTION = "Linux kernel for the Compulab PXA270 system"
LICENSE = "GPL"
-PR = "r2"
+PR = "r3"
+
+# coreutils is required for the stat command which is used
+# to create the programming images used with USB. Version
+# >= 6.0 is required.
+DEPENDS = "coreutils-native"
# Note, the compulab package contains a binary NAND driver that is not
# EABI compatible
@@ -29,8 +34,20 @@ do_configure_prepend() {
}
do_deploy() {
+ KNAME=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin
install -d ${DEPLOY_DIR_IMAGE}
- install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}-${DATETIME}.bin
+ install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${KNAME}
+ # Create an image file that has the size prepended (used by cm-x270 BL)
+ # The following can only be done on a little endian machine
+ size=$(stat --printf=%s ${KNAME})
+ size_=$(printf '\%03o'\
+ $((size & 0x000000FF))\
+ $((size>>8 & 0x000000FF))\
+ $((size>>16 & 0x000000FF))\
+ $((size>>24 & 0x000000FF)))
+ size_=${size_}'\c'
+ echo -e $size_ > ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}-${DATETIME}.img
+ cat ${KNAME} >> ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}-${DATETIME}.img
}
do_deploy[dirs] = "${S}"