poky/scripts/poky-nokia800-flashutil
2008-08-08 07:41:33 +00:00

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