[openfirmware] [commit] r2727 - in cpu/arm/olpc/3.0: . build

repository service svn at openfirmware.info
Sat Dec 3 01:45:09 CET 2011


Author: wmb
Date: Sat Dec  3 01:45:08 2011
New Revision: 2727
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2727

Log:
OLPC XO-3 - Initial revisions of files to support the new platform

Added:
   cpu/arm/olpc/3.0/
   cpu/arm/olpc/3.0/build/
   cpu/arm/olpc/3.0/build/Makefile
   cpu/arm/olpc/3.0/cforth-version.fth
   cpu/arm/olpc/3.0/cforth.bth
   cpu/arm/olpc/3.0/config.fth
   cpu/arm/olpc/3.0/crypto-version.fth
   cpu/arm/olpc/3.0/ec-version.fth
   cpu/arm/olpc/3.0/ec.bth
   cpu/arm/olpc/3.0/fw-version.fth
   cpu/arm/olpc/3.0/fw.bth
   cpu/arm/olpc/3.0/lcdcfg.fth
   cpu/arm/olpc/3.0/leds.fth
   cpu/arm/olpc/3.0/mcastnand.bth
   cpu/arm/olpc/3.0/mcnand-version.fth
   cpu/arm/olpc/3.0/olpc.bth
   cpu/arm/olpc/3.0/prefw.bth
   cpu/arm/olpc/3.0/sd8686.bth
   cpu/arm/olpc/3.0/sdhci.fth
   cpu/arm/olpc/3.0/switches.fth
   cpu/arm/olpc/3.0/testinstructions.fth
   cpu/arm/olpc/3.0/testitems.fth
   cpu/arm/olpc/3.0/usb.fth
   cpu/arm/olpc/3.0/verify.bth
   cpu/arm/olpc/3.0/wlan-version.fth

