[openfirmware] r1245 - cpu/x86/pc/olpc cpu/x86/pc/olpc/via dev/hdaudio dev/via/unichrome ofw/core

svn at openfirmware.info svn at openfirmware.info
Mon Jul 20 23:30:47 CEST 2009


Author: wmb
Date: 2009-07-20 23:30:47 +0200 (Mon, 20 Jul 2009)
New Revision: 1245

Modified:
   cpu/x86/pc/olpc/copynand.fth
   cpu/x86/pc/olpc/fw.bth
   cpu/x86/pc/olpc/life.fth
   cpu/x86/pc/olpc/security.fth
   cpu/x86/pc/olpc/sound.fth
   cpu/x86/pc/olpc/via/config.fth
   cpu/x86/pc/olpc/via/devices.fth
   cpu/x86/pc/olpc/via/fw.bth
   cpu/x86/pc/olpc/via/olpc.bth
   cpu/x86/pc/olpc/via/versions.fth
   dev/hdaudio/core.fth
   dev/via/unichrome/unichrome.fth
   ofw/core/banner.fth
Log:
Via - omnibus checkin to enable support for numerous OLPC features
that had been deferred, including pretty boot, security, startu sound, ...








Modified: cpu/x86/pc/olpc/copynand.fth
===================================================================
--- cpu/x86/pc/olpc/copynand.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/copynand.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -228,40 +228,6 @@
 
 : written?  ( adr len -- flag )  h# ffffffff lskip 0<>  ;
 
