[oe-commits] org.oe.dev zaurus-updater: revert tosa one to standard working one

hrw commit openembedded-commits at lists.openembedded.org
Wed Oct 31 10:51:54 UTC 2007


zaurus-updater: revert tosa one to standard working one

Author: hrw at openembedded.org
Branch: org.openembedded.dev
Revision: 9035f9a5f71e2ba479a0c67ef3e603dd91fe4cee
ViewMTN: http://monotone.openembedded.org/revision/info/9035f9a5f71e2ba479a0c67ef3e603dd91fe4cee
Files:
1
packages/zaurus-updater/tosa/updater.sh
packages/zaurus-updater/zaurus-updater.bb
Diffs:

#
# mt diff -r6d9aaff80d68e9b4c822a783e92c0f41d1a5ee49 -r9035f9a5f71e2ba479a0c67ef3e603dd91fe4cee
#
# 
# 
# patch "packages/zaurus-updater/tosa/updater.sh"
#  from [d29d52cd16f3a899675b9760d3eae1c1c0c27f41]
#    to [06f64cb6b3a9177fd1226c4983ec5753cb520939]
# 
# patch "packages/zaurus-updater/zaurus-updater.bb"
#  from [eb65c6997de97b055d134ef9ed8b86d2866c399c]
#    to [8f431da1e46051baa0e8fb2ca9012101c3146fea]
# 
============================================================
--- packages/zaurus-updater/tosa/updater.sh	d29d52cd16f3a899675b9760d3eae1c1c0c27f41
+++ packages/zaurus-updater/tosa/updater.sh	06f64cb6b3a9177fd1226c4983ec5753cb520939
@@ -1,27 +1,11 @@
 #!/bin/sh
 
-#
-# One updater.sh to rule them all
-#
-# 2006.10.24 Marcin 'Hrw' Juszkiewicz
-# 2007.10.08 Marcin 'Hrw' Juszkiewicz
-# - do not allow to flash files bigger then partition size
-# - created functions for common stuff
-#
-# Totally untested!!!
-# 
 
-/bin/sh
-
 DATAPATH=$1
-
 TMPPATH=/tmp/update
 TMPDATA=$TMPPATH/tmpdata.bin
 TMPHEAD=$TMPPATH/tmphead.bin
 
-FLASHED_KERNEL=0
-FLASHED_ROOTFS=0
-UNPACKED_ROOTFS=0   # spitz only
 
 RO_MTD_LINE=`cat /proc/mtd | grep "root" | tail -n 1`
 if [ "$RO_MTD_LINE" = "" ]; then
@@ -30,7 +14,19 @@ RO_MTD=/dev/mtd$RO_MTD_NO
 RO_MTD_NO=`echo $RO_MTD_LINE | cut -d: -f1 | cut -dd -f2`
 RO_MTD_SIZE_HEX=`echo $RO_MTD_LINE | cut -d" " -f2`
 RO_MTD=/dev/mtd$RO_MTD_NO
+RO_MTDBLK=/dev/mtdblock$RO_MTD_NO
+RO_MTD_SIZE=`dc 0x$RO_MTD_SIZE_HEX 1024 /`
 
+RW_MTD_LINE=`cat /proc/mtd | grep "home" | tail -n 1`
+if [ "$RW_MTD_LINE" = "" ]; then
+    RW_MTD_LINE=`cat /proc/mtd | grep "\<NAND\>.*\<2\>" | tail -n 1`
+fi
+RW_MTD_NO=`echo $RW_MTD_LINE | cut -d: -f1 | cut -dd -f2`
+RW_MTD_SIZE_HEX=`echo $RW_MTD_LINE | cut -d" " -f2`
+RW_MTD=/dev/mtd$RW_MTD_NO
+RW_MTDBLK=/dev/mtdblock$RW_MTD_NO
+RW_MTD_SIZE=`dc 0x$RW_MTD_SIZE_HEX 1024 /`
+
 LOGOCAL_MTD=/dev/mtd1
 
 VERBLOCK=0x48000
