summaryrefslogtreecommitdiffstats
path: root/src/roms/SLOF/board-qemu/slof/qemu-bootlist.fs
diff options
context:
space:
mode:
authorTimothy Pearson <tpearson@raptorengineering.com>2019-05-11 15:12:49 -0500
committerTimothy Pearson <tpearson@raptorengineering.com>2019-05-11 15:12:49 -0500
commit9e80202352dd49bdd9e67b8b906d86f058431505 (patch)
tree5673c17aad6e3833da8c4ff21b5a11f666ec9fbe /src/roms/SLOF/board-qemu/slof/qemu-bootlist.fs
downloadhqemu-master.zip
hqemu-master.tar.gz
Initial import of abandoned HQEMU version 2.5.2HEADmaster
Diffstat (limited to 'src/roms/SLOF/board-qemu/slof/qemu-bootlist.fs')
-rw-r--r--src/roms/SLOF/board-qemu/slof/qemu-bootlist.fs61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/roms/SLOF/board-qemu/slof/qemu-bootlist.fs b/src/roms/SLOF/board-qemu/slof/qemu-bootlist.fs
new file mode 100644
index 0000000..4778e16
--- /dev/null
+++ b/src/roms/SLOF/board-qemu/slof/qemu-bootlist.fs
@@ -0,0 +1,61 @@
+\ *****************************************************************************
+\ * Copyright (c) 2011 IBM Corporation
+\ * All rights reserved.
+\ * This program and the accompanying materials
+\ * are made available under the terms of the BSD License
+\ * which accompanies this distribution, and is available at
+\ * http://www.opensource.org/licenses/bsd-license.php
+\ *
+\ * Contributors:
+\ * IBM Corporation - initial implementation
+\ ****************************************************************************/
+
+defer set-boot-device
+defer add-boot-device
+
+8 CONSTANT MAX-ALIAS
+: add-boot-aliases ( str -- )
+ 2dup add-boot-device ( $str )
+ MAX-ALIAS 1 DO
+ 2dup i $cathex 2dup ( $str $strN $strN )
+ find-alias 0 > IF ( $str $strN false | $result )
+ drop strdup add-boot-device ( $str )
+ ELSE 2drop THEN
+ LOOP
+ 2drop
+;
+
+: qemu-read-bootlist ( -- )
+ \ See if QEMU has set exact boot device list
+ " qemu,boot-list" get-chosen IF
+ s" boot-device" $setenv
+ EXIT
+ THEN
+
+ 0 0 set-boot-device
+
+ " qemu,boot-device" get-chosen not IF
+ \ No boot list set from qemu, so check nvram
+ " boot-device" evaluate swap drop 0= IF
+ \ Not set in nvram too, set default disk/cdrom alias
+ " disk" add-boot-aliases
+ " cdrom" add-boot-aliases
+ " net" add-boot-aliases
+ THEN
+ EXIT
+ THEN
+
+ 0 ?DO
+ dup i + c@ CASE
+ 0 OF ENDOF
+ [char] a OF ENDOF
+ [char] b OF ENDOF
+ [char] c OF " disk" add-boot-aliases ENDOF
+ [char] d OF " cdrom" add-boot-aliases ENDOF
+ [char] n OF " net" add-boot-aliases ENDOF
+ ENDCASE cr
+ LOOP
+ drop
+;
+
+' qemu-read-bootlist to read-bootlist
OpenPOWER on IntegriCloud