[openfirmware] r1338 - cpu/x86/pc/olpc

svn at openfirmware.info svn at openfirmware.info
Fri Aug 28 23:54:40 CEST 2009


Author: wmb
Date: 2009-08-28 23:54:40 +0200 (Fri, 28 Aug 2009)
New Revision: 1338

Modified:
   cpu/x86/pc/olpc/devices.fth
   cpu/x86/pc/olpc/fw.bth
Log:
OLPC XO-1 - Updated XO-1 build to match changes to XO-1.5 build,
particularly relating to the use of full console multiplexing
instead of dualconsole.


Modified: cpu/x86/pc/olpc/devices.fth
===================================================================
--- cpu/x86/pc/olpc/devices.fth	2009-08-28 21:40:06 UTC (rev 1337)
+++ cpu/x86/pc/olpc/devices.fth	2009-08-28 21:54:40 UTC (rev 1338)
@@ -82,6 +82,8 @@
 ;
 warning !
 
+fload ${BP}/dev/olpc/spiflash/flashif.fth   \ Generic FLASH interface
+
 \ Create the top-level device node to access the entire boot FLASH device
 0 0  " fff00000"  " /" begin-package
    " flash" device-name
@@ -248,7 +250,6 @@
 
 fload ${BP}/dev/geode/acpi.fth           \ Power management
 
-fload ${BP}/dev/olpc/spiflash/flashif.fth  \ Generic FLASH interface
 fload ${BP}/dev/olpc/spiflash/memflash.fth \ Memory-mapped FLASH access
 
 warning @ warning off

Modified: cpu/x86/pc/olpc/fw.bth
===================================================================
--- cpu/x86/pc/olpc/fw.bth	2009-08-28 21:40:06 UTC (rev 1337)
+++ cpu/x86/pc/olpc/fw.bth	2009-08-28 21:54:40 UTC (rev 1338)
@@ -222,6 +222,11 @@
 fload ${BP}/cpu/x86/pc/boot.fth
 fload ${BP}/cpu/x86/pc/linux.fth
 
+0 value keyboard-ih
+0 value screen-ih
+
+fload ${BP}/ofw/core/muxdev.fth          \ I/O collection/distribution device
+
 : usb-port-power-map  ( -- n )
    board-revision  h# b10  h# b2f between  if  \ B1 and B2
       h# 3ab   \ USB4:PWR1  USB3:PWR1  USB2:PWR1  USB1:PWR2
@@ -238,10 +243,10 @@
 
 hex
 : i-key-wait  ( ms -- pressed? )
-   cr ." Type 'i' to interrupt stand-init sequence" cr 
+   cr ." Type 'i' to interrupt stand-init sequence" cr   ( ms )
    0  do
-      key?  if
-         key upc ascii I  =  if  true unloop exit  then
+      ukey?  if
+         ukey upc ascii I  =  if  true unloop exit  then
       then
       1 ms
    loop
@@ -252,7 +257,6 @@
 
 : protect-fw  ( -- )  secure?  if  ec-indexed-io-off  then  ;
 
-\ stand-init-debug?  [if]
 warning @  warning off 
 : init
 \ initial-heap add-memory
@@ -274,7 +278,7 @@
 [then]
    then
 ;
-\ warning !
+warning !
 [then]
 
 : (.firmware)  ( -- )
@@ -292,7 +296,6 @@
 fload ${BP}/dev/null.fth
 fload ${BP}/ofw/core/bailout.fth
 
-[ifdef] olpc
 \ GUI
 false value gui-safeboot?
 
@@ -303,13 +306,11 @@
 true value user-mode?
 
 fload ${BP}/cpu/x86/pc/olpc/banner.fth
-[then]
 
 fload ${BP}/ofw/gui/loadmenu.fth
 fload ${BP}/cpu/x86/pc/olpc/disptest.fth
 \ fload ${BP}/ofw/gui/insticon.fth
 
