[OpenBIOS] r659 - cpu/x86/pc/olpc dev/geode/display

svn at openbios.org svn at openbios.org
Tue Oct 2 06:39:49 CEST 2007


Author: wmb
Date: 2007-10-02 06:39:49 +0200 (Tue, 02 Oct 2007)
New Revision: 659

Modified:
   cpu/x86/pc/olpc/crypto.fth
   cpu/x86/pc/olpc/gui.fth
   dev/geode/display/gxfb.fth
Log:
OLPC pretty boot - Fixed memory allocation problem with large image.



Modified: cpu/x86/pc/olpc/crypto.fth
===================================================================
--- cpu/x86/pc/olpc/crypto.fth	2007-10-02 04:35:36 UTC (rev 658)
+++ cpu/x86/pc/olpc/crypto.fth	2007-10-02 04:39:49 UTC (rev 659)
@@ -48,71 +48,9 @@
 \ XXX clean out dead code in usb.fth
 ;
 
-1 [if]
-
-\ Check that the version is an upgrade?
-
-: >rom-name$  ( device$ -- path$ )
-   image-name-buf place                      ( )
-   " :\boot\olpcfw.rom" image-name-buf $cat  ( )
-   image-name$
-;
-: sig-name$  ( -- path$ )
-   image-name$ + 4 -  " .rom" caps-comp 0=  if
-      " sig"  image-name$ + 3 -  swap move
-      image-name$
-   else
-      2drop  " "
-   then
-;
-: $dev-update-flash  ( device$ -- )
-   >rom-name$  $get-image  if  exit  then          ( data$ )
-
-   sig-name$ $get-image  if
-      ." Missing firmware update signature file: " sig-name$ type  cr
-      free-mem exit
-   then   ( data$ sig$ )  
-
-   2over 2over  signature-bad?  if                 ( data$ sig$ )
-      ." Firmware update image signature mismatch: " sig-name$ type  cr
-      free-mem  free-mem  exit
-   then                                            ( data$ sig$ )
-
-   free-mem                                        ( data$ )
-
-   2dup flash-buf swap move                        ( data$ )
-   tuck free-mem                                   ( data-len )
-   ['] ?image-valid  catch  if                     ( x )
-      drop  ." Firmware image failed sanity checks" cr  ( )
-      exit
-   then                                            ( x )
-
-   true to file-loaded?
-   reflash
-;
-[then]
-
 : getbin     " usb8388.bin" find-drop-in 0= abort" No usb8388.bin"  ;
 : getsig     " usb8388.sig" find-drop-in 0= abort" No usb8388.sig"  ;
-: tc  ( -- )
-   getbin  getsig
-   signature-bad?  if
-      ." Signature was bad, expected good" cr
-   then
 
-   getbin  over 1 swap +!
-   getsig
-   signature-bad?  0=  if
-      ." Signature was good, expected bad (corrupt image)" cr
-   then
-
-   getbin
-   getsig  over 40 +  1 swap +!
-   signature-bad?  0=  if
-      ." Signature was good, expected bad (corrupt signature)" cr
-   then
-;
-
 \ LICENSE_BEGIN
 \ Copyright (c) 2007 FirmWorks
 \ 

Modified: cpu/x86/pc/olpc/gui.fth
===================================================================
--- cpu/x86/pc/olpc/gui.fth	2007-10-02 04:35:36 UTC (rev 658)
+++ cpu/x86/pc/olpc/gui.fth	2007-10-02 04:39:49 UTC (rev 659)
@@ -26,25 +26,26 @@
    icon-xy  image-width  image-height
 ;
 
+: image-base  ( -- adr )  " graphmem" $call-screen  ;
+
 : $get-image  ( filename$ -- true | adr,len false )
    r/o open-file  if  drop true  exit  then   >r    ( r: fd )
-   r@ fsize  dup alloc-mem swap          ( bmp-adr,len  r: fd )
+   
+   image-base  r@ fsize                  ( bmp-adr,len  r: fd )
    2dup  r@ fgets  over <>               ( bmp-adr,len error?  r: fd )
    r> fclose                             ( bmp-adr,len )
-   if  free-mem true  else  false  then  ( true | bmp-adr,len false )
+   if  2drop true  else  false  then     ( true | bmp-adr,len false )
 ;
 : $show  ( filename$ -- )
    not-screen?  if  2drop exit  then
    0 to image-width   \ In case $show fails
    $get-image  if  exit  then
-   2dup prep-565  " draw-transparent-rectangle" $call-screen
-   free-mem
+   prep-565  " draw-transparent-rectangle" $call-screen
 ;
 : $show-opaque  ( filename$ -- )
    not-screen?  if  2drop exit  then
    $get-image  if  exit  then
-   2dup prep-565  " draw-rectangle" $call-screen
-   free-mem
+   prep-565  " draw-rectangle" $call-screen
 ;
 : advance  ( -- )
    icon-xy  image-width 0  d+  to icon-xy

Modified: dev/geode/display/gxfb.fth
===================================================================
--- dev/geode/display/gxfb.fth	2007-10-02 04:35:36 UTC (rev 658)
+++ dev/geode/display/gxfb.fth	2007-10-02 04:39:49 UTC (rev 659)
@@ -544,6 +544,8 @@
    h# 0f color@  h# ff color!	\ Set color ff to white (same as 15)
 ;
 
+0 instance value graphmem
+
 : init-all  ( -- )		\ Initializes the controller
    smb-init
    map-io-regs			\ Enable IO registers
@@ -559,6 +561,8 @@
       4 of  frame-buffer-adr /fb h# ffff.ffff lfill  endof
    endcase
    7 to background-color
+
+   frame-buffer-adr /fb +  to graphmem
 ;
 
 : display-remove  ( -- )




More information about the OpenBIOS mailing list