@@ -38,326 +34,208 @@ RESULT=0
 
 RESULT=0
 
-Cleanup()
-{
-    rm -f $VTMPNAME > /dev/null 2>&1
-    rm -f $MTMPNAME > /dev/null 2>&1
-    exit $1
+Cleanup(){
+	rm -f $VTMPNAME > /dev/null 2>&1
+	rm -f $MTMPNAME > /dev/null 2>&1
+	rm $CTRLPATH/* > /dev/null 2>&1
+	rm $DATAPATH/* > /dev/null 2>&1
+	exit $1
 }
-
 trap 'Cleanup 1' 1 15
 trap '' 2 3
 
-get_dev_pcmcia()
-{
-    while read SOCKET CLASS DRIVER INSTANCE DEVS MAJOR MINOR;
-    do
-        echo $DEVS
-    done
-}
 
-get_dev_pcmcia_slot()
-{
-    grep "^$1" /var/lib/pcmcia/stab | get_dev_pcmcia
-}
+### Check model ###
+/sbin/writerominfo
+MODEL=`cat /proc/deviceinfo/product`
+if [ "$MODEL" != "SL-6000" ] > /dev/null 2>&1
+then
+	echo 'MODEL:'$MODEL
+	echo 'ERROR:Invalid model!'
+	echo 'Please reset'
+	while true
+	do
+	done
+fi
 
-check_for_hdd()
-{
-    IDE1=`get_dev_pcmcia_slot 1`
-    if [ "$IDE1" = "" ]; then
-        echo "Error!! There is no microdrive. Retrying..."
-        while [ "$IDE1" = "" ]; do
-            IDE1=`get_dev_pcmcia_slot 1`
-        done
-        echo "Microdrive found."
-    fi
+mkdir -p $TMPPATH > /dev/null 2>&1
 
-    LINUXFMT=ext3
-    MKE2FSOPT=-j
-}
+cd $DATAPATH/
 
-check_for_tar()
-{
-    ### Check that we have a valid tar
-    for TARNAME in gnu-tar GNU-TAR
-    do
-        if [ -e $DATAPATH/$TARNAME ]
-        then
-            TARBIN=$DATAPATH/$TARNAME
-        fi
-    done
+if [ -e consolescroll ]
+then
+	./consolescroll
+fi
 
-    if [ ! -e $TARBIN ]; then
-        echo 'ERRROR: Please place a valid copy of tar as "gnu-tar" on your card.'
-        echo 'Please reset'
-        while true
-        do
-        done
-    fi
-}
+for TARGETFILE in zImage zImage.bin zimage.bin ZIMAGE ZIMAGE.BIN initrd.bin INITRD.BIN mversion.bin MVERSION.BIN
+do
+	if [ -e $TARGETFILE ]
+	then
+		rm -f $TMPPATH/*.bin > /dev/null 2>&1
+		DATASIZE=`wc -c $TARGETFILE`
+		DATASIZE=`echo $DATASIZE | cut -d' ' -f1`
 
-do_rootfs_extraction()
-{
-    UNPACKED_ROOTFS=1
-    echo 'HDD root file system'
-    if [ ! -f /hdd1/NotAvailable ]; then
-	umount /hdd1
-    fi
-    echo 'Now formatting...'
-    mke2fs $MKE2FSOPT /dev/${IDE1}1 > /dev/null 2>&1
-    e2fsck -p /dev/${IDE1}1 > /dev/null
-    if [ "$?" != "0" ]; then
-	echo "ERROR: Unable to create filesystem on microdrive!"
-	exit "$?"
-    fi
+		#echo $TARGETFILE':'$DATASIZE'bytes'
+		TARGETTYPE=Invalid
+		case "$TARGETFILE" in
+		zImage) TARGETTYPE=Kernel;;
+		zimage.bin) TARGETTYPE=Kernel;;
+		ZIMAGE) TARGETTYPE=Kernel;;
+		initrd.bin) TARGETTYPE=RoFs;;
+		INITRD.BIN) TARGETTYPE=RoFs;;
+		mversion.bin) TARGETTYPE=MasterVer;;
+		MVERSION.BIN) TARGETTYPE=MasterVer;;
+		*)
+			continue
+			;;
+		esac
+		case "$TARGETTYPE" in
+		Kernel)
+			echo 'kernel'
+			ISLOGICAL=1
+			MODULEID=5
+			MODULESIZE=0x13C000
+			ADDR=`dc 0xE0000`
+			ISFORMATTED=1
+			DATAPOS=0
+			ONESIZE=524288
+			HDTOP=`expr $DATASIZE - 16`
+			/sbin/bcut -a $HDTOP -s 16 -o $TMPHEAD $TARGETFILE
+			;;
+		RoFs)
+			echo 'RO file system'
+			ISLOGICAL=0
+			MODULEID=6
+			MODULESIZE=0x1E00000
+			ADDR=0
+			ISFORMATTED=0
+			TARGET_MTD=$RO_MTD
+			DATAPOS=16
+			ONESIZE=1048576
+			/sbin/bcut -s 16 -o $TMPHEAD $TARGETFILE
+			;;
+		MasterVer)
+			echo 'Maser version'
+			MTMPNAME=$TMPPATH'/mtmp'`date '+%s'`'.tmp'
+			/sbin/nandlogical $LOGOCAL_MTD READ $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1
+			/sbin/verchg -m $MTMPNAME $TARGETFILE 0 0 > /dev/null 2>&1
+			/sbin/nandlogical $LOGOCAL_MTD WRITE $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1
+			rm -f $MTMPNAME > /dev/null 2>&1
+			echo 'Success!'
+			continue
+			;;
+		*)
+			continue;
+			;;
+		esac
 
-    mount -t $LINUXFMT -o noatime /dev/${IDE1}1 /hdd1
-    if [ "$?" != "0" ]; then
-	echo "ERROR: Unable to mount microdrive!"
-	exit "$?"
-    fi
+		#check version
+		/sbin/bcut -s 6 -o $TMPDATA $TMPHEAD
+		if [ `cat $TMPDATA` != "SHARP!" ] > /dev/null 2>&1
+		then
+			#no version info...
+			rm -f $TMPHEAD > /dev/null 2>&1
+			DATAPOS=0
+		fi
 
-    cd /hdd1
-    echo 'Now extracting...'
-    gzip -dc $DATAPATH/$TARGETFILE | $TARBIN xf -
-    if [ "$?" != "0" ]; then
-	echo "ERROR: Unable to extract root filesystem archive!"
-	exit "$?"
-    fi
+		#format?
+		if [ $ISFORMATTED = 0 ]
+		then
+			echo -n 'Flash erasing...'
+			/sbin/eraseall $TARGET_MTD 2> /dev/null > /dev/null
+			#/sbin/eraseall $TARGET_MTD 2
+			echo 'done'
+			ISFORMATTED=1
+		fi
 
-    echo 'Done.'
+		echo ''
+		echo '0%                      100%'
+		PROGSTEP=`expr $DATASIZE / $ONESIZE + 1`
+		PROGSTEP=`expr 28 / $PROGSTEP`
+		if [ $PROGSTEP = 0 ]
+		then
+			PROGSTEP=1
+		fi
 
-    # remount as RO
-    cd /
-    umount /hdd1
-    mount -t $LINUXFMT -o ro,noatime /dev/${IDE1}1 /hdd1
-}
+		#header information
+		if [ -e $TMPHEAD ]
+		then
+			VTMPNAME=$TMPPATH'/vtmp'`date '+%s'`'.tmp'
+			MTMPNAME=$TMPPATH'/mtmp'`date '+%s'`'.tmp'
+			/sbin/nandlogical $LOGOCAL_MTD READ $VERBLOCK 0x4000 $VTMPNAME > /dev/null 2>&1
+			/sbin/nandlogical $LOGOCAL_MTD READ $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1
 
-do_flashing()
-{
-    if [ $DATASIZE > $MTD_PART_SIZE ]
-    then
-	echo "ERROR: File is too big to flash!"
-	return
-    fi
+			#echo 'found header'
+			/sbin/verchg -v $VTMPNAME $TMPHEAD $MODULEID $MODULESIZE > /dev/null 2>&1
+			/sbin/verchg -m $MTMPNAME $TMPHEAD $MODULEID $MODULESIZE > /dev/null 2>&1
+		fi
 
-    if [ $ISFORMATTED = 0 ]
-    then
-	echo -n 'Flash erasing...'
-	/sbin/eraseall $TARGET_MTD > /dev/null 2>&1
-	echo 'done'
-	ISFORMATTED=1
-    fi
+		#loop
+		while [ $DATAPOS -lt $DATASIZE ]
+		do
+			#data create
+			bcut -a $DATAPOS -s $ONESIZE -o $TMPDATA $TARGETFILE
+			TMPSIZE=`wc -c $TMPDATA`
+			TMPSIZE=`echo $TMPSIZE | cut -d' ' -f1`
+			DATAPOS=`expr $DATAPOS + $TMPSIZE`
 
-    echo ''
-    echo '0%                   100%'
-    PROGSTEP=`expr $DATASIZE / $ONESIZE + 1`
-    PROGSTEP=`expr 25 / $PROGSTEP`
-    if [ $PROGSTEP = 0 ]
-    then
-	PROGSTEP=1
-    fi
+			#handle data file
+			#echo 'ADDR='$ADDR
+			#echo 'SIZE='$TMPSIZE
+			if [ $ISLOGICAL = 0 ]
+			then
+				next_addr=`/sbin/nandcp -a $ADDR $TMPDATA $TARGET_MTD  2>/dev/null | fgrep "mtd address" | cut -d- -f2 | cut -d\( -f1`
+				if [ "$next_addr" = "" ]; then
+					echo "ERROR:flash write"
+					rm $TMPDATA > /dev/null 2>&1
+					RESULT=3
+					break;
+				fi
+				ADDR=$next_addr
+			else
+				/sbin/nandlogical $LOGOCAL_MTD WRITE $ADDR $DATASIZE $TMPDATA > /dev/null 2>&1
+				ADDR=`expr $ADDR + $TMPSIZE`
+			fi
 
-    if [ -e $TMPHEAD ]
-    then
-	VTMPNAME=$TMPPATH'/vtmp'`date '+%s'`'.tmp'
-	MTMPNAME=$TMPPATH'/mtmp'`date '+%s'`'.tmp'
-	/sbin/nandlogical $LOGOCAL_MTD READ $VERBLOCK 0x4000 $VTMPNAME > /dev/null 2>&1
-	/sbin/nandlogical $LOGOCAL_MTD READ $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1
+			rm $TMPDATA > /dev/null 2>&1
 
-	/sbin/verchg -v $VTMPNAME $TMPHEAD $MODULEID $MTD_PART_SIZE > /dev/null 2>&1
-	/sbin/verchg -m $MTMPNAME $TMPHEAD $MODULEID $MTD_PART_SIZE > /dev/null 2>&1
-    fi
+			#progress
+			SPNUM=0
+			while [ $SPNUM -lt $PROGSTEP ]
+			do
+				echo -n '.'
+				SPNUM=`expr $SPNUM + 1`
+			done
+		done
 
-    #loop
-    while [ $DATAPOS -lt $DATASIZE ]
-    do
-	#data create
-	bcut -a $DATAPOS -s $ONESIZE -o $TMPDATA $TARGETFILE
-	TMPSIZE=`wc -c $TMPDATA`
-	TMPSIZE=`echo $TMPSIZE | cut -d' ' -f1`
-	DATAPOS=`expr $DATAPOS + $TMPSIZE`
+		echo ''
 
-	#handle data file
-	if [ $ISLOGICAL = 0 ]
-	then
-	    next_addr=`/sbin/nandcp -a $ADDR $TMPDATA $TARGET_MTD  2>/dev/null | fgrep "mtd address" | cut -d- -f2 | cut -d\( -f1`
-	    if [ "$next_addr" = "" ]; then
-		echo "ERROR: flash write"
-		rm $TMPDATA > /dev/null 2>&1
-		RESULT=3
-		break;
-	    fi
-	    ADDR=$next_addr
-	else
-	    /sbin/nandlogical $LOGOCAL_MTD WRITE $ADDR $DATASIZE $TMPDATA > /dev/null 2>&1
-	    ADDR=`expr $ADDR + $TMPSIZE`
-	fi
+#finish
+		rm -f $TMPPATH/*.bin > /dev/null 2>&1
 
-	rm $TMPDATA > /dev/null 2>&1
-
-	#progress
-	SPNUM=0
-	while [ $SPNUM -lt $PROGSTEP ]
-	do
-	    echo -n '.'
-	    SPNUM=`expr $SPNUM + 1`
-	done
-    done
-
-    echo ''
-
-    #finish
-    rm -f $TMPPATH/*.bin > /dev/null 2>&1
-
-    if [ $RESULT = 0 ]
-    then
-	if [ -e $VTMPNAME ]
-	then
-	    /sbin/nandlogical $LOGOCAL_MTD WRITE $VERBLOCK 0x4000 $VTMPNAME > /dev/null 2>&1
-	    rm -f $VTMPNAME > /dev/null 2>&1
+		if [ $RESULT = 0 ]
+		then
+			if [ -e $VTMPNAME ]
+			then
+				/sbin/nandlogical $LOGOCAL_MTD WRITE $VERBLOCK 0x4000 $VTMPNAME > /dev/null 2>&1
+				rm -f $VTMPNAME > /dev/null 2>&1
+			fi
+			if [ -e $MTMPNAME ]
+			then
+				/sbin/nandlogical $LOGOCAL_MTD WRITE $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1
+				rm -f $MTMPNAME > /dev/null 2>&1
+			fi
+			echo 'Success!'
+		else
+			echo 'Error!'
+#			exit $RESULT
+		fi
 	fi
-	if [ -e $MTMPNAME ]
-	then
-	    /sbin/nandlogical $LOGOCAL_MTD WRITE $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1
-	    rm -f $MTMPNAME > /dev/null 2>&1
-	fi
-	echo 'Done.'
-    else
-	echo 'Error!'
-    fi
-}
+done
 
-### Check model ###
-/sbin/writerominfo
-MODEL=`cat /proc/deviceinfo/product`
-case "$MODEL" in
-    SL-B500|SL-5600) 
-        ZAURUS='poodle'
-        ROOTFS_SIZE=0x1600000
-        ;;
-    SL-6000)
-        ZAURUS='tosa'
-        ROOTFS_SIZE=0x1E00000
-        ;;
-    SL-C1000) 
-        ZAURUS='akita'
-        ROOTFS_SIZE=0x1900000
-        ;;
-    SL-C700|SL-C750|SL-C760|SL-C860|SL-7500)
-        ZAURUS='c7x0'
-        ROOTFS_SIZE=0x1900000
-        ;;
-    SL-C3000|SL-C3100|SL-C3200)
-        ZAURUS='c3x00'
-        ROOTFS_SIZE=0x0500000
-        check_for_hdd
-        check_for_tar
-        ;;
-    *)
-        echo 'MODEL: '$MODEL 'is unsupported'
-        echo ''
-        echo 'Please reset'
-        while true
-        do
-        done
-        ;;
-esac
+#exit 0
 
-echo 'MODEL: '$MODEL' ('$ZAURUS')'
-
-mkdir -p $TMPPATH > /dev/null 2>&1
-
-cd $DATAPATH/
-
-for TARGETFILE in zimage zImage zImage.bin zimage.bin ZIMAGE ZIMAGE.BIN initrd.bin INITRD.BIN hdimage1.tgz HDIMAGE1.TGZ
+echo 'Please reset'
+while true
 do
-    if [ ! -e $TARGETFILE ]
-    then
-	continue
-    done
-
-    rm -f $TMPPATH/*.bin > /dev/null 2>&1
-    DATASIZE=`wc -c $TARGETFILE`
-    DATASIZE=`echo $DATASIZE | cut -d' ' -f1`
-
-    # make TARGETFILE lowercase
-    TARGETFILE=`echo $TERGETFILE|tr A-Z a-z`
-
-    case "$TARGETFILE" in
-
-    zimage|zimage.bin)
-        if [ $FLASHED_KERNEL != 0 ]
-        then
-            continue
-        fi
-        echo 'kernel'
-        FLASHED_KERNEL=1
-        ISLOGICAL=1
-        MODULEID=5
-        MTD_PART_SIZE=0x13C000
-        ADDR=`dc 0xE0000`
-        ISFORMATTED=1
-        DATAPOS=0
-        ONESIZE=524288
-        HDTOP=`expr $DATASIZE - 16`
-        /sbin/bcut -a $HDTOP -s 16 -o $TMPHEAD $TARGETFILE
-        do_flashing
-        ;;
-
-    initrd.bin)
-        if [ $FLASHED_ROOTFS != 0 ]
-        then
-            continue
-        fi
-        echo 'root file system'
-        FLASHED_ROOTFS=1
-        ISLOGICAL=0
-        MODULEID=6
-        MTD_PART_SIZE=$ROOTFS_SIZE
-        ADDR=0
-        ISFORMATTED=0
-        TARGET_MTD=$RO_MTD
-        DATAPOS=0
-        ONESIZE=1048576
-        DATAPOS=16
-        /sbin/bcut -s 16 -o $TMPHEAD $TARGETFILE
-        do_flashing
-        ;;
-
-    hdimage1.tgz)
-        if [ $UNPACKED_ROOTFS = 0 ]
-        then
-    	do_rootfs_extraction
-        fi
-        ;;
-
-    *)
-        ;;
-    esac
 done
-
-# starting shell to test -- remove this from final release
-/bin/sh
-
-# reboot
-exit 0
-
-# bcut usage: bcut [OPTION] <input file>
-
-# -a: start position
-# -s: cut size
-# -o: output file
-
-# ModuleId informations used by verchg Sharp binary:
-#
-# 0 - master
-# 1 - Maintaince
-# 2 - Diagnostics
-# 3 - rescue kernel
-# 4 - rescue rootfs
-# 5 - normal kernel
-# 6 - normal rootfs
-# 7 - /home/
-# 8 - parameter (whatever it means)
-#
============================================================
--- packages/zaurus-updater/zaurus-updater.bb	eb65c6997de97b055d134ef9ed8b86d2866c399c
+++ packages/zaurus-updater/zaurus-updater.bb	8f431da1e46051baa0e8fb2ca9012101c3146fea
@@ -1,7 +1,7 @@ LICENSE = "zaurus-updater"
 DESCRIPTION = "Encrypted shellscript for the Zaurus ROM update"
 DEPENDS = "encdec-updater-native"
 LICENSE = "zaurus-updater"
-PR = "r6"
+PR = "r7"
 
 PACKAGES = ""
 PACKAGE_ARCH = "${MACHINE_ARCH}"






More information about the Openembedded-commits mailing list