Added: cpu/arm/olpc/3.0/build/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/build/Makefile	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,70 @@
+ROMNAME=olpc
+
+BASEDIR= `(cd ../../../../..; pwd;)`
+
+OS := $(shell uname)
+HOSTCPU= $(shell ${BASEDIR}/forth/lib/hostcpu.sh)
+HOSTDIR= ../../../../${HOSTCPU}/${OS}
+BUILDSH= ${BASEDIR}/forth/lib/build.sh
+
+TAGFILES= ../../../build/*.tag *.tag
+CLIENTDIR=../../../../../clients
+CLIENTPROGS=${CLIENTDIR}/emacs/arm/emacs
+
+all: ${ROMNAME}.rom tags
+
+${ROMNAME}.tag: ${ROMNAME}.rom
+
+tags: ${ROMNAME}.tag
+	@${BASEDIR}/forth/lib/toctags ${BASEDIR} ${TAGFILES}
+
+${ROMNAME}.rom: FORCE build ${CLIENTPROGS} ${HOSTDIR}/forth ${HOSTDIR}/armforth
+	./build $@
+
+${HOSTDIR}/forth:
+	@make -C ${HOSTDIR} forth
+
+${HOSTDIR}/armforth:
+	@make -C ${HOSTDIR} armforth
+
+../../build/inflate.bin:
+	@make -C ../../build inflate.bin
+
+${CLIENTDIR}/emacs/arm/emacs:
+	@make -C ${CLIENTDIR}/emacs/arm emacs
+
+build:
+	@ln -sf ${BUILDSH} build
+
+clean:
+	rm -f *.dic *.log headers *~ *.elf *.di *.img builton.fth build *.rom *.version tags *.tag
+
+clean-all: clean
+	@make -C ../../build clean
+	@make -C ${HOSTDIR} clean
+
+.PHONY: FORCE clean all clean-all
+
+# LICENSE_BEGIN
+# Copyright (c) 2009 FirmWorks
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# LICENSE_END

Added: cpu/arm/olpc/3.0/cforth-version.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/cforth-version.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,17 @@
+\ This file controls which CForth source version to include in the OFW build
+\ and the method for fetching it
+
+\ If CFORTH_VERSION is "modify", the repository will be cloned with git+ssh: so can push changes.
+\ You need ssh access to the server.
+macro: CFORTH_VERSION modify
+
+\ If CFORTH_VERSION is "clone", the repository will be cloned with git:.  You won't be able to
+\ push changes, but you will get the full metadata so you can use commands like git grep.
+\ You don't need ssh access to the server.
+\ macro: CFORTH_VERSION clone
+
+\ Otherwise, the source code will be will be downloaded as a tarball via gitweb.
+\ macro: CFORTH_VERSION 59859f04454bc2574ab68cf0fd76ebdbc5f26fb6
+\ macro: CFORTH_VERSION HEAD
+
+macro: CFORTH_BUILD_DIR cforth/build/arm-xo-3.0

Added: cpu/arm/olpc/3.0/cforth.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/cforth.bth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,7 @@
+purpose: Fetch and compile CForth for the Security Processor
+
+command: &builder &this
+build-now
+
+fload ${BP}/cpu/arm/olpc/3.0/cforth-version.fth
+fload ${BP}/cpu/arm/olpc/build-cforth.fth

Added: cpu/arm/olpc/3.0/config.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/config.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,11 @@
+create debug-startup
+create olpc
+create trust-ec-keyboard
+create use-null-nvram
+create use-elf
+create olpc-cl3
+
+fload ${BP}/cpu/arm/mmp2/hwaddrs.fth
+fload ${BP}/cpu/arm/olpc/addrs.fth
+
+create machine-signature ," CL3"

Added: cpu/arm/olpc/3.0/crypto-version.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/crypto-version.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,6 @@
+\ The public keys
+macro: KEYS mpkeys
+\ macro: KEYS testkeys
+
+\ The bios_verify image
+macro: CRYPTO_VERSION 0.5-ARM

Added: cpu/arm/olpc/3.0/ec-version.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/ec-version.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,10 @@
+\ The EC microcode
+\ macro: EC_PLATFORM cl3
+macro: EC_PLATFORM cl2
+macro: EC_VERSION 4_0_3_05
+
+\ Alternate command for getting EC microcode, for testing new versions.
+\ Temporarily uncomment the line and modify the path as necessary
+\ macro: GET_EC cp ~rsmith/olpc/ec/ec-code15/image/ecimage.bin ec.img
+\ macro: GET_EC wget -q http://dev.laptop.org/pub/ec/ec_test.img -O ec.img
+\ macro: GET_EC cp no_event.bin ec.img

Added: cpu/arm/olpc/3.0/ec.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/ec.bth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,7 @@
+purpose: Fetch the EC (Embedded Controller, i.e. KB3700) microcode
+
+command: &builder &this
+build-now
+
+fload ${BP}/cpu/arm/olpc/3.0/ec-version.fth
+fload ${BP}/cpu/arm/olpc/fetch-ec.fth

Added: cpu/arm/olpc/3.0/fw-version.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/fw-version.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,4 @@
+\ The overall firmware revision
+macro: FW_PREFIX Q5
+macro: FW_MAJOR A
+macro: FW_MINOR 00

Added: cpu/arm/olpc/3.0/fw.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/fw.bth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,10 @@
+purpose: Build OFW Forth dictionary for OLPC ARM platforms
+\ See license at end of file
+
+dictionary: ${BP}/cpu/arm/olpc/3.0/build/prefw.dic
+command: &armforth &dictionary &this
+build-now
+
+" fw.tag" r/w create-file drop  tag-file !
+
+fload ${BP}/cpu/arm/olpc/build-fw.fth

Added: cpu/arm/olpc/3.0/lcdcfg.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/lcdcfg.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,38 @@
+h# 40001102 value clkdiv  \ Display Clock 1 / 2 -> 56.93 MHz
+h# 00000700 value pmua-disp-clk-sel  \ PLL1 / 7 -> 113.86 MHz 
+
+d#    8 value hsync  \ Sync width
+d# 1200 value hdisp  \ Display width
+d# 1256 value htotal \ Display + FP + Sync + BP
+d#   24 value hbp    \ Back porch
+
+d#    3 value vsync  \ Sync width
+d#  900 value vdisp  \ Display width
+d#  912 value vtotal \ Display + FP + Sync + BP
+d#    5 value vbp    \ Back porch
+
+: hfp  ( -- n )  htotal hdisp -  hsync -  hbp -  ;  \ 24
+: vfp  ( -- n )  vtotal vdisp -  vsync -  vbp -  ;  \ 4
+
+0 [if]
+3 constant #lanes
+3 constant bytes/pixel
+d# 24 constant bpp
+[else]
+2 constant #lanes
+2 constant bytes/pixel
+d# 16 constant bpp
+[then]
+
+: >bytes   ( pixels -- chunks )  bytes/pixel *  ;
+: >chunks  ( pixels -- chunks )  >bytes #lanes /  ;
+
+alias width  hdisp
+alias height vdisp
+alias depth  bpp
+width >bytes constant /scanline  
+
+: init-xo-display  ;
+: bright!  ( level -- )  drop  ;
+: backlight-on  ( -- )  ;
+: backlight-off  ( -- )  ;

Added: cpu/arm/olpc/3.0/leds.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/leds.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,48 @@
+\ See license at end of file
+purpose: Driver/selftest for OLPC XO-1.75 LEDs
+
+0 0  " 0"  " /" begin-package
+0 0 reg  \ So test-all will run the test
+" leds" device-name
+: open  ( -- okay? )  true  ;
+: close  ( -- )  ;
+
+: selftest  ( -- )
+    ." Flashing LEDs" cr
+
+   d# 10 0 do  ols-led-on d# 200 ms ols-led-off d# 200 ms  loop
+   ols-led-ec-control
+   ols-assy-mode-on
+
+   " /wlan:quiet" test-dev  " /wlan:quiet" test-dev  \ Twice for longer flashing
+
+   ols-assy-mode-off
+
+   confirm-selftest?
+;
+
+end-package
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2011 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: cpu/arm/olpc/3.0/mcastnand.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/mcastnand.bth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,7 @@
+purpose: Fetch and compile the multicast NAND reflash program
+
+command: &builder &this
+build-now
+
+fload ${BP}/cpu/arm/olpc/3.0/mcnand-version.fth
+fload ${BP}/cpu/arm/olpc/build-mcnand.fth

Added: cpu/arm/olpc/3.0/mcnand-version.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/mcnand-version.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,8 @@
+\ The multicast NAND updater code version
+\ Use a specific git commit ID for a formal release or "test" for development.
+\ With a specific ID, mcastnand.bth will download a tarball without .git stuff.
+\ With "test", mcastnand.bth will clone the git head if build/multicast-nand/
+\ is not already present, then you can modify the git subtree as needed.
+macro: MCNAND_VERSION 60b7230fcfb4abd42c3274475b5447e0bc344a5b
+\ macro: MCNAND_VERSION test
+\ macro: MCNAND_VERSION HEAD

Added: cpu/arm/olpc/3.0/olpc.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/olpc.bth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,219 @@
+purpose: Construct the Open Firmware module collection
+
+command: &builder &this
+in: ec.img
+in: fw.img
+in: resetvec.img
+in: mcastnand.bin
+in: sd8686.bin
+in: verify.img
+in: ${BP}/dev/usb2/device/hub/build/hub.fc
+in: ${BP}/dev/usb2/device/generic/build/generic.fc
+in: ${BP}/dev/usb2/device/net/build/usbnet.fc
+in: ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc
+in: ${BP}/dev/usb2/device/mouse/build/usbmouse.fc
+in: ${BP}/dev/usb2/device/serial/build/usbserial.fc
+in: ${BP}/dev/usb2/device/storage/build/usbstorage.fc
+in: testicons.bin
+in: ${BP}/clients/emacs/arm/emacs
+in: cforth.img
+build-now
+
+fload ${BP}/cpu/arm/olpc/3.0/fw-version.fth
+
+" macro: FW_VERSION Q5${FW_MAJOR}${FW_MINOR}" expand$ eval
+
+fload ${BP}/cpu/arm/olpc/3.0/config.fth
+
+\ Always re-create the builton.fth file when we make a new rom.img
+fload ${BP}/cpu/x86/pc/builton.bth
+fload ${BP}/cpu/arm/olpc/sourceurl.fth
+
+fload ${BP}/forth/lib/crc32.fth
+
+hex
+
+: pad-file  ( location -- )
+   ofd @ fsize
+   2dup u< abort" The ROM image is too large"
+   ?do  h# ff ofd @ fputc  loop
+;
+
+fload ${BP}/cpu/arm/marvell/tim.fth
+
+\ Marvel Trusted Image Module image creation script for
+\ XO-3.0 platform.
+
+tim: 00030102 0 Sky! PXA688
+flash: SPI'10
+timh:  TIMH        0 d101f000
+\ Main Processor code loaded into DRAM
+image: OBMI      800 d101c000 ${BP}/cpu/arm/olpc/dummy.img
+\ Secure Processor code loaded into SRAM
+image: WTMI     1000 d1018000 shim.img
+image: CFTH     2000 d1000000 cforth.img
+reserved:
+  term:
+end-reserved
+end-tim
+
+h# e.0000 to reserved-start
+h# f.0000 to reserved-end
+
+.( --- Saving as )
+" ${FW_VERSION}.rom" expand$  2dup lower  ( adr len )
+2dup type cr  ( adr len )
+$new-file
+   tim$ ofd @ fputs
+
+   dropin-offset  pad-file
+
+\ Loads the set of drivers that is common to different output formats
+
+   " ${BP}/cpu/arm/build/inflate.bin"        " inflate"         $add-dropin
+   " fw.img"   " firmware"  $add-deflated-dropin
+\   " fw.img"   " firmware"  $add-dropin
+   " resetvec.img"  " reset" $add-dropin
+
+\   " ${BP}/dev/usb2/hcd/ehci/build/ehci.fc"	" class0c0320"      $add-deflated-dropin
+   " ${BP}/dev/usb2/device/hub/build/hub.fc"     " usb,class9"      $add-deflated-dropin
+   " ${BP}/dev/usb2/device/generic/build/generic.fc"  " usbdevice"  $add-deflated-dropin
+   " ${BP}/dev/usb2/device/net/build/usbnet.fc"       " usbnet"     $add-deflated-dropin
+   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc" " usb,class3,1,1" $add-deflated-dropin
+   " ${BP}/dev/usb2/device/mouse/build/usbmouse.fc"  " usb,class3,1,2" $add-deflated-dropin
+   " ${BP}/dev/usb2/device/serial/build/usbserial.fc" " usbserial"  $add-deflated-dropin
+   " ${BP}/dev/usb2/device/storage/build/usbstorage.fc" " usbstorage"   $add-deflated-dropin
+
+   " sd8686_helper.bin"                          " helper_sd.bin" $add-deflated-dropin
+   " sd8686.bin"                                 " sd8686.bin"    $add-deflated-dropin
+
+   " builton.fth"                       " probe-"          $add-dropin
+
+0 [if]
+   " ${BP}/clients/emacs/x86/emacs"             " emacs"         $add-deflated-dropin
+   " ${BP}/clients/emacs/x86/emacs.rc"          " emacs.rc"      $add-deflated-dropin
+   " ${BP}/clients/emacs/emacs.hlp"             " emacs.hlp"     $add-deflated-dropin
+[then]
+
+   " ${BP}/ofw/inet/telnetd.fth"          " telnetd"             $add-deflated-dropin
+
+\    " ${BP}/cpu/x86/pc/olpc/images/warnings.565"  " warnings.565"  $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/lightdot.565"  " lightdot.565"  $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/yellowdot.565" " yellowdot.565" $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/darkdot.565"   " darkdot.565"   $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/lock.565"      " lock.565"      $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/unlock.565"    " unlock.565"    $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/plus.565"      " plus.565"      $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/minus.565"     " minus.565"     $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/x.565"         " x.565"         $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/sad.565"       " sad.565"       $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/bigdot.565"    " bigdot.565"    $add-deflated-dropin
+
+   " ${BP}/cpu/x86/pc/olpc/images/check.565"    " check.565"     $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/xogray.565"   " xogray.565"    $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/ethernet.565" " ethernet.565"  $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/usbkey.565"   " disk.565"      $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/wireless.565" " wlan.565"      $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/laptop.565"   " int.565"       $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/sd.565"       " ext.565"       $add-deflated-dropin
+
+   " verify.img"                                " verify"        $add-deflated-dropin
+   " os.public"                                 " ospubkey"      $add-dropin \ Incompressible
+   " fw.public"                                 " fwpubkey"      $add-dropin \ Incompressible
+   " fs.public"                                 " fspubkey"      $add-dropin \ Incompressible
+   " lease.public"                              " leasepubkey"   $add-dropin \ Incompressible
+   " developer.public"                          " develpubkey"   $add-dropin \ Incompressible
+
+   " sourceurl"   " sourceurl"                    $add-dropin
+
+   " ${BP}/cpu/x86/pc/olpc/images/Edge1-8k-EQ-Comp-Amp-Short.wav"  " splash"   $add-deflated-dropin
+
+   \ icons for mfg test gui
+   " testicons/play.565"        " play.565"     $add-deflated-dropin
+   " testicons/quit.565"        " quit.565"     $add-deflated-dropin
+   " testicons/cpu.565"         " cpu.565"      $add-deflated-dropin
+   " testicons/spi.565"         " spi.565"      $add-deflated-dropin
+   " testicons/ram.565"         " ram.565"      $add-deflated-dropin
+   " testicons/sdcard.565"      " sdcard.565"   $add-deflated-dropin
+   " testicons/keyboard.565"    " keyboard.565" $add-deflated-dropin
+   " testicons/display.565"     " display.565"  $add-deflated-dropin
+   " testicons/touchpad.565"    " touchpad.565" $add-deflated-dropin
+   " testicons/audio.565"       " audio.565"    $add-deflated-dropin
+   " testicons/usb.565"         " usb.565"      $add-deflated-dropin
+   " testicons/battery.565"     " battery.565"  $add-deflated-dropin
+   " testicons/camera.565"      " camera.565"   $add-deflated-dropin
+   " testicons/wifi.565"        " wifi.565"     $add-deflated-dropin
+   " testicons/clock.565"       " clock.565"    $add-deflated-dropin
+   " testicons/timer.565"       " timer.565"    $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/bigx.di"      $add-file
+   " ${BP}/cpu/x86/pc/olpc/images/bigcheck.di"  $add-file
+   " ${BP}/cpu/x86/pc/olpc/images/leds.di"      $add-file
+   " ${BP}/cpu/x86/pc/olpc/images/ebook.di"     $add-file
+
+   " nandblaster15_rx.bin" " nb15_rx"  $add-deflated-dropin
+   " nandblaster_tx.bin"   " nb_tx"    $add-deflated-dropin
+   " ec.img"                                     " ecimage.bin"    $add-deflated-dropin
+   " ${BP}/clients/emacs/x86/emacs.rc"          " emacs.rc"      $add-deflated-dropin
+   " ${BP}/clients/emacs/emacs.hlp"             " emacs.hlp"     $add-deflated-dropin
+   " ${BP}/clients/emacs/arm/emacs"             " emacs"         $add-deflated-dropin
+
+.( Dropin top is )  ofd @ fsize  .x cr
+
+/rom pad-file
+
+\ Insert the revision signature
+/rom h# 40 - ofd @ fseek
+h# 10 buffer: signature
+signature h# 10 blank
+machine-signature count   signature         swap move
+" ${FW_VERSION}" expand$  signature     6 + swap move
+" ${FW_PREFIX}${FW_MAJOR}" expand$  signature d# 13 + swap move
+signature h# 10  ofd @ fputs
+
+/l buffer: crcbuf
+/rom buffer: filebuf
+
+\ Read the entire image, compute the CRC, and store it h# 28 from the end
+0 ofd @ fseek
+filebuf /rom ofd @ fgets /rom <> abort" Can't read back image"
+0 crctab  filebuf /rom  ($crc)  crcbuf !
+
+crc-offset ofd @ fseek
+crcbuf /l ofd @ fputs
+
+ofd @ fclose
+
+\ Creating olpc.version serves two purposes:
+\ a) It reports the firmware revision for use by external scripts
+\ b) It provides an olpc.* artifact for the builder dependency management.
+
+writing olpc.version
+" ${FW_VERSION}" expand$  2dup lower  ofd @ fputs
+ofd @ fclose
+
+
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2011 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END
+

Added: cpu/arm/olpc/3.0/prefw.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/prefw.bth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,13 @@
+purpose: Build OFW Forth dictionary for OLPC XO-1.75
+\ See license at end of file
+
+dictionary: ${BP}/cpu/arm/build/basefw.dic
+command: &armforth &dictionary &this
+build-now
+
+\ This line must be in this file instead of in prefw.fth so the definitions
+\ in config.fth will be tagged.
+" prefw.tag" r/w create-file drop  tag-file !
+
+fload ${BP}/cpu/arm/olpc/3.0/config.fth
+fload ${BP}/cpu/arm/olpc/prefw.fth

Added: cpu/arm/olpc/3.0/sd8686.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/sd8686.bth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,8 @@
+purpose: Fetch the firmware for the Marvell 8686 wireless LAN module
+
+command: &builder &this
+build-now
+
+fload ${BP}/cpu/arm/olpc/3.0/wlan-version.fth
+
+fload ${BP}/cpu/arm/olpc/build-wlan.fth

Added: cpu/arm/olpc/3.0/sdhci.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/sdhci.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,44 @@
+purpose: Load file for SDHCI (Secure Digital Host Controller Interface)
+
+0 0  " d4280000"  " /"  begin-package
+
+   fload ${BP}/cpu/arm/olpc/sdregs.fth
+   fload ${BP}/dev/mmc/sdhci/sdhci.fth
+
+   d# 1 to power-off-time  \ A2 and A3 have turn-off clamps
+\   true to avoid-high-speed?
+
+   hex
+   : olpc-card-inserted?  ( -- flag )
+      slot 1 =  if  d# 31 gpio-pin@ 0=  else  true  then
+   ;
+   ' olpc-card-inserted? to card-inserted?
+
+   \ Slot:power_GPIO - 1:35, 2:34, 3:33
+   : gpio-power-on  ( -- )  sdhci-card-power-on  d# 36 slot - gpio-set  ;
+   ' gpio-power-on to card-power-on
+
+   : gpio-power-off  ( -- )  d# 36 slot - gpio-clr  sdhci-card-power-off  ;
+   ' gpio-power-off to card-power-off
+
+   new-device
+      2 encode-int " reg" property
+      fload ${BP}/dev/mmc/sdhci/mv8686/loadpkg.fth
+   finish-device
+
+   new-device
+      3 encode-int " reg" property
+      fload ${BP}/dev/mmc/sdhci/sdmmc.fth
+      fload ${BP}/dev/mmc/sdhci/selftest.fth
+      " internal" " slot-name" string-property
+   finish-device
+
+end-package
+
+stand-init: SDHC clocks
+   h# 41b h# 282854 io!   \ SD0 (external SD) clocks, plus set master clock divisor
+   h#  1b h# 282858 io!   \ SD1 (WLAN) clocks
+   h#  1b h# 2828e8 io!   \ SD2 (internal microSD) clocks
+   h# 70a h# 200104 io!  \ Clock gating
+   h# 70a h# 201104 io!  \ Clock gating
+;

Added: cpu/arm/olpc/3.0/switches.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/switches.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,34 @@
+\ See license at end of file
+purpose: Driver/selftest for OLPC lid and ebook switches
+
+0 0  " 0"  " /" begin-package
+" switches" device-name
+0 0 reg  \ So test-all will run the test
+: open  ( -- okay? )  true  ;
+: close  ( -- )  ;
+: selftest  ( -- error? )  false  ;
+end-package
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2011 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: cpu/arm/olpc/3.0/testinstructions.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/testinstructions.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,553 @@
+\ See license at end of file
+purpose: Drawings of OLPC XO-1.75 board and components for test instructions
+
+support-package: test-instructions
+
+decimal
+
+\ Common items
+
+\ FIXME: these might be shared between XO-1.5 and XO-1.75
+
+: headphones-logo
+   24 5 rmove  -6 0  -10 6  -10 13 rcurve
+   10 -13 rmove  6 0  10 6  10 13 rcurve
+   -16 4 rmove  -2 0  -3 -1  -3 -2 rcurve  0 -3  1 -3  3 -3 rcurve  0 5 rline
+   12 -5 rmove  2 0  3 0  3 2  rcurve  0 3  -1 3  -3 3 rcurve  0 -5 rline
+;
+
+: led-symbol  ( x y -- )
+   moveto  5 5 rline  5 -5 rline  -5 -5 rline  -5 5 rline
+;
+: usb-logo
+   14 11  rmove
+   1 1  1 3  0 4  rcurve
+   -1 1  -2 1  -3 0  rcurve
+   -1 -1  -1 -3  0 -4  rcurve
+   1 -1  2 -1  3 0  rcurve
+
+   10 -4  rmove
+   1 -1  1 -2  0 -2  rcurve
+   0 -1  -1 -1  -1 0  rcurve
+   0 0  0 1  0 2  rcurve
+   0 0  1 0  1 0  rcurve
+
+   -12 6  rmove  18 0  rline
+   5 0  rmove   -5 -2  rline  0 4  rline  5 -2  rline
+   -7 6  rmove   2 0  rline  0 3  rline  -2 0  rline  0 -3  rline
+   -11 -6  rmove
+   1 -2  2 -5  3 -6  rcurve
+   1 -2  2 -1  3 -1  rcurve
+
+   -2 7  rmove
+   2 2  2 5  4 7  rcurve
+   1 1  3 0  5 0  rcurve
+;
+: mic-logo
+   -4 0  -6 -3  -6 -5  rcurve
+   6 5  rmove   3 0  6 -3  6 -5  rcurve
+   -4 -8  rmove
+   0  8  rline  0  1  -1  2  -2  2  rcurve  -1 0  -2 -1  -2 -2  rcurve
+   0 -8  rline  0 -1   1 -2   2 -2  rcurve   1 0   2  1   2  2  rcurve
+   -2 13  rmove  0 3  rline   3 0  rmove  -7 0  rline
+;
+
+\ Board bottom items
+
+: rantenna  ( -- )
+   -5 -5 rmove  10 10 rbox  5 5 rmove  rpoint  5 rcircle
+;
+: wlan-card
+   122 6  75 74 boxat
+   10  9 rmove  rantenna
+   55  0 rmove  rantenna
+;
+
+: board-outline
+    ( lower left corner  )   2  370 moveto
+    ( left side cutout   )   0 -117 rline    9    0 rline
+                             0  -17 rline   -5    0 rline
+    ( upper left corner  )   0 -199 rline
+    ( wireless cutout    )  54    0 rline    0  -37 rline   54    0 rline
+                             0   96 rline   91    0 rline    0  -96 rline
+                           319    0 rline    0   37 rline
+    ( upper right corner )  56    0 rline
+    ( right side cutout  )   0  127 rline  -11    0 rline    0   43 rline
+                             7    0 rline    0   35 rline   -7    0 rline
+                             0   17 rline   11    0 rline
+    ( lower right corner )   0  111 rline
+    ( lower cutout       ) -85    0 rline    0   -4 rline  -49    0 rline
+                             0  -13 rline  -23    0 rline    0  -17 rline
+                           -27    0 rline    0 -105 rline -213    0 rline
+                             0  102 rline  -28    0 rline    0   16 rline
+                           -23    0 rline    0   17 rline  -37    0 rline
+                             0    4 rline
+    ( lower left corner  ) -93    0 rline
+;
+
+: mic-conn
+  535 52  45 28 boxat
+  24 20 rmove  mic-logo
+  580 58   8 16 boxat
+;
+: headphone-conn
+  535 90  45 28 boxat
+  headphones-logo
+  580 96   8 16 boxat
+;
+: ac-conn  553 306  36 27 boxat  ;
+: ext-sd-slot  2 280  81 90 boxat ;
+: kbd-conn   165 300  12 23 boxat  ;
+
+: ext-sd-card
+    9 293 moveto
+    9 379 lineto  76 379 lineto  76 304 lineto  65 293 lineto  9 293 lineto
+;
+
+: usb0-conn
+   537 126  45 27 boxat
+   usb-logo
+;
+: usb1-conn
+   0 54  45 27 boxat
+   usb-logo
+;
+: usb2-conn
+   0 99  45 45 boxat
+   0 9 rmove  usb-logo
+;
+: battery-conn
+   435 321  25 20 boxat
+   435 299  10 12 boxat
+;
+
+: led0  103 356 led-symbol  ;
+: led1  119 356 led-symbol  ;
+: led2  454 356 led-symbol  ;
+: led3  474 356 led-symbol  ;
+: cmos-battery-conn
+   259  47  12 18 boxat
+   261  43   8  4 boxat
+   261  65   8  4 boxat
+;
+
+\ FIXME: find out where this is to go for A2
+: cmos-battery
+   262 60  22 circleat
+   \ Wires
+   243 71 moveto
+     238  75   228  81   229  86 curveto
+     229  90   242  99   249 100 curveto
+     255 100   262  89   269  89 curveto
+     275  89   280 100   286 100 curveto
+     292 100   297  93   303  90 curveto
+   247 76 moveto
+     241  81   231  89   229  93 curveto
+     226  96   230  99   234  99 curveto
+     237  99   244  90   250  91 curveto
+     255  91   261 101   268 101 curveto
+     274 100   280  90   286  90 curveto
+     292  90   298  96   304  99 curveto
+;
+
+: rspkr-conn
+   20 153  18 16 boxat
+   16 157  4 8 boxat
+   38 157  4 8 boxat
+;
+: lspkr-conn
+   544 170  18 16 boxat
+   540 174  4 8 boxat
+   562 174  4 8 boxat
+;
+
+: wlan-conn  109 75  101 28 boxat ;
+
+: serial-conn
+   71 46  18 27 boxat
+   75 42  8 4 boxat
+   75 73  8 4 boxat
+
+   519 154  22 12 boxat
+
+;
+
+: int-sd-slot  115 143 32 37 boxat  ;
+
+: int-sd-card
+    101 146 moveto  43 0 rline  0 27 rline  -13 0 rline  -5 4 rline
+    -5 0 rline  0 -4 rline  -4 0 rline  -2 4 rline  -15 0 rline  0 -31 rline
+;
+
+: basic-layout  ( -- )
+   clear-drawing
+   d# 10 d# 20 offsetat
+   double-drawing
+;
+: draw-board  ( -- )
+   basic-layout
+   board-outline
+   mic-conn
+   headphone-conn
+   ac-conn
+   ext-sd-slot
+   kbd-conn
+   usb0-conn
+   usb1-conn
+   usb2-conn
+   battery-conn
+   led0  led1  led2  led3
+   cmos-battery-conn
+   cmos-battery
+   rspkr-conn
+   lspkr-conn
+   wlan-conn
+   serial-conn
+   int-sd-slot
+
+   wlan-card
+   int-sd-card
+   ext-sd-card
+;
+
+\ Board top items
+\ FIXME: still has XO-1.5 image, yet to update for XO-1.75
+
+: button-symbol  ( x y -- )
+   2dup  18 18 boxat
+   swap 9 +  swap 9 +  6 circleat
+;
+
+: top-outline
+    584 370 moveto
+    0 -117 rline -9 0 rline 0 -17 rline 5 0 rline 0 -199 rline -54 0 rline
+    0 -37 rline -54 0 rline 0 96 rline -91 0 rline 0 -96 rline -319 0 rline
+    0 37 rline -56 0 rline 0 127 rline 11 0 rline 0 43 rline -7 0 rline
+    0 35 rline 7 0 rline 0 17 rline -11 0 rline 0 111 rline 85 0 rline
+    0 -4 rline 49 0 rline 0 -13 rline 23 0 rline 0 -17 rline 27 0 rline
+    0 -105 rline 213 0 rline 0 102 rline 28 0 rline 0 16 rline 23 0 rline
+    0 17 rline 37 0 rline 0 4 rline 93 0 rline
+;
+
+: headphones-top
+   2 95   7 18  boxat
+   9 91  45 28  boxat
+   headphones-logo
+;
+: mic-top
+   9 54  45 28  boxat
+   24 20 rmove  mic-logo
+   2 59   7 18  boxat
+;
+: acin  0 307  36 27  boxat  ;
+: int-mic-conn
+   70 146  18 18  boxat
+   28 15 rmove  mic-logo
+;
+: usb0
+   7 128  45 27  boxat
+   usb-logo
+;
+: usb1
+   543 55  45 27  boxat
+   usb-logo
+;
+: usb2
+   543 100  45 45  boxat
+   0 9 rmove  usb-logo
+;
+: display-conn  252 1  89 18  boxat  ;
+: camera-conn  540 154  36 18  boxat  ;
+: backlight-conn  63 46  27 17  boxat  ;
+: above-int-mic-conn
+   79 87  18 27  boxat
+   81 82  9 5  boxat
+   81 114  9 5  boxat
+;
+: pwr-but  543 338  button-symbol  ;
+: rotate-but  30 338  button-symbol  ;
+: up-but  37 237  button-symbol  ;
+: down-but  37 278  button-symbol  ;
+: left-but  14 258  button-symbol  ;
+: right-but  57 258  button-symbol  ;
+: o-but  543 239  button-symbol  ;
+: x-but
+   543 279  18 18  boxat
+   548 283 moveto 557 292 lineto 548 292 moveto 557 283 lineto 
+;
+: square-but
+   521 260  18 18  boxat
+   525 264 moveto 534 264 lineto 534 273 lineto 525 273 lineto 525 264 lineto 
+;
+: check-but
+   564 259  18 18  boxat
+   570 269 moveto 573 273 lineto 578 263 lineto 
+;
+: led0-top  518 348  led-symbol  ;
+: led1-top  491 348  led-symbol  ;
+: led2-top  72 348  led-symbol  ;
+: led3-top  99 348  led-symbol  ;
+: mic-led  31 45   led-symbol  ;
+: camera-led  569 45  led-symbol  ;
+: wlan-conn-top  374 76  104 27  boxat  ;
+: wlan-card-top  389 7  75 75  boxat  ;
+: ext-sd-slot-top  497 360  81 9  boxat  ;
+: ext-sd-card-top
+   504 369 moveto  0 -75 rline  11 -11 rline  56 0 rline  0 86 rline  -67 0 rline
+;
+: draw-top  ( -- )
+   basic-layout
+
+   top-outline
+   headphones-top
+   mic-top
+   acin
+   int-mic-conn
+   usb0 usb1 usb2
+   display-conn
+   camera-conn
+   backlight-conn
+   above-int-mic-conn
+   pwr-but
+   rotate-but
+   up-but
+   down-but
+   left-but
+   right-but
+   o-but
+   x-but
+   square-but
+   check-but
+   led0-top
+   led1-top
+   led2-top
+   led3-top
+   mic-led
+   camera-led
+   wlan-conn-top
+   wlan-card-top
+   ext-sd-slot-top
+;
+
+: usb-key  ( -- )
+   95 155 moveto  130 165 lineto 130 155 lineto  95 145 lineto 95 155 lineto
+   130 155 moveto 150 140 lineto 150 150 lineto  130 165 lineto
+   150 140 moveto 115 130 lineto 95 145 lineto
+   146 153 moveto 155 155 lineto 155 135 lineto 110 122 lineto 110 133 lineto
+   110 122 moveto 110 122  171 67  197 54 curveto  229 38 295 42 155 135 curveto
+   155 156 moveto 218 111  229 100 241 81 curveto  248 65 239 51 239 51 curveto
+;
+
+: scanner  ( -- )
+   195 98 moveto
+   195 111  174 121  149 121 curveto
+   123 121  103 111  102  98 curveto
+   103  85  123  75  149  75 curveto
+   174  75  195  85  195  98 curveto
+
+   111 84 moveto
+   193 36 228 48 239 61 curveto
+   261 90 171 122 171 118 curveto
+
+   235 85 moveto
+   281 177 310 177 267 201 curveto
+   251 209 227 200 235 189 curveto
+   243 177 249 179 248 172 curveto
+   239 121 196 109 200 109 curveto
+;
+
+: usb-ethernet
+   130 212 moveto
+   141 218 145 220 145 205 curveto 145 190 145 190 125 180 curveto
+   105 170 105 171 105 185 curveto 105 190 105 185 105 190 curveto
+
+   105 190 moveto
+   106 190 105 192 105 185 curveto 105 170 105 170 135 155 curveto 165 140 165 140 185 150 curveto
+   205 160 205 160 205 175 curveto 205 190 205 190 175 205 curveto 145 220 146 221 130 212 curveto
+
+   125 190 moveto 135 195 lineto 115 205 lineto 95 195 lineto 115 185 lineto 120 188 lineto
+   105 215 moveto 115 220 lineto 115 205 lineto 95 195 lineto 95 206 lineto
+   115 220 moveto 135 210 lineto 135 195 lineto 115 205 lineto 115 220 lineto
+   102 202 moveto  105 201 109 202 110 205 curveto  111 208 111 211 109 213 curveto
+   109 213 moveto  78 232 38 242 38 242 curveto
+   103 202 moveto  76 219 38 230 38 230 curveto
+   130 188 moveto  121 193 lineto  115 190 lineto  125 185 lineto  130 188 lineto
+   130 188 moveto  130 189 130 193 130 193 curveto
+   115 185 moveto  120 188 lineto
+   135 195 moveto  126 191 lineto
+
+   321 96 moveto 321 106 lineto 322 106 308 124 287 118 curveto
+   306 108 moveto 313 105 321 96 321 96 curveto 303 89 lineto 303 89 296 92 289 98 curveto 275 112 291 117 306 108 curveto
+   327 90 moveto  327 96 lineto 321 101 lineto
+   307 90 moveto 315 85 lineto 327 90 lineto 319 95 lineto
+   283 111 moveto 284 114 287 112 288 113 curveto 289 114 289 116 288 117 curveto
+   284 111 moveto 284 110 lineto
+
+   287 111 moveto  250 134  198 157  198 157 curveto
+   288 117 moveto  238 147  203 161  203 161 curveto
+;
+
+
+0 value blink-time
+-1 value blink-state
+0 value blink-color
+h# ff0000 constant red-888
+h# 00ff00 constant green-888
+h# 0000ff constant blue-888
+h# 000000 constant black-888
+h# ffffff constant white-888
+h# ff00ff constant magenta-888
+magenta-888 to blink-color
+
+: set-default-color  ( -- )  black-888 set-fg  ;
+
+defer selected-object  ' noop to selected-object
+
+: idle  ( -- )
+   blink-state -1 =  if  exit  then
+   1 ms
+   get-msecs blink-time -  0>=  if
+      blink-state 1 xor dup to blink-state  ( state )
+      if  blink-color set-fg  else  white-888 set-fg  then
+      selected-object
+      get-msecs d# 400 +  to blink-time
+   then
+;
+
+: highlight  ( xt color -- )
+   to blink-color
+   to selected-object
+   get-msecs to blink-time
+   0 to blink-state
+   idle
+;
+: message-off  ( -- )  d# 2  d# 27  at-xy  kill-line  ;
+: message  ( adr len -- )  cursor-off  message-off  red-letters  type  black-letters  ;
+
+: performed  ( -- )
+   -1 to blink-state
+   message-off
+   set-default-color
+   selected-object
+   cr
+;
+
+: connect-scanner  ( -- )
+   basic-layout
+   " Connect USB barcode scanner to continue.." message
+   ['] scanner green-888 highlight
+;
+
+: connect-usb-key  ( -- )
+   basic-layout
+   " Connect USB stick to continue.." message
+   ['] usb-key green-888 highlight
+;
+
+: connect-usb-ethernet  ( -- )
+   basic-layout
+   " Connect USB Ethernet to continue.." message
+   ['] usb-ethernet green-888 highlight
+;
+
+: connect-headphones  ( -- )
+   draw-top
+   " Connect headphones to continue.." message
+   ['] headphones-top h# 00e000  highlight  \ Green like headphone jack
+;
+: disconnect-headphones  ( -- )
+   draw-top
+   " Disconnect headphones to continue.." message
+   ['] headphones-top red-888 highlight
+;
+: connect-microphone  ( -- )
+   draw-top
+   " Connect microphone to continue.." message
+   ['] mic-top h# ff80c0 highlight \ Close enough to the pink of the mic jack
+;
+: disconnect-microphone  ( -- )
+   draw-top
+   " Disconnect microphone to continue.." message
+   ['] mic-top red-888 highlight
+;
+: mic+phones-top  ( -- )  mic-top headphones-top  ;
+: connect-loopback  ( -- )
+   draw-top
+   " Connect loopback cable to continue.." message
+   ['] mic+phones-top green-888 highlight
+;
+: disconnect-loopback  ( -- )
+   draw-top
+   " Disconnect loopback cable to continue.." message
+   ['] mic+phones-top red-888 highlight
+;
+
+: connect-int-sd  ( -- )
+   draw-board
+   " Connect internal SD card to continue.." message
+   ['] int-sd-card green-888 highlight
+;
+: connect-ext-sd  ( -- )
+   draw-top
+   " Connect external SD card to continue.." message
+   ['] ext-sd-card-top green-888 highlight
+;
+
+: disconnect-int-sd  ( -- )
+   draw-board
+   " Disconnect internal SD card to continue.." message
+   ['] int-sd-card red-888 highlight
+;
+: disconnect-ext-sd  ( -- )
+   draw-top
+   " Disconnect external SD card to continue.." message
+   ['] ext-sd-card-top red-888 highlight
+;
+
+: open  ( -- ok )  true  ;
+: close  ( -- )  ;
+
+end-support-package
+0 value instructions-ih
+
+: ($instructions)  ( name$ -- )
+   instructions-ih 0=  if
+      " "  " test-instructions" $open-package to instructions-ih
+   then
+   instructions-ih $call-method
+;
+' ($instructions) to $instructions
+
+: (instructions-idle)  ( -- )  " idle" $instructions  ;
+' (instructions-idle) to instructions-idle
+
+: (instructions-done)  ( -- )  " performed" $instructions  ;
+' (instructions-done) to instructions-done
+
+: diag-mode  ( -- )  true to diag-switch?  ;
+
+hex
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2010 FirmWorks
+\
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: cpu/arm/olpc/3.0/testitems.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/testitems.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,94 @@
+icon: cpu.icon      rom:cpu.565
+icon: spi.icon      rom:spi.565
+icon: ram.icon      rom:ram.565
+icon: sdcard.icon   rom:sdcard.565
+icon: usb.icon      rom:usb.565
+icon: battery.icon  rom:battery.565
+icon: camera.icon   rom:camera.565
+icon: wifi.icon     rom:wifi.565
+icon: audio.icon    rom:audio.565
+icon: touchpad.icon rom:touchpad.565
+icon: display.icon  rom:display.565
+icon: keyboard.icon rom:keyboard.565
+icon: timer.icon    rom:timer.565
+icon: clock.icon    rom:clock.565
+icon: ebook.icon    rom:ebook.565
+icon: leds.icon     rom:leds.565
+
+d# 15 to #mfgtests
+d# 5 to #mfgcols
+d# 4 to #mfgrows
+
+: cpu-item      ( -- )  " /cpu"       mfg-test-dev  ;
+: battery-item  ( -- )  " /battery"   mfg-test-dev  ;
+: spiflash-item ( -- )  " /flash"     mfg-test-dev  ;
+: memory-item   ( -- )  " /memory"    mfg-test-dev  ;
+: usb-item      ( -- )  " /usb/hub"   mfg-test-dev  ;
+: int-sd-item   ( -- )  " int:0"      mfg-test-dev  ;
+: ext-sd-item   ( -- )  " ext:0"      mfg-test-dev  ;
+: rtc-item      ( -- )  " /rtc"       mfg-test-dev  ;
+: display-item  ( -- )  " /display"   mfg-test-dev  ;
+: audio-item    ( -- )  " /audio"     mfg-test-dev  ;
+: camera-item   ( -- )  " /camera"    mfg-test-dev  ;
+: wlan-item     ( -- )  " /wlan"      mfg-test-dev  ;
+: timer-item    ( -- )  " /timer"     mfg-test-dev  ;
+: touchpad-item ( -- )  " mouse"      mfg-test-dev  ;
+: keyboard-item ( -- )  " keyboard"   mfg-test-dev  ;
+: switch-item   ( -- )  " /accelerometer" mfg-test-dev  " /switches"  mfg-test-dev  ;
+: leds-item     ( -- )  " /leds"      mfg-test-dev   ;
+
+: olpc-test-menu-items  ( -- )
+   clear-menu
+
+\   " CPU"
+\   ['] cpu-item      cpu.icon      1 0 install-icon
+
+   " SPI Flash: Contains EC code, firmware, manufacturing data."
+   ['] spiflash-item    spi.icon      1 0 install-icon
+
+   " RAM chips"
+   ['] memory-item   ram.icon      1 1 install-icon
+
+   " Internal mass storage"
+   ['] int-sd-item   sdcard.icon   1 2 install-icon
+
+   " Plug-in SD card"
+   ['] ext-sd-item   sdcard.icon   1 3 install-icon
+
+   " Wireless LAN"
+   ['] wlan-item     wifi.icon     1 4 install-icon
+
+   " Display"
+   ['] display-item  display.icon  2 0 install-icon
+
+   " Camera"
+   ['] camera-item   camera.icon   2 1 install-icon
+
+   " Audio: Speaker and microphone"
+   ['] audio-item    audio.icon    2 2 install-icon
+
+   " Battery"
+   ['] battery-item  battery.icon  2 3 install-icon
+
+   " RTC (Real-Time Clock)"
+   ['] rtc-item      clock.icon    2 4 install-icon
+
+   " USB ports"
+   ['] usb-item      usb.icon      3 0 install-icon
+
+   \ These are last because they require user participation.
+   \ The earlier tests are all included in automatic batch-mode.
+
+   " Keyboard"
+   ['] keyboard-item keyboard.icon 3 1 install-icon
+
+   " Touchpad"
+   ['] touchpad-item touchpad.icon 3 2 install-icon
+
+   " LEDs"
+   ['] leds-item     leds.icon     3 3 install-icon
+
+   " Switches and Accelerometer"
+   ['] switch-item   ebook.icon    3 4 install-icon
+;
+' olpc-test-menu-items to test-menu-items

Added: cpu/arm/olpc/3.0/usb.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/usb.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,187 @@
+purpose: Platform-specific USB elaborations
+\ See license at end of file
+
+0 0  " d4208000"  " /" begin-package  \ USB Host Controller
+   h# 200 constant /regs
+   my-address my-space /regs reg
+   : my-map-in  ( len -- adr )
+      my-space swap  " map-in" $call-parent  h# 100 +  ( adr )
+   ;
+   : my-map-out  ( adr len -- )  swap h# 100 - swap " map-out" $call-parent  ;
+   false constant has-dbgp-regs?
+   false constant needs-dummy-qh?
+   : grab-controller  ( config-adr -- error? )  drop false  ;
+   fload ${BP}/dev/usb2/hcd/ehci/loadpkg.fth
+\  false to delay?  \ No need for a polling delay on this platform
+   : otg-set-host-mode  3 h# a8 ehci-reg!  ;  \ Force host mode
+   ' otg-set-host-mode to set-host-mode
+
+   \ Port 1 on the hub is connected to unused pins on the WLAN connector,
+   \ so testing it is confusing
+   \ Port 2 is right upper
+   \ Port 3 is left
+   \ Port 4 is right lower
+   " 3,4,2" " usb-hub-test-list" string-property
+   : sleep  ( -- )  true to first-open?  ;
+   : wake  ( -- )  ;
+end-package
+
+\ Turn on USB power after a delay, to ensure that USB devices are reset correctly on boot
+: usb-power-on  ( -- )  ;  \ The EC controls the USB power
+: reset-usb-hub  ( -- )  d# 146 gpio-clr  d# 10 ms  d# 146 gpio-set  ;
+
+: init-usb  ( -- )
+   h# 9 h# 5c pmua!  \ Enable clock to USB block
+   reset-usb-hub
+   init-usb-phy
+;
+
+stand-init: Init USB Phy
+\  usb-power-on   \ The EC now controls the USB power
+   init-usb
+;
+
+d# 350 config-int usb-delay  \ Milliseconds to wait before probing hub ports
+
+devalias u    /usb/disk
+
+\ Like $show-devs, but ignores pagination keystrokes
+: $nopage-show-devs  ( nodename$ -- )
+   ['] exit? behavior >r  ['] false to exit?
+   $show-devs
+   r> to exit?
+;
+
+\ Restrict selftest to external USB ports 1,2,3
+\ dev /  3 " usb-test-ports" integer-property  dend
+
+: (probe-usb2)  ( -- )
+   " device_type" get-property  if  exit  then
+[ifdef] use-usb-debug-port
+   \ I haven't figured out how to turn on the EHCI cleanly
+   \ when the Debug Port is running
+   dbgp-off
+[then]
+   get-encoded-string  " ehci" $=  if
+      pwd$ open-dev  ?dup  if  close-dev  then
+   then
+;
+: (show-usb2)  ( -- )
+   " device_type" get-property  if  exit  then
+   get-encoded-string  " ehci" $=  if
+      pwd$ $nopage-show-devs
+   then
+;
+
+true value first-usb-probe?
+: (silent-probe-usb)  ( -- )  " /" ['] (probe-usb2) scan-subtree  ;
+: silent-probe-usb  ( -- )
+   (silent-probe-usb)
+   report-disk report-net report-keyboard
+;
+: probe-usb  ( -- )
+   first-usb-probe?  if
+      false to first-usb-probe?
+      \ Initial probe to awaken the hub
+      (silent-probe-usb)
+      \ A little delay to let slow devices like USB scanner wake up
+      d# 150 ms
+   then
+   silent-probe-usb
+
+   ." USB devices:" cr
+   " /" ['] (show-usb2) scan-subtree
+
+;
+alias p2 probe-usb
+
+0 value usb-keyboard-ih
+
+: attach-usb-keyboard  ( -- )
+   " usb-keyboard" expand-alias  if   ( devspec$ )
+      drop " /usb"  comp  0=  if      ( )
+         " usb-keyboard" open-dev to usb-keyboard-ih
+         usb-keyboard-ih add-input
+         exit
+      then
+   else                               ( devspec$ )
+      2drop
+   then
+;
+
+: detach-usb-keyboard  ( -- )
+   usb-keyboard-ih  if
+      usb-keyboard-ih remove-input
+      usb-keyboard-ih close-dev
+      0 to usb-keyboard-ih
+   then
+;
+
+: ?usb-keyboard  ( -- )
+   attach-usb-keyboard
+   " /usb/serial" open-dev  ?dup  if
+      add-input
+   then
+;
+
+: suspend-usb  ( -- )
+   detach-usb-keyboard
+   " /usb" " sleep" execute-device-method drop
+;
+: has-children?   ( devspec$ -- flag )
+   locate-device  if  false  else  child 0<>  then
+;
+: any-usb-devices?  ( -- flag )  " /usb/hub" has-children?  ;
+: resume-usb  ( -- )
+   init-usb
+   " /usb" " wake" execute-device-method drop
+   any-usb-devices?  if
+      d# 2000 ms  \ USB misses devices if you probe too soon
+   then
+   silent-probe-usb
+   attach-usb-keyboard
+;
+
+\ Unlink every node whose phys.hi component matches port
+: port-match?  ( port -- flag )
+   get-unit  if  drop false exit  then
+   get-encoded-int =
+;
+: rm-usb-children  ( port -- )
+   device-context? 0=  if  drop exit  then
+   also                             ( port )
+   'child                           ( port prev )
+   first-child  begin while         ( port prev )
+      over port-match?  if          ( port prev )
+         'peer link@  over link!    ( port prev )      \ Disconnect
+      else                          ( port prev )
+         drop 'peer                 ( port prev' )
+      then                          ( port prev )
+   next-child  repeat               ( port prev )
+   2drop                            ( )
+   previous definitions
+;
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2010 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: cpu/arm/olpc/3.0/verify.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/verify.bth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,7 @@
+purpose: Fetch the Crypto code and keys
+
+command: &builder &this
+build-now
+
+fload ${BP}/cpu/arm/olpc/3.0/crypto-version.fth
+fload ${BP}/cpu/arm/olpc/build-crypto.fth

Added: cpu/arm/olpc/3.0/wlan-version.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/3.0/wlan-version.fth	Sat Dec  3 01:45:08 2011	(r2727)
@@ -0,0 +1,7 @@
+\ The wireless LAN module firmware
+macro: WLAN_VERSION 9.0.7.p2
+
+\ Alternate command for getting WLAN firmware, for testing new versions.
+\ Temporarily uncomment the line and modify the path as necessary
+\ macro: GET_WLAN cp "/c/Documents and Settings/Mitch Bradley/My Documents/OLPC/DiskImages/sd8686-9.70.7.p0.bin" sd8686.bin; cp "/c/Documents and Settings/Mitch Bradley/My Documents/OLPC/DiskImages/sd8686_helper.bin" sd8686_helper.bin
+\ macro: GET_WLAN wget http://dev.laptop.org/pub/firmware/libertas/thinfirm/lbtf_sdio-9.0.7.p2.bin -O sd8686.bin



More information about the openfirmware mailing list