compulab-pxa270: create jffs2 images w/ summary information
authorCliff Brake <cbrake@bec-systems.com>
Tue, 3 Apr 2007 21:39:10 +0000 (21:39 +0000)
committerCliff Brake <cbrake@bec-systems.com>
Tue, 3 Apr 2007 21:39:10 +0000 (21:39 +0000)
conf/machine/compulab-pxa270.conf
packages/linux/compulab-pxa270_2.6.16.bb

index d8d9264..4febd89 100644 (file)
@@ -19,6 +19,13 @@ ROOT_FLASH_SIZE ?= "32"
 
 EXTRA_IMAGECMD_jffs2 = "--pad=0x1000000 --eraseblock=0x40000"
 
+# for NAND flash.
+EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 --pad=0x20000;\
+       sumtool -i ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+       -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs-summary.jffs2 \
+       -e 0x20000 -p\
+       "
+
 MACHINE_FEATURES = "kernel26 pcmcia usbhost usbgadget pcmcia touchscreen alsa"
 MACHINE_TASK_PROVIDER = "task-base"
 
index 0e9a43d..928bde8 100644 (file)
@@ -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}"