On Thu, 2011-02-03 at 17:20 -0600, Jerry Vonau wrote: > On Thu, 2011-02-03 at 17:02 -0600, Jerry Vonau wrote: > > On Thu, 2011-02-03 at 15:52 -0600, Jerry Vonau wrote: > > > On Thu, 2011-02-03 at 15:37 -0600, Jerry Vonau wrote: > > > > On Thu, 2011-02-03 at 16:21 -0500, Martin Langhoff wrote: > > > > > On Thu, Feb 3, 2011 at 4:16 PM, Jerry Vonau <jvo...@shaw.ca> wrote: > > > > > > Just a quick question is it possible to run commands that are > > > > > > available > > > > > > at OFW prompt inside the olpc.fth file? I'm looking at trying to run > > > > > > add-tag-from-file from within olpc.fth. > > > > > > > > > > I used to think you could, but according to Reuben and Mitch... you > > > > > can't. By the time boot.fth gets executed, OFW has put the memory back > > > > > in readonly mode. > > > > > > > > > > So the add-tag game should be done with a proper keyjector. > > > > > > > > > > Impractical but safer. > > > > > > > > > > > > > Then the trick for olpc.fth would be to store the info and reboot to > > > > flash the info in, like how bootfw.zip is handled. > > > > > > > > just thinking out loud, > > > > > > Just found this gem: > > > > > > http://dev.laptop.org/pub/firmware/scripts/newkatag.fth > > > > > > looks to be do-able, > > > > > > Jerry > > > > Rough proof of concept attached. > > > > ok the buffer is too small, the key gets truncated, but this looks to be > viable. Anybody got a quick fix? > > Jerry >
Think this is better a better one. Jerry
\ OLPC boot script visible sound-end [ifndef] do-firmware-update : do-firmware-update ( img$ -- ) \ Keep .error from printing an input sream position report \ which makes a buffer@<address> show up in the error message ['] noop to show-error visible tuck flash-buf swap move ( len ) ['] ?image-valid catch ?dup if ( ) visible red-letters ." Bad firmware image file - " .error ." Continuing with old firmware" cr black-letters exit then true to file-loaded? d# 12,000 wait-until \ Wait for EC to notice the battery ['] ?enough-power catch ?dup if visible red-letters ." Unsafe to update firmware now - " .error ." Continuing with old firmware" cr black-letters exit then " Updating firmware" ?lease-debug-cr ec-indexed-io-off? if visible ." Restarting to enable SPI FLASH writing." cr d# 3000 ms ec-ixio-reboot security-failure then \ Latch alternate? flag for next startup alternate? if [char] A h# 82 cmos! then reflash \ Should power-off and reboot show-x " Reflash returned, unexpectedly" .security-failure ; [then] [ifndef] do-skey-update ( -- ) : do-skey-update " add-tag-from-file s1 u:\boot\s.pub" eval ; [then] [ifndef] ?ofw-reflash \ Check for new firmware. : ?ofw-reflash ( -- ) " ${DN}${PN}\bootfw.zip" expand$ ['] (boot-read) catch if 2drop exit then img$ firmware-up-to-date? if exit then img$ do-firmware-update ; [then] [ifndef] ?ofw-skey \ Check for new s.pub key. : ?ofw-skey ( -- ) cr ." 1 to install s-key from USB" cr cr key [char] 1 = if ." Continuing to install skey" cr do-skey-update else ." Not installing" cr then ; [then] : set-path-macros ( -- ) button-o game-key? if " \boot-alt" else " \boot" then pn-buf place " /chosen" find-package if ( phandle ) " bootpath" rot get-package-property 0= if ( propval$ ) get-encoded-string ( bootpath$ ) [char] \ left-parse-string 2nip ( dn$ ) dn-buf place ( ) then then ; : olpc-fth-boot-me set-path-macros ?ofw-reflash ?ofw-skey ; olpc-fth-boot-me
_______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel