[openfirmware] r1683 - in cpu/x86/pc/olpc: . via
svn at openfirmware.info
svn at openfirmware.info
Fri Jan 22 08:46:45 CET 2010
Author: wmb
Date: 2010-01-22 08:46:45 +0100 (Fri, 22 Jan 2010)
New Revision: 1683
Added:
cpu/x86/pc/olpc/via/mcastnand.bth
Modified:
cpu/x86/pc/olpc/gridmap.fth
cpu/x86/pc/olpc/nandcastui.fth
cpu/x86/pc/olpc/via/copynand.fth
cpu/x86/pc/olpc/via/fsupdate.fth
cpu/x86/pc/olpc/via/fw.bth
cpu/x86/pc/olpc/via/olpc.bth
cpu/x86/pc/olpc/via/versions.fth
Log:
XO-1.5 NANDblaster, first cut.
Modified: cpu/x86/pc/olpc/gridmap.fth
===================================================================
--- cpu/x86/pc/olpc/gridmap.fth 2010-01-22 05:43:23 UTC (rev 1682)
+++ cpu/x86/pc/olpc/gridmap.fth 2010-01-22 07:46:45 UTC (rev 1683)
@@ -8,7 +8,7 @@
9 constant grid-h
d# 128 value #cols
-d# 94 value #rows
+d# 90 value #rows
: max-grid ( -- n ) #rows #cols * ;
\needs xy+ : xy+ ( x1 y1 x2 y2 -- x3 y3 ) rot + -rot + swap ;
Modified: cpu/x86/pc/olpc/nandcastui.fth
===================================================================
--- cpu/x86/pc/olpc/nandcastui.fth 2010-01-22 05:43:23 UTC (rev 1682)
+++ cpu/x86/pc/olpc/nandcastui.fth 2010-01-22 07:46:45 UTC (rev 1683)
@@ -1,6 +1,11 @@
purpose: User interface for NAND multicast updater
\ See license at end of file
+\ Number of blocks NANDblaster read in zdata mode
+\ nb_rx will set this using the interpret client service.
+-1 value nb-zd-#sectors
+: set-nb-zd-#sectors ( n -- ) to nb-zd-#sectors ;
+
: mesh-ssids ( -- $ )
" olpc-mesh"nolpc-mesh"nolpc-mesh"nolpc-mesh"nolpc-mesh"nolpc-mesh"
;
@@ -34,6 +39,7 @@
: #nb ( channel# -- )
depth 1 < abort" Usage: channel# #nb"
secure$ rot
+ -1 to nb-zd-#sectors
" rom:nb_rx ether:%d %s" sprintf boot-load go
;
: #nb-clone ( channel# -- )
@@ -91,17 +97,22 @@
: meshnand
use-mesh
false to already-go?
- " boot rom:nb_rx 239.255.1.2" eval
+ " boot rom:nb_rx ,,239.255.1.2" eval
;
: nb_rx
false to already-go?
- " boot rom:nb_rx 239.255.1.2" eval
+ " boot rom:nb_rx ,,239.255.1.2" eval
;
: ucastnand
false to already-go?
" boot rom:nb_rx 10.20.0.16,,10.20.0.44" eval
;
+: nbit ( "filename" -- )
+ false to already-go?
+ safe-parse-word
+ " boot rom:nb_tx udp:239.255.1.2 %s 20 131072" sprintf eval
+;
\ LICENSE_BEGIN
\ Copyright (c) 2008 FirmWorks
Modified: cpu/x86/pc/olpc/via/copynand.fth
===================================================================
--- cpu/x86/pc/olpc/via/copynand.fth 2010-01-22 05:43:23 UTC (rev 1682)
+++ cpu/x86/pc/olpc/via/copynand.fth 2010-01-22 07:46:45 UTC (rev 1683)
@@ -97,14 +97,14 @@
0 h# ff h# ff rgb>565 constant strange-color \ cyan
h# e8 h# e8 h# e8 rgb>565 constant starting-color \ very light gray
-d# 28 constant status-line
+d# 26 constant status-line
: gshow-init ( #eblocks -- )
dup set-grid-scale
cursor-off " erase-screen" $call-screen
starting-color ( #eblocks color )
- over 0 ?do i over show-state loop ( #eblocks color )
+ over 0 ?do i over show-state scale-factor +loop ( #eblocks color )
drop ( #eblocks )
1 status-line at-xy
." Blocks/square: " scale-factor .d ." Total blocks: " .d
@@ -233,62 +233,7 @@
current-block highlight-block
;
-0 value nand-block-limit
-: +block ( offset -- )
- current-block + nand-block-limit mod ( new-block# )
- dup point-block ( new-block# )
- dup show-eblock# ( new-block# )
- nand-map + c@ status-descriptions count type kill-line
-;
-: process-key ( char -- )
- case
- h# 9b of endof
- [char] A of #cols negate +block endof \ up
- [char] B of #cols +block endof \ down
- [char] C of 1 +block endof \ right
- [char] D of -1 +block endof \ left
- [char] ? of #cols 8 * negate +block endof \ page up
- [char] / of #cols 8 * +block endof \ page down
- [char] K of 8 +block endof \ page right
- [char] H of -8 +block endof \ page left
- h# 1b of d# 20 ms key? 0= if true to examine-done? then endof
- endcase
-;
-
-: examine-nand ( -- )
- 0 status-line 1- at-xy red-letters ." Arrows, fn Arrows to move, Esc to exit" black-letters cr
- #nand-pages nand-pages/block / to nand-block-limit
- 0 to current-block
- current-block highlight-block
- false to examine-done?
- begin key process-key examine-done? until
- current-block lowlight-block
-;
-
-: (scan-nand) ( -- )
- nand-map 0= if
- #nand-pages nand-pages/block / alloc-mem to nand-map
- then
-
- " usable-page-limit" $call-nand
- dup nand-pages/block / show-init ( page-limit )
-
- 0 ?do
- i classify-block ( status )
- i nand-pages/block / ( status eblock# )
- 2dup nand-map + c! ( status eblock# )
- show-block-type ( )
- nand-pages/block +loop ( )
-
- show-done
-;
-
-: scan-nand ( -- )
- open-nand (scan-nand) close-nand-ihs
- examine-nand
-;
-
\ LICENSE_BEGIN
\ Copyright (c) 2009 FirmWorks
\
Modified: cpu/x86/pc/olpc/via/fsupdate.fth
===================================================================
--- cpu/x86/pc/olpc/via/fsupdate.fth 2010-01-22 05:43:23 UTC (rev 1682)
+++ cpu/x86/pc/olpc/via/fsupdate.fth 2010-01-22 07:46:45 UTC (rev 1683)
@@ -68,7 +68,6 @@
?compare-spec-line
get-hex# to /nand-block
get-hex# to #image-eblocks
- open-nand
" size" $call-nand #image-eblocks /nand-block um* d<
" Image size is larger than output device" ?nand-abort
#image-eblocks show-init
@@ -87,6 +86,7 @@
" write-blocks-end" $call-nand ( error? )
" Write error" ?nand-abort
\ #image-eblocks erase-gap
+ fexit
;
: data: ( "filename" -- )
@@ -195,7 +195,9 @@
: fs-update ( "devspec" -- )
load-crypto abort" Can't load hash routines"
- false to secure-fsupdate?
+ open-nand ( )
+
+ false to secure-fsupdate? ( )
safe-parse-word r/o open-file ( fd )
abort" Can't open file" ( fd )
@@ -285,6 +287,29 @@
;
: update-nand ( "devspec" -- ) safe-parse-word $update-nand ;
+0 0 " " " /" begin-package
+ " nb-updater" device-name
+ 0. 2value offset
+ : size ( -- d.#bytes ) nb-zd-#sectors h# 200 um* ;
+ : open ( -- flag )
+ nb-zd-#sectors -1 = if
+ ." nb-updater: nb-zd-#sectors is not set" cr
+ false exit
+ then
+ nandih 0= if
+ ." nb-updater: fsdisk device is not open" cr
+ false exit
+ then
+ " size" $call-nand ( d.size )
+ size d- to offset
+ true
+ ;
+ : close ;
+ : seek ( d.pos -- ) offset d+ " seek" $call-nand ;
+ : read ( adr len -- actual ) " read" $call-nand ;
+ \ No write method for this
+end-package
+
\ LICENSE_BEGIN
\ Copyright (c) 2007 FirmWorks
\
Modified: cpu/x86/pc/olpc/via/fw.bth
===================================================================
--- cpu/x86/pc/olpc/via/fw.bth 2010-01-22 05:43:23 UTC (rev 1682)
+++ cpu/x86/pc/olpc/via/fw.bth 2010-01-22 07:46:45 UTC (rev 1683)
@@ -470,6 +470,7 @@
fload ${BP}/forth/lib/selstr.fth
fload ${BP}/cpu/x86/pc/olpc/via/padlock.fth \ Via security engine
+fload ${BP}/dev/hdaudio/noiseburst.fth \ audio-test support package
fload ${BP}/ofw/inet/loadtcp.fth
@@ -497,10 +498,8 @@
;
' olpc-ssids to default-ssids
-[ifdef] Later
fload ${BP}/cpu/x86/pc/olpc/nandcastui.fth
fload ${BP}/cpu/x86/pc/olpc/wifichannel.fth
-[then]
fload ${BP}/cpu/x86/pc/olpc/via/fsupdate.fth
fload ${BP}/cpu/x86/pc/olpc/via/fsverify.fth
devalias fsdisk int:0
Added: cpu/x86/pc/olpc/via/mcastnand.bth
===================================================================
--- cpu/x86/pc/olpc/via/mcastnand.bth (rev 0)
+++ cpu/x86/pc/olpc/via/mcastnand.bth 2010-01-22 07:46:45 UTC (rev 1683)
@@ -0,0 +1,30 @@
+purpose: Fetch and compile the multicast NAND reflash program
+
+command: &builder &this
+build-now
+
+fload ${BP}/cpu/x86/pc/olpc/via/versions.fth
+
+1 [if]
+" ${MCNAND_VERSION}" expand$ " test" $= [if]
+ " multicast-nand/Makefile" $file-exists? 0= [if]
+ " git clone -q git://dev.laptop.org/users/wmb/multicast-nand" expand$ $sh
+ [then]
+[else]
+" rm -rf multicast-nand" $sh
+" wget -q -O multicast-nand.tar.gz http://dev.laptop.org/git/users/wmb/multicast-nand/snapshot/multicast-nand-${MCNAND_VERSION}.tar.gz" expand$ $sh
+" tar xfz multicast-nand.tar.gz" $sh
+" mv multicast-nand-${MCNAND_VERSION} multicast-nand" expand$ $sh
+" rm multicast-nand.tar.gz" $sh
+[then]
+
+" (cd multicast-nand; make BPDIR=../../../../../../.. nandblaster15_rx.bin nandblaster_tx.bin; cp nandblaster15_rx.bin nandblaster_tx.bin ..)" expand$ $sh
+[else]
+" (cd /home/wmb/Git/multicast-nand; make BPDIR=/home/wmb/ofw.test nandblaster15_rx.bin nandblaster_tx.bin;)" $sh
+" cp /home/wmb/Git/multicast-nand/nandblaster*.bin ." expand$ $sh
+[then]
+
+\ This forces the creation of a .log file, so we don't re-fetch
+writing mcastnand.version
+" ${MCNAND_VERSION}"n" expand$ ofd @ fputs
+ofd @ fclose
Modified: cpu/x86/pc/olpc/via/olpc.bth
===================================================================
--- cpu/x86/pc/olpc/via/olpc.bth 2010-01-22 05:43:23 UTC (rev 1682)
+++ cpu/x86/pc/olpc/via/olpc.bth 2010-01-22 07:46:45 UTC (rev 1683)
@@ -28,7 +28,7 @@
\ in: ${BP}/dev/ide/build/leghier.fc
\ in: ${BP}/cpu/x86/pc/olpc/via/build/camera.fc
in: ${BP}/cpu/x86/pc/olpc/via/build/dsdt.aml
-\ in: ${BP}/cpu/x86/pc/olpc/via/build/mcastnand.bin
+in: ${BP}/cpu/x86/pc/olpc/via/build/mcastnand.bin
in: ${BP}/dev/hdaudio/build/hdaudio.fc
in: sd8686.bin
in: testicons.bin
@@ -188,10 +188,8 @@
" ${BP}/cpu/x86/pc/olpc/images/leds.di" $add-file
" ${BP}/cpu/x86/pc/olpc/images/ebook.di" $add-file
-[ifdef] Later
- " ${BP}/cpu/x86/pc/olpc/via/build/nandblaster_rx.bin" " nb_rx" $add-deflated-dropin
+ " ${BP}/cpu/x86/pc/olpc/via/build/nandblaster15_rx.bin" " nb_rx" $add-deflated-dropin
" ${BP}/cpu/x86/pc/olpc/via/build/nandblaster_tx.bin" " nb_tx" $add-deflated-dropin
-[then]
.( Dropin top is ) ofd @ fsize .x cr
Modified: cpu/x86/pc/olpc/via/versions.fth
===================================================================
--- cpu/x86/pc/olpc/via/versions.fth 2010-01-22 05:43:23 UTC (rev 1682)
+++ cpu/x86/pc/olpc/via/versions.fth 2010-01-22 07:46:45 UTC (rev 1683)
@@ -2,7 +2,7 @@
\ The overall firmware revision
macro: FW_MAJOR A
-macro: FW_MINOR 26
+macro: FW_MINOR 26h
\ The EC microcode
macro: EC_VERSION 1_9_21
@@ -30,6 +30,6 @@
\ 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 b9a9d22b6037c3891f9cf8eabeaf7cd9efbd5241
+macro: MCNAND_VERSION 0fcff94005b9570e4b7f1406f2f9e155f828b6d2
\ macro: MCNAND_VERSION test
\ macro: MCNAND_VERSION HEAD
More information about the openfirmware
mailing list