mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
This patch originally started as a fix for PPC, in that the NVRAM initialiser wasn't been run on startup (this is why printenv on PPC always showed much much less than on SPARC). However, it also showed up some inconsistent logic for boot device selection, which must also happen *before* boot is called in order for load to work correctly. With this patch applied, bootpath and bootargs are set from boot-device and boot-args respectively on startup for SPARC32, SPARC64 and PPC. Note: there is a small chance SPARC32 may break on some images - please let me know if it does. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk> git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@805 f158a5a8-5612-0410-a976-696ce0be7e32
63 lines
1.4 KiB
Forth
63 lines
1.4 KiB
Forth
\ qemu specific initialization code
|
|
\
|
|
\ Copyright (C) 2005 Stefan Reinauer
|
|
\
|
|
\ This program is free software; you can redistribute it and/or
|
|
\ modify it under the terms of the GNU General Public License
|
|
\ as published by the Free Software Foundation
|
|
\
|
|
|
|
|
|
\ -------------------------------------------------------------------------
|
|
\ initialization
|
|
\ -------------------------------------------------------------------------
|
|
|
|
: make-openable ( path )
|
|
find-dev if
|
|
begin ?dup while
|
|
\ install trivial open and close methods
|
|
dup active-package! is-open
|
|
parent
|
|
repeat
|
|
then
|
|
;
|
|
|
|
: preopen ( chosen-str node-path )
|
|
2dup make-openable
|
|
|
|
" /chosen" find-device
|
|
open-dev ?dup if
|
|
encode-int 2swap property
|
|
else
|
|
2drop
|
|
then
|
|
;
|
|
|
|
\ preopen device nodes (and store the ihandles under /chosen)
|
|
:noname
|
|
" rtc" " rtc" preopen
|
|
" memory" " /memory" preopen
|
|
; SYSTEM-initializer
|
|
|
|
|
|
\ use the tty interface if available
|
|
: activate-tty-interface
|
|
" /packages/terminal-emulator" find-dev if drop
|
|
then
|
|
;
|
|
|
|
\ -------------------------------------------------------------------------
|
|
\ pre-booting
|
|
\ -------------------------------------------------------------------------
|
|
|
|
: update-chosen
|
|
" /chosen" find-device
|
|
stdin @ encode-int " stdin" property
|
|
stdout @ encode-int " stdout" property
|
|
device-end
|
|
;
|
|
|
|
:noname
|
|
set-defaults
|
|
; PREPOST-initializer
|