-
-d# 24 d# 24 2value ulhc
-
-d# 22 constant status-line
-
-8 constant glyph-w
-8 constant glyph-h
-
-9 constant grid-w
-9 constant grid-h
-
-d# 128 value #cols
-: xy+  ( x1 y1 x2 y2 -- x3 y3 )  rot + -rot  + swap  ;
-: xy*  ( x y w h -- x*w y*h )  rot *  >r  * r>  ;
-
-: do-fill  ( color x y w h -- )  " fill-rectangle" $call-screen  ;
-
-\ States:  0:erased  1:bad  2:waiting for write  3:written
-
-: >loc  ( eblock# -- x y )  #cols /mod  grid-w grid-h xy*  ulhc xy+  ;
-
-: show-state  ( eblock# state -- )  swap >loc  glyph-w glyph-h  do-fill  ;
-
-code map-color  ( color24 -- color565 )
-   bx pop
-   bx ax mov  3 # ax shr  h#   1f # ax and            \ Blue in correct place
-   bx cx mov  5 # cx shr  h#  7e0 # cx and  cx ax or  \ Green and blue in place
-              8 # bx shr  h# f800 # bx and  bx ax or  \ Red, green and blue in place
-   ax push   
-c;
-: show-color  ( eblock# color32 -- )  map-color show-state  ;
-
-dev screen  : erase-screen erase-screen ;  dend
-
 h# 80 h# 80 h# 80  rgb>565 constant bbt-color      \ gray
     0     0     0  rgb>565 constant erased-color   \ black
 h# ff     0     0  rgb>565 constant bad-color      \ red
@@ -272,6 +238,8 @@
     0 h# ff h# ff  rgb>565 constant strange-color  \ cyan
 h# ff h# ff h# ff  rgb>565 constant starting-color \ white
 
+d# 22 constant status-line
+
 : gshow-init  ( #eblocks -- )
    cursor-off  " erase-screen" $call-screen
 

Modified: cpu/x86/pc/olpc/fw.bth
===================================================================
--- cpu/x86/pc/olpc/fw.bth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/fw.bth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -326,6 +326,7 @@
 fload ${BP}/cpu/x86/pc/olpc/suspend.fth      \ Suspend/resume setup
 fload ${BP}/dev/olpc/keyboard/selftest.fth   \ Keyboard diagnostic
 fload ${BP}/dev/olpc/touchpad/touchpad.fth   \ Touchpad diagnostic
+fload ${BP}/cpu/x86/pc/olpc/gridmap.fth      \ Gridded display tools
 fload ${BP}/cpu/x86/pc/olpc/copynand.fth
 \ fload ${BP}/cpu/x86/pc/olpc/carousel.fth     \ Carouseled NAND writing
 fload ${BP}/cpu/x86/pc/olpc/crypto.fth       \ Cryptographic image validation

Modified: cpu/x86/pc/olpc/life.fth
===================================================================
--- cpu/x86/pc/olpc/life.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/life.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -13,12 +13,12 @@
 /board buffer: lf_board_work  
 
 \ some macros to get a linear address o a cell of board or working area
-: >offset ( i j -- lin_addr ) swap lf_width *  + ;
+: ij>offset ( i j -- lin_addr ) swap lf_width *  + ;
 : >cell  ( i j -- adr )  swap lf_width *  + lf_board +  ;
 : >work  ( i j -- adr )  swap lf_width *  + lf_board_work +  ;
 
 : show-cell  ( state y x -- )
-   >offset swap  if  lf_fg  else  lf_bg  then  show-state
+   ij>offset swap  if  lf_fg  else  lf_bg  then  show-state
 ;
 
 \ display the board of life
@@ -33,7 +33,7 @@
 \ working variable
 variable cell-sum
 
-: xy+  ( x1 y1 x2 y2 -- x3 y3 )  rot +  -rot +  swap ;
+\needs xy+ : xy+  ( x1 y1 x2 y2 -- x3 y3 )  rot +  -rot +  swap ;
 
 code sumcell  ( adr -- sum )
    bx pop
@@ -69,7 +69,7 @@
     1  1 +sum        ( i j )
    2drop cell-sum @  ( sum )
 [else]
-    >offset lf_board + sumcell
+    ij>offset lf_board + sumcell
 [then]
 ;
 

Modified: cpu/x86/pc/olpc/security.fth
===================================================================
--- cpu/x86/pc/olpc/security.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/security.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -287,7 +287,7 @@
 \ string is shorter than n, head$ is the input string and tail$ is
 \ the null string.
 
-: break$  ( $ n -- tail$ head$ )
+: cut$  ( $ n -- tail$ head$ )
    2dup <  if  drop null$ 2swap exit  then
    dup >r  /string   ( tail$ )
    over r@ -  r>     ( tail$ head$ )
@@ -307,7 +307,7 @@
 : key-in-list?  ( key$ -- flag )  \ Sets thiskey$ as an important side effect
    2>r                                   ( r: key$ )
    pubkey$  begin  dup  while            ( rem$  r: key$ )
-      pubkeylen break$                   ( rem$' thiskey$  r: key$ )
+      pubkeylen cut$                     ( rem$' thiskey$  r: key$ )
       2r@ 2over tail$=  if               ( rem$ thiskey$  r: key$ )
          to thiskey$                     ( rem$  r: key$ )
          2r> 4drop  true                 ( true )
@@ -373,7 +373,7 @@
 \ numfield is a factor used for parsing 2-digit fields from date/time strings.
 : numfield  ( exp$ min max -- exp$' )
    >r >r                      ( exp$ r: max min )
-   2 break$ $number  throw    ( exp$' num  r: max min )
+   2 cut$ $number  throw      ( exp$' num  r: max min )
    dup r> < throw             ( exp$  num  r: max )
    dup r> > throw             ( exp$  num  )
 ;
@@ -383,10 +383,10 @@
 \ according to the simplified calculation described above for "get-date"
 
 : (expiration-to-seconds)  ( expiration$ -- d.seconds )
-   4 break$ $number throw >r     ( exp$' r: y )
+   4 cut$ $number throw >r       ( exp$' r: y )
    1 d# 12 numfield >r           ( exp$' r: y m )
    1 d# 31 numfield >r           ( exp$' r: y m d )
-   1 break$ " T" $=  0=  throw   ( exp$' r: y m d )
+   1 cut$ " T" $=  0=  throw     ( exp$' r: y m d )
    0 d# 23 numfield >r           ( exp$' r: y m d h )
    0 d# 59 numfield >r           ( exp$' r: y m d h m )
    0 d# 59 numfield >r           ( exp$' r: y m d h m s )
@@ -906,7 +906,7 @@
 : secure-startup  ( -- )
    in-factory?  if
       button-check button-x or  button-o or  button-square or  button-rotate or  ( mask )
-      game-key-mask =  if  exit  then
+      game-key-mask =  if  sound-end exit  then
    then
 
    ['] noop to ?show-device
@@ -923,11 +923,14 @@
    else
       freeze  dcon-freeze
 
+[ifdef] jffs2-support
       \ The following is a hack to let the user unfreeze the screen during
       \ the several-second period while JFFS2 is scanning the NAND
       " dev /jffs2-file-system ' ?unfreeze to scan-callout  dend" eval
+[then]
    then
 
+   sound-end
    \ The screen may be frozen when we exit, because we want pretty
    \ boot even when not secure.
 

Modified: cpu/x86/pc/olpc/sound.fth
===================================================================
--- cpu/x86/pc/olpc/sound.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/sound.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -37,8 +37,10 @@
    r> to load-started
    r> to playback-volume
 ;
+: sound-end  ( -- )
+   " wait-sound" ['] $call-audio catch  if  2drop  then
+;
 
-
 \ LICENSE_BEGIN
 \ Copyright (c) 2006 FirmWorks
 \ 

Modified: cpu/x86/pc/olpc/via/config.fth
===================================================================
--- cpu/x86/pc/olpc/via/config.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/via/config.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -31,15 +31,12 @@
 
 create resident-packages
 \ create use-watch-all
-\ create use-root-isa   \ If defined, isa node is in the devtree root, not under /pci
 create no-floppy-node
 create no-com2-node
 create no-lpt-node
-create use-pci-isa
-create basic-isa
+create basic-isa       \ Disables some CHRP stuff in the ISA legacy nodes
 create isa-dma-only
 create use-ega
-create save-msrs
 
 create use-null-nvram  \ Don't store configuration variables
 \ create use-flash-nvram  \ Store configuration variables in firmware FLASH

Modified: cpu/x86/pc/olpc/via/devices.fth
===================================================================
--- cpu/x86/pc/olpc/via/devices.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/via/devices.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -56,31 +56,18 @@
 \ devalias screen /ega-text
 [then]
 
-[ifdef] use-root-isa
-0 0  " "  " /" begin-package
-   fload ${BP}/cpu/x86/pc/isabus.fth	\ ISA Bus Bridge under root node
-end-package
-[then]
-
-[ifdef] use-pci-isa
-
 [ifdef] addresses-assigned
-[ifdef] use-pci-isa
 \ This must precede isamisc.fth in the load file, to execute it first
 fload ${BP}/cpu/x86/pc/moveisa.fth
 [then]
-[then]
 
 0 0  " 0"  " /pci" begin-package
    fload ${BP}/dev/pci/isa.fth		\ ISA bus bridge under PCI node
    fload ${BP}/dev/pci/isamisc.fth
 end-package
 
-[then]
-
 fload ${BP}/cpu/x86/pc/olpc/timertest.fth  \ Selftest for PIT timer
 
-1 [if]
 warning @ warning off
 : probe-pci  ( -- )
    probe-pci
@@ -258,7 +245,6 @@
 
 \needs md5init  fload ${BP}/ofw/ppp/md5.fth                \ MD5 hash
 
-[ifdef] use-ec
 fload ${BP}/dev/olpc/kb3700/ecspi.fth      \ EC chip SPI FLASH access
 
 warning @ warning off
@@ -272,7 +258,6 @@
 fload ${BP}/dev/olpc/kb3700/ecio.fth       \ I/O space access to EC chip
 
 fload ${BP}/cpu/x86/pc/olpc/via/boardrev.fth   \ Board revision decoding
-[then]
 
 : cpu-mhz  ( -- n )
    " /cpu at 0" find-package drop	( phandle )
@@ -280,12 +265,10 @@
    decode-int nip nip  d# 1000000 /  
 ;
 
-[ifdef] use-ec-Later
 stand-init: Date to EC
    time&date d# 2000 -  ['] ec-date! catch  if  3drop  then
    3drop
 ;
-[then]
 
 [ifdef] use-wlan
 stand-init: Wireless reset
@@ -297,31 +280,12 @@
 ;
 [then]
 
-[ifdef] use-ec-Later
-stand-init: PCI properties
-   " /pci" find-device
-      board-revision  h# b18  <  if
-         d# 33,333,333
-      else
-         \ We switched to 66 MHz at B2
-         d# 66,666,667
-      then
-      " clock-frequency" integer-property
-   dend
-;
-[then]
-
-[ifdef] use-ec
 fload ${BP}/cpu/x86/pc/olpc/mfgdata.fth      \ Manufacturing data
 fload ${BP}/cpu/x86/pc/olpc/mfgtree.fth      \ Manufacturing data in device tree
 .( XXX Reinstate kbdtype.fth) cr
 \ fload ${BP}/cpu/x86/pc/olpc/kbdtype.fth      \ Export keyboard type
 
-[ifdef] use-ec
 fload ${BP}/dev/olpc/kb3700/battery.fth      \ Battery status reports
-[else]
-: ?enough-power ;
-[then]
    
 fload ${BP}/dev/olpc/spiflash/spiflash.fth   \ SPI FLASH programming
 fload ${BP}/dev/olpc/spiflash/spiui.fth      \ User interface for SPI FLASH programming
@@ -330,15 +294,9 @@
 
 : ofw-fw-filename$  " disk:\boot\olpc.rom"  ;
 ' ofw-fw-filename$ to fw-filename$
-[then]
 
 : +i encode-int encode+  ;  : 0+i  0 +i  ;
 
-[ifdef] Later
-fload ${BP}/cpu/x86/pc/olpc/via/gpioinit.fth
-fload ${BP}/cpu/x86/pc/olpc/via/chipinit.fth
-[then]
-
 0 0  " 1,0"  " /pci" begin-package
    fload ${BP}/dev/via/unichrome/loadpkg.fth     \ Geode display
    fload ${BP}/dev/via/unichrome/dconsmb.fth     \ SMB access to DCON chip
@@ -355,7 +313,6 @@
 
 fload ${BP}/cpu/x86/adpcm.fth            \ ADPCM decoding
 
-[ifdef] use-ec-Later
 warning @ warning off
 : stand-init
    stand-init
@@ -386,10 +343,9 @@
    dend
 ;
 warning !
-[then]
 
 [ifdef] Later
-fload ${BP}/cpu/x86/pc/olpc/micin.fth   \ Microphone input AC/DC coupling
+\ Add support for DC-couple microphone input
 [then]
 
 \ LICENSE_BEGIN

Modified: cpu/x86/pc/olpc/via/fw.bth
===================================================================
--- cpu/x86/pc/olpc/via/fw.bth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/via/fw.bth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -98,10 +98,6 @@
 
 fload ${BP}/cpu/x86/pc/olpc/port80.fth	\ Port 80 debug messages
 
-[ifdef] Later
-fload ${BP}/dev/geode/gpio.fth		\ Rudimentary GPIO driver
-[then]
-
 fload ${BP}/cpu/x86/pc/isaio.fth
 fload ${BP}/dev/pci/configm1.fth	\ Generic PCI configuration access
 
@@ -259,7 +255,6 @@
 
 : protect-fw  ( -- )  secure?  if  ec-indexed-io-off  then  ;
 
-\ stand-init-debug?  [if]
 warning @  warning off 
 : init
 \ initial-heap add-memory
@@ -272,14 +267,9 @@
          protect-fw
          ." Interacting" cr  hex interact
       then
-
-  [ifdef] Later
-      setup
-  [then]
    then
 ;
 warning !
-[then]
 
 : (.firmware)  ( -- )
    ." Open Firmware  "  .built  cr
@@ -316,7 +306,6 @@
 ;
 ' screen-#lines to lines/page
 
-[ifdef] Later
 fload ${BP}/cpu/x86/pc/olpc/disptest.fth
 : setup-for-linux  ( -- )
    [ ' linux-hook behavior compile, ]    \ Chain to old behavior
@@ -326,17 +315,17 @@
 
 fload ${BP}/cpu/x86/pc/olpc/help.fth
 fload ${BP}/cpu/x86/pc/olpc/gui.fth
-[then]
 fload ${BP}/cpu/x86/pc/olpc/via/suspend.fth  \ Suspend/resume setup
 fload ${BP}/dev/olpc/keyboard/selftest.fth   \ Keyboard diagnostic
 fload ${BP}/dev/olpc/touchpad/touchpad.fth   \ Touchpad diagnostic
+fload ${BP}/cpu/x86/pc/olpc/gridmap.fth      \ Gridded display tools
 [ifdef] Later
 fload ${BP}/cpu/x86/pc/olpc/copynand.fth
+[then]
 \ fload ${BP}/cpu/x86/pc/olpc/carousel.fth     \ Carouseled NAND writing
 fload ${BP}/cpu/x86/pc/olpc/crypto.fth       \ Cryptographic image validation
 fload ${BP}/cpu/x86/pc/olpc/lzip.fth         \ Access zip images from memory
 
-[then]
 fload ${BP}/cpu/x86/pc/olpc/gamekeys.fth
 
 : emacs  ( -- )
@@ -354,22 +343,21 @@
 \ fload ${BP}/cpu/x86/pc/biosload/rmenter.fth
 fload ${BP}/cpu/x86/pc/biosints.fth
 fload ${BP}/cpu/x86/pc/olpc/biosresume.fth
+[then]
 
 fload ${BP}/cpu/x86/pc/olpc/setwp.fth
+fload ${BP}/cpu/x86/pc/olpc/sound.fth
 fload ${BP}/cpu/x86/pc/olpc/security.fth
 fload ${BP}/ofw/gui/ofpong.fth
 fload ${BP}/cpu/x86/pc/olpc/life.fth
-fload ${BP}/cpu/x86/pc/olpc/sound.fth
 [ifdef] wlan-wackup
 fload ${BP}/cpu/x86/pc/olpc/wlantest.fth
 
 ' gx-power-off to power-off
 [then]
-[then]
 
 fload ${BP}/cpu/x86/pc/olpc/rtcwake.fth
 
-[ifdef] Later
 [ifdef] use-ega
 : ega-output  ( -- )
    \ This only works if stdout is currently /display
@@ -379,7 +367,6 @@
    " /ega-text" output
 ;
 [then]
-[then]
 
 " /xp u:\boot\olpc.fth sd:\boot\olpc.fth c:\boot\olpc.fth nand:\boot\olpc.fth /prober /usb/ethernet /usb/wlan"
    ' boot-device  set-config-string-default
@@ -410,7 +397,6 @@
 : dimmer  ( -- )  screen-ih  if  " dimmer" screen-ih $call-method  then  ;
 : brighter  ( -- )  screen-ih  if  " brighter" screen-ih $call-method  then  ;
 
-[ifdef] Later
 dev /8042/keyboard
 0 value waiting-up?
 : olpc-check-abort  ( scan-code -- abort? )  \ Square pressed?
@@ -440,7 +426,6 @@
 ;
 ' handle-volume?  to scan-handled?
 dend
-[then]
 
 \ Eliminate 4 second delay in install console for the case where
 \ there is no keyboard.  The delay is unnecessary because the screen
@@ -448,13 +433,12 @@
 patch drop ms install-console
 
 : via-reset-all  ( -- )
-[ifdef] Later
    " screen"  " dcon-off" ['] execute-device-method  catch  if
       2drop 2drop
    then
 
    ec-reboot   \ Tell the EC to reboot us, so the EC can reset too
-[then]
+
    \ Prevent "resume from S3" on restart
    4 acpi-w@  h# 1c00 invert and  4 acpi-w!
 
@@ -532,7 +516,6 @@
 \ fload ${BP}/cpu/x86/pc/report.fth
 fload ${BP}/ofw/core/dualconsole.fth
 
-[ifdef] Later
 : fast-boot?  ( -- flag )
 [ifdef] rom-loaded
    button-x game-key?  0=
@@ -540,7 +523,6 @@
    false
 [then]
 ;
-[then]
 
 : set-mc  ( 19-val 1a-val -- )
    lbsplit  h# 66  h# 69  do  i cmos!  -1 +loop
@@ -561,7 +543,6 @@
 \   .built cr
 ;
 
-[ifdef] Later
 : ?factory-boot-sequence  ( -- flag )
    \ TS is the "test station" tag.  Its value is set to "DL" at the
    \ end of manufacturing test.
@@ -569,14 +550,17 @@
       ?-null  " DL" $=  0=  ( in-factory? )
    else                     ( )
       \ Missing TS tag is treated as in factory
+[ifdef] Later
       true                  ( in-factory? )
+[else]
+      false
+[then]
    then                     ( in-factory? )
    if                       ( )
       " /prober /usb/ethernet disk:\boot\olpc.fth nand:\boot\olpc.fth /xp sd:\boot\olpc.fth /usb/wlan"
       to boot-device
    then                     ( )
 ;
-[then]
 
 : console-start  ( -- )
    " screen" open-dev  ?dup  if
@@ -603,7 +587,6 @@
    then
 ;
 
-[ifdef] Later
 : ?games  ( -- )
    rocker-right game-key?  if
       protect-fw
@@ -623,6 +606,7 @@
    then
 ;
 
+[ifdef] Later
 : ?scan-nand  ( -- )
    rocker-up game-key?  if
       protect-fw  text-on  ['] scan-nand guarded
@@ -633,6 +617,7 @@
    game-key-mask =  if  protect-fw try-fs-update  then
 ;
 [then]
+
 : open-keyboard  ( -- )
    " keyboard" open-dev  ?dup  if  set-stdin  then
 ;
@@ -640,13 +625,11 @@
 : startup  ( -- )
    standalone?  0=  if  exit  then
 
-[ifdef] Later
    block-exceptions
    no-page
 
    ?factory-mode
    ?factory-boot-sequence
-[then]
 
    console-start
 
@@ -658,33 +641,29 @@
 
    read-game-keys
 
-[ifdef] Later
    stdout off  \ 
-[then]
 
    " probe-" do-drop-in
 
    probe-pci
-[ifdef] Later
    sound
-[then]
    open-keyboard
-[ifdef] Later
    ?games
-[then]
    ['] false to interrupt-auto-boot?
    probe-usb
    " probe+" do-drop-in
+
    setup-smbios  \ Must be done after build-date is defined via do-drop-in
 
    interpreter-init
+
+   ?diags
 [ifdef] Later
    ?scan-nand
-   ?diags
    ?fs-update
+[then]
    secure-startup
    unblock-exceptions
-[then]
    ['] (interrupt-auto-boot?) to interrupt-auto-boot?
    ?usb-keyboard
 \   install-console
@@ -692,14 +671,12 @@
    banner
    auto-boot
 
-[ifdef] Later
    frozen?            ( frozen? )
    unfreeze visible   ( frozen? )
    if  banner  then  \ Reissue banner if it was suppressed
 
    blue-letters ." Type 'help' for more information." black-letters
    cr cr
-[then]
 
    quit
 ;
@@ -711,10 +688,8 @@
 ;
 : urom  " flash! u:\new.rom" eval  ;
 
-[ifdef] use-ec-Later
 \ Fancy battery charge logger.
 fload ${BP}/cpu/x86/pc/olpc/charge.fth
-[then]
 
 \ This helps with TeraTerm, which sends ESC-O as the arrow key prefix
 also hidden also keys-forth definitions

Modified: cpu/x86/pc/olpc/via/olpc.bth
===================================================================
--- cpu/x86/pc/olpc/via/olpc.bth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/via/olpc.bth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -113,7 +113,6 @@
    " ${BP}/ofw/fcode/memtest.fth"  " memtest.fth"          $add-deflated-dropin
 
    " ${BP}/dev/hdaudio/build/hdaudio.fc"         " class040300"   $add-deflated-dropin
-[ifdef] Later
 
    " ${BP}/ofw/inet/telnetd.fth"          " telnetd"             $add-deflated-dropin
 
@@ -138,7 +137,6 @@
    " ${BP}/cpu/x86/pc/olpc/images/wireless.565" " wlan.565"      $add-deflated-dropin
    " ${BP}/cpu/x86/pc/olpc/images/xo.565"       " xo.565"        $add-deflated-dropin
    " ${BP}/cpu/x86/pc/olpc/images/sd.565"       " sd.565"        $add-deflated-dropin
-[then]
 
    " ${BP}/ofw/termemu/15x30pc.psf"             " font"          $add-deflated-dropin
 [ifdef] use-ega

Modified: cpu/x86/pc/olpc/via/versions.fth
===================================================================
--- cpu/x86/pc/olpc/via/versions.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ cpu/x86/pc/olpc/via/versions.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -2,7 +2,7 @@
 
 \ The overall firmware revision
 macro: FW_MAJOR A
-macro: FW_MINOR 05
+macro: FW_MINOR 05b
 
 \ The EC microcode
 macro: EC_VERSION 1_9_5

Modified: dev/hdaudio/core.fth
===================================================================
--- dev/hdaudio/core.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ dev/hdaudio/core.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -232,10 +232,10 @@
 : low-rate?  ( Hz )  dup d# 48.000 <  swap d# 44.100 <>  and  ;
 
 : set-sample-rate  ( Hz -- )
-   to sample-rate
-   dup low-rate? if
+   dup to sample-rate  ( Hz )
+   dup low-rate? if    ( Hz )
       48kHz  d# 48.000 swap / to scale-factor
-   else
+   else                ( Hz )
       1 to scale-factor
       d# 48.000 / case \ find nearest supported rate
          0   of  44.1kHz  endof
@@ -413,10 +413,6 @@
    /sound-buffer         ( actual )
 ;
 
-: write  ( adr len -- actual )
-   open-out  audio-out
-;
-
 : release-sound-buffer  ( -- )
    sound-buffer sound-buffer-phys /sound-buffer dma-map-out
    upsampling? if  sound-buffer /sound-buffer dma-free  then
@@ -429,6 +425,14 @@
    release-sound-buffer
 ;
 
+: write  ( adr len -- actual )
+   open-out  audio-out
+;
+
+\ XXX remove when write is fixed to set up a completion handler
+: wait-sound  ( -- )  write-done  ;
+    
+
 : set-volume  ( dB -- )  dac to node  step# output-gain  ;
 
 \ \\ Recording

Modified: dev/via/unichrome/unichrome.fth
===================================================================
--- dev/via/unichrome/unichrome.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ dev/via/unichrome/unichrome.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -602,6 +602,8 @@
 
 defer init-display  ' init-primary-display is init-display
 
+0 instance value graphmem
+
 : init-frame-buffer  ( -- )		\ Initializes the controller
 \  smb-init
 \   set-dac-colors		\ Set up initial color map
@@ -616,6 +618,8 @@
       ( default )  nip nip
    endcase
    h# f to background-color
+
+   frame-buffer-adr /fb +  to graphmem
 ;
 
 : set-fb  ( -- )

Modified: ofw/core/banner.fth
===================================================================
--- ofw/core/banner.fth	2009-07-17 21:47:18 UTC (rev 1244)
+++ ofw/core/banner.fth	2009-07-20 21:30:47 UTC (rev 1245)
@@ -69,12 +69,12 @@
    " size" memory-node @ $call-method 1meg um/mod nip
 ;
 : .memory  ( -- )
-   memory-size dup d# 1024 / ?dup  if ( mb gb )
-      nip "  GiB" rot                 ( gb$ gb )
-   else                               ( mb )
-      " MiB " rot                     ( mb$ mb )
-   then                               ( m$ m )
-   .d  type ." memory installed"      (  )
+   memory-size dup d# 1024 / ?dup  if  ( mb gb )
+      nip " GiB" rot                   ( gb$ gb )
+   else                                ( mb )
+      " MiB" rot                       ( mb$ mb )
+   then                                ( m$ m )
+   .d  type ."  memory installed"      ( )
 ;
 : .serial  ( -- )
    push-decimal  ." Serial #"  serial# (.) type




More information about the openfirmware mailing list