[openfirmware] [commit] r3722 - in cpu: arm/olpc arm/olpc/4.0 x86/pc/olpc/images

repository service svn at openfirmware.info
Fri Apr 11 04:07:49 CEST 2014


Author: quozl
Date: Fri Apr 11 04:07:48 2014
New Revision: 3722
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3722

Log:
OLPC XO-4 - dual boot menu for Android and Linux, using /boot-alt for the Android kernel

Added:
   cpu/arm/olpc/bootmenu.fth
   cpu/arm/olpc/chooseos.fth
   cpu/x86/pc/olpc/images/android.565   (contents, props changed)
   cpu/x86/pc/olpc/images/xos.565   (contents, props changed)
Modified:
   cpu/arm/olpc/4.0/olpc.bth
   cpu/arm/olpc/build-fw.fth

Modified: cpu/arm/olpc/4.0/olpc.bth
==============================================================================
--- cpu/arm/olpc/4.0/olpc.bth	Fri Apr 11 04:05:29 2014	(r3721)
+++ cpu/arm/olpc/4.0/olpc.bth	Fri Apr 11 04:07:48 2014	(r3722)
@@ -151,6 +151,10 @@
    " ${BP}/cpu/x86/pc/olpc/images/leds.di"      $add-file
    " ${BP}/cpu/x86/pc/olpc/images/ebook.di"     $add-file
 
+   \ icons for boot menu
+   " ${BP}/cpu/x86/pc/olpc/images/android.565"  " android.565"   $add-deflated-dropin
+   " ${BP}/cpu/x86/pc/olpc/images/xos.565"      " xos.565"       $add-deflated-dropin
+
    " nandblaster15_rx.bin" " nb15_rx"  $add-deflated-dropin
    " nandblaster_tx.bin"   " nb_tx"    $add-deflated-dropin
 

Added: cpu/arm/olpc/bootmenu.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/bootmenu.fth	Fri Apr 11 04:07:48 2014	(r3722)
@@ -0,0 +1,55 @@
+\ TODO: enable touchscreen
+
+\ ubuntu:/usr/share/app-install/icons/sugar-xo.svg
+icon: xos.icon     rom:xos.565
+
+\ The Android robot is reproduced or modified from work created and
+\ shared by Google and used according to terms described in the
+\ Creative Commons 3.0 Attribution License.
+\ http://developer.android.com/distribute/googleplay/promote/brand.html
+icon: android.icon     rom:android.565
+
+: choose-linux
+   restore-scroller  ." Choosing Linux" cr
+   0 " choose-os" eval
+   menu-done
+;
+
+: choose-android
+   restore-scroller  ." Choosing Android" cr
+   1 " choose-os" eval
+   menu-done
+;
+
+: boot-menu  ( -- )
+   d# 1 to rows
+   d# 5 to cols
+
+   0 0 set-row-col
+   " Linux/Sugar"
+   ['] choose-linux          xos.icon         0 0 install-icon
+
+   0 4 set-row-col
+   " Android"
+   ['] choose-android        android.icon     0 4 install-icon
+
+   0 2 selected 2drop
+;
+
+: no-boot-menu  ( -- )
+   d# 1 to rows
+   d# 1 to cols
+
+   " No operating system choice installed"
+   ['] quit-item             quit.icon        0 0 selected install-icon
+;
+
+: bootmenu
+   init-menu clear-menu
+   " choice-present?" eval if
+       ['] boot-menu to root-menu
+   else
+       ['] no-boot-menu to root-menu
+   then
+   (menu)
+;

Modified: cpu/arm/olpc/build-fw.fth
==============================================================================
--- cpu/arm/olpc/build-fw.fth	Fri Apr 11 04:05:29 2014	(r3721)
+++ cpu/arm/olpc/build-fw.fth	Fri Apr 11 04:07:48 2014	(r3722)
@@ -691,6 +691,8 @@
 
 fload ${BP}/cpu/x86/pc/olpc/sound.fth
 fload ${BP}/cpu/x86/pc/olpc/guardrtc.fth
+fload ${BP}/cpu/arm/olpc/chooseos.fth
+fload ${BP}/cpu/arm/olpc/bootmenu.fth
 fload ${BP}/cpu/x86/pc/olpc/security.fth
 
 stand-init: xid
@@ -819,6 +821,12 @@
    game-key-mask =  if  protect-fw try-fs-update  then
 ;
 
+: ?boot-menu  ( -- )
+   rocker-down game-key?  if
+      protect-fw  visible  bootmenu  show-child invisible
+   then
+;
+
 [ifdef] use-screen-kbd
 0 value screen-kbd-ih
 : open-screen-keyboard  ( -- )
@@ -935,6 +943,7 @@
 \+ use-screen-kbd  ?text-on
    ?diags
    ?fs-update
+   ?boot-menu
 
    factory-test? 0=  if  secure-startup  then
    unblock-exceptions

Added: cpu/arm/olpc/chooseos.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/chooseos.fth	Fri Apr 11 04:07:48 2014	(r3722)
@@ -0,0 +1,15 @@
+\ See license at end of file
+purpose: OS chooser for dual boot (Android and Linux)
+
+: choice-present?  ( -- present? )
+   \ TODO: number of partitions > 2, or specific android files present
+   true
+;
+
+: choose-os  ( n -- )
+   if
+      button-o  game-key-mask or  to game-key-mask
+   else
+      button-o  invert  game-key-mask and  to game-key-mask
+   then
+;

Added: cpu/x86/pc/olpc/images/android.565
==============================================================================
Binary file. No diff available.

Added: cpu/x86/pc/olpc/images/xos.565
==============================================================================
Binary file. No diff available.



More information about the openfirmware mailing list