mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
initial import of openbios--main--1.0--patch-26
git-svn-id: svn://coreboot.org/openbios/openbios-devel@1 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
116
arch/unix/tree.fs
Normal file
116
arch/unix/tree.fs
Normal file
@@ -0,0 +1,116 @@
|
||||
:noname
|
||||
." Type 'help' for detailed information" cr
|
||||
; DIAG-initializer
|
||||
|
||||
" /" find-device
|
||||
|
||||
new-device
|
||||
" memory" device-name
|
||||
\ 12230 encode-int " reg" property
|
||||
external
|
||||
: open true ;
|
||||
: close ;
|
||||
\ claim ( phys size align -- base )
|
||||
\ release ( phys size -- )
|
||||
finish-device
|
||||
|
||||
new-device
|
||||
" cpus" device-name
|
||||
1 " #address-cells" int-property
|
||||
0 " #size-cells" int-property
|
||||
|
||||
external
|
||||
: open true ;
|
||||
: close ;
|
||||
: decode-unit parse-hex ;
|
||||
|
||||
finish-device
|
||||
|
||||
: 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
|
||||
;
|
||||
|
||||
:noname
|
||||
set-defaults
|
||||
; SYSTEM-initializer
|
||||
|
||||
|
||||
\ preopen device nodes (and store the ihandles under /chosen)
|
||||
:noname
|
||||
" memory" " /memory" preopen
|
||||
" mmu" " /cpus/@0" preopen
|
||||
" stdout" " /builtin/console" preopen
|
||||
" stdin" " /builtin/console" preopen
|
||||
device-end
|
||||
; SYSTEM-initializer
|
||||
|
||||
\ use the tty interface if available
|
||||
:noname
|
||||
" /builtin/console" find-dev if drop
|
||||
" /builtin/console" " input-device" $setenv
|
||||
" /builtin/console" " output-device" $setenv
|
||||
then
|
||||
; SYSTEM-initializer
|
||||
|
||||
:noname
|
||||
" keyboard" input
|
||||
; CONSOLE-IN-initializer
|
||||
|
||||
dev /
|
||||
|
||||
\ node suitable for non-PCI devices
|
||||
new-device
|
||||
" unix" device-name
|
||||
0 encode-int " #address-cells" property
|
||||
0 encode-int " #size-cells" property
|
||||
|
||||
external
|
||||
: open true ;
|
||||
: close ;
|
||||
|
||||
\ block device node
|
||||
new-device
|
||||
" block" device-name
|
||||
" unix-block" device-type
|
||||
1 " #address-cells" int-property
|
||||
0 " #size-cells" int-property
|
||||
|
||||
external
|
||||
: open true ;
|
||||
: close ;
|
||||
: decode-unit parse-hex ;
|
||||
|
||||
\ testnode
|
||||
\ new-device
|
||||
\ " kappa" device-name
|
||||
\
|
||||
\ 1 encode-int " reg" property
|
||||
\ external
|
||||
\ : open true ;
|
||||
\ : close ;
|
||||
\ finish-device
|
||||
|
||||
finish-device
|
||||
finish-device
|
||||
|
||||
dev /aliases
|
||||
" /unix/block/disk" encode-string " hd" property
|
||||
|
||||
device-end
|
||||
Reference in New Issue
Block a user