Author: wmb
Date: Sun Oct 16 01:21:46 2011
New Revision: 2611
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2611
Log:
Ext2 filesystem - added test script.
Added:
ofw/fs/ext2fs/ext2test.fth
ofw/fs/ext2fs/ext2test.sh
Added: ofw/fs/ext2fs/ext2test.fth
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ ofw/fs/ext2fs/ext2test.fth Sun Oct 16 01:21:46 2011 (r2611)
@@ -0,0 +1,109 @@
+\ OLPC boot script
+
+\ dev.laptop.org #6210 test script
+\ Exercises several OFW features on an ext2 filesystem on a USB stick
+\ see associated test.sh
+
+visible
+no-page
+start-logging
+
+.( test.fth ticket #6210 ofw ext2 filesystem tests ) cr
+
+show-aborts on
+
+.( test 0001 define u: ) cr
+volume: u:
+
+.( test 0002 reference u: ) cr
+u:
+
+\ .( test 0003 directory ) cr
+\ dir
+
+\ .( test 0004 directory by name ) cr
+\ dir *.fth
+
+.( test 0005 chdir down ) cr
+chdir directory
+
+.( test 0006 directory of subdirectory after chdir ) cr
+dir
+
+.( test 0007 chdir up ) cr
+chdir ..
+
+.( test 0008 directory of main directory after chdir ) cr
+dir
+
+.( test 0009 disk free ) cr
+disk-free u:\
+
+.( test 0010 display a file ) cr
+more u:\hello
+
+.( test 0011 display a file with a hyphen in file name ) cr
+more u:\hello-world
+
+.( test 0012 display a link ) cr
+more u:\hello-link
+
+.( test 0013 directory of subdirectory by name ) cr
+dir u:\directory
+
+.( test 0014 display a file in subdirectory ) cr
+more u:\directory\hw
+
+.( test 0015 copy a file ) cr
+copy u:\hello-world u:\copy
+
+.( test 0016 display the copy ) cr
+more u:\copy
+
+.( test 0017 rename the copy ) cr
+rename u:\copy u:\renamed
+
+.( test 0018 delete the renamed copy ) cr
+del u:\renamed
+
+.( test 0019 delete a non-existent file ) cr
+del u:\vapour
+
+: load-file ( "devspec" -- adr len )
+ safe-parse-word
+ open-dev dup 0= abort" Can't open it" ( ih )
+ >r ( r: ih )
+ load-base " load" r@ $call-method ( len r: ih )
+ r> close-dev ( len )
+ load-base swap
+;
+
+: calculate-md5 ( adr len -- adr len )
+ $md5digest1 ;
+
+: print-md5 ( adr len -- )
+ bounds ?do i c@ (.2) type loop space ;
+
+: md5sum ( "devspec" -- ) load-file calculate-md5 print-md5 ;
+
+.( test 0020 calculate md5sum of a test file ) cr
+md5sum u:\hello-world cr
+
+.( test 0021 calculate md5sum of a test file and save to a file ) cr
+del u:\hello-world.md5
+load-file u:\hello-world calculate-md5 to-file u:\hello-world.md5 print-md5
+
+.( test 0022 dump forth dictionary to file ) cr
+del u:\words.txt
+to-file u:\words.txt words
+
+\ reference: forth/lib/tofile.fth
+\ to-file u:\words words
+\ append-to-file u:\words words
+
+.( done ) cr
+save-log u:\ofw.log
+stop-logging
+
+\ .( boot ) cr
+\ boot n:\boot\olpc.fth
Added: ofw/fs/ext2fs/ext2test.sh
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ ofw/fs/ext2fs/ext2test.sh Sun Oct 16 01:21:46 2011 (r2611)
@@ -0,0 +1,160 @@
+#!/bin/bash
+# dev.laptop.org #6210 test script
+#
+# Creates an ext2 filesystem on a USB stick for testing with OFW
+#
+# Instructions for use:
+# - copy this file and ext2test.fth to a Linux machine
+# - turn off X with 'telinit 4',
+# - ensure that no USB stick is mounted
+# - insert USB stick, wait seven seconds settling time,
+# - execute this script "ext2test.sh /dev/sda",
+# - remove USB stick,
+# - insert in test laptop,
+# - power up,
+# - examine output.
+#
+set -e
+
+function help {
+ cat <<EOF
+Usage: test.sh [options] device
+ --help display this help
+ --end N partition end specification for parted, -1s is the
+ default and means full size, or use a number followed
+ by s for a given number of sectors, see the parted(8)
+ unit command.
+ device the device you wish to write to, e.g. /dev/sdZ
+EOF
+}
+
+DEVICE=
+END=-1s
+while [ ! -z "${1}" ]; do
+ case "${1}" in
+ --end)
+ shift
+ END=${1}
+ shift
+ echo "test.sh: partition end to be set to ${END}"
+ ;;
+ --help)
+ shift
+ help
+ exit 0
+ ;;
+ *)
+ DEVICE=${1}
+ shift
+# if [ ! -e ${DEVICE} ]; then
+# echo "test.sh: no such device ${DEVICE}"
+# exit 1
+# fi
+ esac
+
+done
+
+if [ -z "${DEVICE}" ]; then
+ echo "test.sh: no device specified"
+ help
+ exit 1
+fi
+
+if [ ! -b "${DEVICE}" ]; then
+echo REMAKING FILE
+rm -f "${DEVICE}"
+dd if=/dev/zero of=${DEVICE} bs=512 count=1 seek=8388000 2> /dev/null #8388608
+# dd if=/dev/zero of=${DEVICE} bs=512 count=1 seek=4194303 2> /dev/null
+#dd if=/dev/zero of=${DEVICE} bs=512 count=1 seek=2097151 2> /dev/null
+#dd if=/dev/zero of=${DEVICE} bs=512 count=1 seek=1050000 2> /dev/null
+chmod 666 ${DEVICE}
+fi
+# if [ ! -b "${DEVICE}" -a ! -f "${DEVICE}" ]; then
+# Need to parse ${END} to remove the trailing s if it exists, or if not, to change the bs units
+# dd if=/dev/zero of=${DEVICE} bs=512 count=1 seek=${END} status=noxfer 2> /dev/null
+# fi
+
+echo -n "zero overwrite partition table ... "
+dd if=/dev/zero of=${DEVICE} bs=1024 count=256 status=noxfer conv=notrunc 2> /dev/null
+echo "ok"
+
+echo -n "create new partition table ... "
+/sbin/parted --script ${DEVICE} mklabel msdos
+echo "ok"
+
+# if we do not do this, the old partition in /dev does not go away
+echo -n "probe partition table ... "
+/sbin/partprobe ${DEVICE}
+echo "ok"
+
+# This commented-out block of code is unreliable
+# echo -n "wait for old partition to go ... "
+# declare -i c
+# c=0
+# until [ ! -e ${DEVICE}1 ]; do
+# sleep 0.1
+# echo -n .
+# c=c+1
+# if [ ${c} -gt 10 ]; then
+# # sometimes it needs a harder whack
+# /sbin/partprobe -s > /dev/null 2> /dev/null
+# sleep 0.1
+# fi
+# done
+# echo "ok"
+
+echo -n "create new partition ... "
+echo /sbin/parted --script -- ${DEVICE} mkpart primary ext2 0 ${END}
+/sbin/parted --script -- ${DEVICE} mkpart primary ext2 0 ${END} || true
+echo "ok"
+
+if [ -b ${DEVICE} ] ; then
+ PARTITION=${DEVICE}1
+
+ echo -n "wait for new partition to arrive ... "
+ until [ -e ${PARTITION} ]; do sleep 0.1; echo -n .; done
+ echo "ok"
+else
+ OFFSET=512
+ PARTITION=`/sbin/losetup -o ${OFFSET} -f -s ${DEVICE}`
+ echo partition = $PARTITION
+fi
+
+echo -n "make filesystem ... "
+#/sbin/mke2fs -n -b 4096 -q ${PARTITION}
+# /sbin/mke2fs -n -j -O dir_index,^huge_file -E resize=8G -m 1 -b 4096 -q ${PARTITION}
+/sbin/mke2fs -n -j -O dir_index -m 1 -b 1024 -q ${PARTITION}
+echo "made"
+
+# we occasionally get
+# mount: you must specify the filesystem type
+# despite having just created the filesystem
+echo -n "mount filesystem ... "
+until mount ${PARTITION} /mnt; do sleep 0.1; done
+echo "mounted"
+
+echo -n "create test content and unmount ... "
+
+mkdir /mnt/boot
+cp ext2test.fth /mnt/boot/olpc.fth
+
+cd /mnt
+touch touched
+echo hello > hello
+echo hello world > hello-world
+date > date
+ln -s hello hello-link
+mkdir directory
+ln -s directory directory-link
+touch directory/touched
+echo hello world down here > directory/hw
+mkfifo fifo
+mknod node b 1 1
+cd
+umount /mnt
+
+if [ ! -b ${DEVICE} ] ; then
+ /sbin/losetup -d ${PARTITION}
+fi
+
+echo "finished"
Author: wmb
Date: Sat Oct 15 01:53:00 2011
New Revision: 2606
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2606
Log:
OLPC XO-1.75 - trac #11314 - suppress CForth complaint when using early serial interaction with OFW. The fix also requires a corresponding change to CForth.
Modified:
cpu/arm/olpc/1.75/fw.bth
Modified: cpu/arm/olpc/1.75/fw.bth
==============================================================================
--- cpu/arm/olpc/1.75/fw.bth Fri Oct 14 04:21:56 2011 (r2605)
+++ cpu/arm/olpc/1.75/fw.bth Sat Oct 15 01:53:00 2011 (r2606)
@@ -120,6 +120,8 @@
\ d# 1000 i-key-wait if
rotate-button? if
protect-fw
+ \ Make the frame buffer visible so CForth won't complain about OFW not starting
+ h# 8009.1100 h# 20.b190 io!
." Interacting" cr hex interact
then
\ Turn on USB power here to overlap the time with other startup actions
Author: quozl
Date: Fri Oct 14 04:21:56 2011
New Revision: 2605
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2605
Log:
Q2E48
(note that this version was not svn head at this point, but rather svn 2393 with svn 2585, 2589, 2603 and 2604)
Modified:
cpu/x86/pc/olpc/versions.fth
Modified: cpu/x86/pc/olpc/versions.fth
==============================================================================
--- cpu/x86/pc/olpc/versions.fth Fri Oct 14 03:16:49 2011 (r2604)
+++ cpu/x86/pc/olpc/versions.fth Fri Oct 14 04:21:56 2011 (r2605)
@@ -2,7 +2,7 @@
\ The overall firmware revision
macro: FW_MAJOR E
-macro: FW_MINOR 47
+macro: FW_MINOR 48
\ The EC microcode
macro: EC_VERSION e35