summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/arch/unix/tree.fs
diff options
context:
space:
mode:
authorYang Zhang <yang.z.zhang@intel.com>2015-08-28 09:58:54 +0800
committerYang Zhang <yang.z.zhang@intel.com>2015-09-01 12:44:00 +0800
commite44e3482bdb4d0ebde2d8b41830ac2cdb07948fb (patch)
tree66b09f592c55df2878107a468a91d21506104d3f /qemu/roms/openbios/arch/unix/tree.fs
parent9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00 (diff)
Add qemu 2.4.0
Change-Id: Ic99cbad4b61f8b127b7dc74d04576c0bcbaaf4f5 Signed-off-by: Yang Zhang <yang.z.zhang@intel.com>
Diffstat (limited to 'qemu/roms/openbios/arch/unix/tree.fs')
-rw-r--r--qemu/roms/openbios/arch/unix/tree.fs116
1 files changed, 116 insertions, 0 deletions
diff --git a/qemu/roms/openbios/arch/unix/tree.fs b/qemu/roms/openbios/arch/unix/tree.fs
new file mode 100644
index 000000000..a7529b006
--- /dev/null
+++ b/qemu/roms/openbios/arch/unix/tree.fs
@@ -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