
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5024 311d38ba-8fff-0310-9ca6-ca027cbcb966
1.7 KiB
Executable File
#! /bin/sh
Copyright (C) 2008 OpenedHand Ltd.
Contact: andrew@openedhand.com
Erase the partition given in $3 (default: rootfs) and flash the contents
of image given in $1 into the image $2.
if [ ! -r "$1" ]; then echo "Usage: $0 []" exit -1 fi
uboot_offset=0 config_offset=64 kernel_offset=256 initfs_offset=1280 rootfs_offset=2304 # chinook
This value should be selected for Diablo based firmwares
It also require patching qemu to get proper size of flash partitions
(by default qemu has Chinook split).
#rootfs_offset=3328 # diablo
if [ ! -e "$2" ]; then echo "foo" # Making an empty/erased flash image. Need a correct echo behavior. dd if=/dev/zero of=$2 bs=268435456 count=0 seek=1 bash -c 'echo -en \0377\0377\0377\0377\0377\0377\0377\0377 > .8b' cat .8b .8b > .16b # OOB is 16 bytes cat .16b .16b .16b .16b .16b .16b .16b .16b > .8sec cat .8sec .8sec .8sec .8sec .8sec .8sec .8sec .8sec > .64sec cat .64sec .64sec .64sec .64sec .64sec .64sec .64sec .64sec > .512sec cat .512sec .512sec .512sec .512sec > .2ksec cat .2ksec .2ksec .2ksec .2ksec .2ksec .2ksec .2ksec .2ksec > .16k cat .16k .16k .16k .16k .16k .16k .16k .16k > .128k # N800 NAND is 512k sectors big cat .128k .128k .128k .128k >> $2 rm -rf .8b .16b .8sec .64sec .512sec .2ksec .16k .128k fi
if [ "$3" != "" ]; then case "$3" in config) partition=/dev/mtd1 page=$config_offset ;; initfs) partition=/dev/mtd3 page=$initfs_offset ;; rootfs) partition=/dev/mtd4 page=$rootfs_offset ;; *) echo "Unknown partition $2" exit -1 esac else partition=/dev/mtd4 page=$rootfs_offset fi
dd if=$1 of=$2 conv=notrunc bs=2048 seek=$page