-[ifdef] olpc
 : setup-for-linux  ( -- )
    [ ' linux-hook behavior compile, ]    \ Chain to old behavior
    vpci-devices-on   \ Do this after quieting USB
@@ -321,6 +322,21 @@
 ;
 ' screen-#lines to lines/page
 
+true value text-on?
+: text-off  ( -- )
+   text-on?  if
+      screen-ih remove-mux
+      false to text-on?
+   then
+;
+: text-on   ( -- )
+   text-on? 0=  if
+      screen-ih add-mux
+      cursor-on
+      true to text-on?
+   then
+;
+
 fload ${BP}/cpu/x86/pc/olpc/help.fth
 fload ${BP}/cpu/x86/pc/olpc/gui.fth
 fload ${BP}/cpu/x86/pc/olpc/suspend.fth      \ Suspend/resume setup
@@ -332,7 +348,6 @@
 fload ${BP}/cpu/x86/pc/olpc/crypto.fth       \ Cryptographic image validation
 fload ${BP}/cpu/x86/pc/olpc/lzip.fth         \ Access zip images from memory
 fload ${BP}/cpu/x86/pc/olpc/gamekeys.fth
-fload ${BP}/cpu/x86/pc/olpc/memtest.fth
 
 : emacs  ( -- )
    false to already-go?
@@ -357,7 +372,6 @@
 [then]
 fload ${BP}/cpu/x86/pc/olpc/rtcwake.fth
 ' gx-power-off to power-off
-[then]
 
 [ifdef] use-ega
 : ega-output  ( -- )
@@ -419,7 +433,7 @@
    then
 
    ec-reboot   \ Tell the EC to reboot us, so the EC can reset too
-   begin again
+   begin  halt  again
 ;
 ' dcon-reset-all to reset-all
 
@@ -440,6 +454,7 @@
    fload ${BP}/ofw/inet/http.fth	\ HTTP client
 end-support-package
 
+fload ${BP}/cpu/x86/pc/olpc/memtest.fth
 
 fload ${BP}/ofw/wifi/wifi-cfg.fth
 support-package: supplicant
@@ -486,8 +501,8 @@
 
 " dhcp" ' ip-address  set-config-string-default
 
-\ fload ${BP}/cpu/x86/pc/report.fth
-fload ${BP}/ofw/core/dualconsole.fth
+: c1-idle  ( -- )  interrupts-enabled?  if  halt  then  ;
+' c1-idle to stdin-idle
 
 : fast-boot?  ( -- flag )
 [ifdef] rom-loaded
@@ -503,6 +518,21 @@
    1 h# 61 cmos!   1 h# 60 cmos!
 ;
 
+: console-start  ( -- )
+   video-map cr
+
+   install-mux-io
+   cursor-off
+   true to text-on?
+
+
+   " //null" open-dev to null-ih  \ For text-off state
+
+   ?gui-banner
+\   ." nvramrc" cr
+\   use-nvramrc?  if  nvramrc safe-evaluate  then
+;
+
 : interpreter-init  ( -- )
    hex
    warning on
@@ -531,24 +561,6 @@
    then                     ( )
 ;
 
-
-: console-start  ( -- )
-[ifdef] rom-loaded
-   video-map cr
-[then]
-   " screen" open-dev  ?dup  if
-      set-stdout
-\       logo-banner drop
-\       close-dev
-\       0 stdout !
-   then
-
-   install-dual-console
-
-   ?gui-banner
-\   ." nvramrc" cr
-\   use-nvramrc?  if  nvramrc safe-evaluate  then
-;
 : debug-interact  ( -- )
    early-interact?  if
       " Interrupting startup sequence prior to probing" .because
@@ -586,9 +598,6 @@
    button-check button-x or  button-o or  button-square or   ( mask )
    game-key-mask =  if  protect-fw try-fs-update  then
 ;
-: open-keyboard  ( -- )
-   " keyboard" open-dev  ?dup  if  set-stdin  then
-;
 
 : ?resume-botch
    h# 1454 pl@ 2 and  if
@@ -619,17 +628,22 @@
    then
 
    read-game-keys
-   stdout off  \ 
 
+   text-off
+
    " probe-" do-drop-in
 
    probe-pci
+   show-child
+   install-alarm
    sound
-   open-keyboard
    ?games
+
    ['] false to interrupt-auto-boot?
    probe-usb
    " probe+" do-drop-in
+   report-disk
+   report-keyboard
 
    setup-smbios  \ Must be done after build-date is defined via do-drop-in
 
@@ -641,10 +655,12 @@
    unblock-exceptions
    ['] (interrupt-auto-boot?) to interrupt-auto-boot?
    ?usb-keyboard
+   auto-banner?  if  banner  then
+
    auto-boot
 
-   frozen?            ( frozen? )
-   unfreeze visible   ( frozen? )
+   frozen? text-on? 0=  and  ( no-banner? )
+   unfreeze visible          ( no-banner? )
    if  banner  then  \ Reissue banner if it was suppressed
 
    blue-letters ." Type 'help' for more information." black-letters




More information about the openfirmware mailing list