[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