summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/forth/admin/nvram.fs
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/openbios/forth/admin/nvram.fs')
-rw-r--r--qemu/roms/openbios/forth/admin/nvram.fs385
1 files changed, 0 insertions, 385 deletions
diff --git a/qemu/roms/openbios/forth/admin/nvram.fs b/qemu/roms/openbios/forth/admin/nvram.fs
deleted file mode 100644
index 20f6462b9..000000000
--- a/qemu/roms/openbios/forth/admin/nvram.fs
+++ /dev/null
@@ -1,385 +0,0 @@
-\ tag: nvram config handling
-\
-\ this code implements IEEE 1275-1994
-\
-\ Copyright (C) 2003, 2004 Samuel Rydh
-\
-\ See the file "COPYING" for further information about
-\ the copyright and warranty status of this work.
-\
-
-struct ( config )
- 2 cells field >cf.name
- 2 cells field >cf.default \ 0 -1 if no default
- /n field >cf.check-xt
- /n field >cf.exec-xt
- /n field >cf.next
-constant config-info.size
-
-0 value config-root
-
-\ --------------------------------------------------------
-\ config handling
-\ --------------------------------------------------------
-
-: find-config ( name-str len -- 0|configptr )
- config-root
- begin ?dup while
- -rot
- 2dup 4 pick >cf.name 2@
- strcmp 0= if
- 2drop exit
- then
- rot >cf.next @
- repeat
- 2drop 0
-;
-
-: is-config-word ( configp -- )
- dup >cf.name 2@ $create ,
- does> @
- dup >cf.name 2@
- s" /options" find-dev if
- get-package-property if 0 -1 then
- ( configp prop-str prop-len )
- \ drop trailing zero
- ?dup if 1- then
- else
- 2drop 0 -1
- then
- \ use default value if property is missing
- dup 0< if 2drop dup >cf.default 2@ then
- \ no default value, use empty string
- dup 0< if 2drop 0 0 then
-
- rot >cf.exec-xt @ execute
-;
-
-: new-config ( name-str name-len -- configp )
- 2dup find-config ?dup if
- nip nip
- 0 0 2 pick >cf.default 2!
- else
- dict-strdup
- here config-info.size allot
- dup config-info.size 0 fill
- config-root over >cf.next !
- dup to config-root
- dup >r >cf.name 2! r>
- dup is-config-word
- then
- ( configp )
-;
-
-: config-default ( str len configp -- )
- -rot
- dup 0> if dict-strdup then
- rot >cf.default 2!
-;
-
-: no-conf-def ( configp -- )
- 0 -1
-;
-
-\ --------------------------------------------------------
-\ config types
-\ --------------------------------------------------------
-
-: exec-str-conf ( str len -- str len )
- \ trivial
-;
-: check-str-conf ( str len -- str len valid? )
- \ nothing
- true
-;
-
-: str-config ( def-str len name len -- configp )
- new-config >r
- ['] exec-str-conf r@ >cf.exec-xt !
- ['] check-str-conf r@ >cf.check-xt !
- r> config-default
-;
-
-\ ------------------------------------------------------------
-
-: exec-int-conf ( str len -- value )
- \ fixme
- parse-hex
-;
-: check-int-conf ( str len -- str len valid? )
- true
-;
-
-: int-config ( def-str len name len -- configp )
- new-config >r
- ['] exec-int-conf r@ >cf.exec-xt !
- ['] check-int-conf r@ >cf.check-xt !
- r> config-default
-;
-
-\ ------------------------------------------------------------
-
-: exec-secmode-conf ( str len -- n )
- 2dup s" command" strcmp 0= if 2drop 1 exit then
- 2dup s" full" strcmp 0= if 2drop 2 exit then
- 2drop 0
-;
-: check-secmode-conf ( str len -- str len valid? )
- 2dup s" none" strcmp 0= if true exit then
- 2dup s" command" strcmp 0= if true exit then
- 2dup s" full" strcmp 0= if true exit then
- false
-;
-
-: secmode-config ( def-str len name len -- configp )
- new-config >r
- ['] exec-secmode-conf r@ >cf.exec-xt !
- ['] check-secmode-conf r@ >cf.check-xt !
- r> config-default
-;
-
-\ ------------------------------------------------------------
-
-: exec-bool-conf ( str len -- value )
- 2dup s" true" strcmp 0= if 2drop true exit then
- 2dup s" false" strcmp 0= if 2drop false exit then
- 2dup s" TRUE" strcmp 0= if 2drop false exit then
- 2dup s" FALSE" strcmp 0= if 2drop false exit then
- parse-hex 0<>
-;
-
-: check-bool-conf ( name len -- str len valid? )
- 2dup s" true" strcmp 0= if true exit then
- 2dup s" false" strcmp 0= if true exit then
- 2dup s" TRUE" strcmp 0= if 2drop s" true" true exit then
- 2dup s" FALSE" strcmp 0= if 2drop s" false" true exit then
- false
-;
-
-: bool-config ( configp -- configp )
- new-config >r
- ['] exec-bool-conf r@ >cf.exec-xt !
- ['] check-bool-conf r@ >cf.check-xt !
- r> config-default
-;
-
-
-\ --------------------------------------------------------
-\ 7.4.4 Nonvolatile memory
-\ --------------------------------------------------------
-
-: $setenv ( data-addr data-len name-str name-len -- )
- 2dup find-config ?dup if
- >r 2swap r>
- ( name len data len configptr )
- >cf.check-xt @ execute
- 0= abort" Invalid value."
- 2swap
- else
- \ create string config type
- 2dup no-conf-def 2swap str-config
- then
-
- 2swap encode-string 2swap
- s" /options" find-package drop
- encode-property
-;
-
-: setenv ( "nv-param< >new-value<eol>" -- )
- parse-word
- \ XXX drop blanks
- dup if linefeed parse else 0 0 then
-
- dup 0= abort" Invalid value."
- 2swap $setenv
-;
-
-: printenv ( "{param-name}<eol>" -- )
- \ XXX temporary implementation
- linefeed parse 2drop
-
- active-package
- s" /options" find-device
- .properties
- active-package!
-;
-
-: (set-default) ( configptr -- )
- dup >cf.default 2@ dup 0>= if
- rot >cf.name 2@ $setenv
- else
- \ no default value
- 3drop
- then
-;
-
-: set-default ( "param-name<eol>" -- )
- linefeed parse
- find-config ?dup if
- (set-default)
- else
- ." No such parameter." -2 throw
- then
-;
-
-: set-defaults ( -- )
- config-root
- begin ?dup while
- dup (set-default)
- >cf.next @
- repeat
-;
-
-( maxlen "new-name< >" -- ) ( E: -- addr len )
-: nodefault-bytes
- ;
-
-
-\ --------------------------------------------------------
-\ initialize config from nvram
-\ --------------------------------------------------------
-
-\ CHRP format (array of null-terminated strings, "variable=value")
-: nvram-load-configs ( data len -- )
- \ XXX: no len checking performed...
- drop
- begin dup c@ while
- ( data )
- dup cstrlen 2dup + 1+ -rot
- ( next str len )
- ascii = left-split ( next val len name str )
- ['] $setenv catch if
- 2drop 2drop
- then
- repeat drop
-;
-
-: (nvram-store-one) ( buf len str len -- buf len success? )
- swap >r
- 2dup < if r> 2drop 2drop false exit then
- ( buf len strlen R: str )
- swap over - r> swap >r -rot
- ( str buf strlen R: res_len )
- 2dup + >r move r> r> true
-;
-
-: (make-configstr) ( configptr ph -- str len )
- >r
- >cf.name 2@
- 2dup r> get-package-property if
- 2drop 0 0 exit
- else
- dup if 1- then
- then
- ( name len value-str len )
- 2swap s" =" 2swap
- pocket tmpstrcat tmpstrcat drop
- 2dup + 0 swap c!
- 1+
-;
-
-: nvram-store-configs ( data len -- )
- 2 - \ make room for two trailing zeros
-
- s" /options" find-dev 0= if 2drop exit then
- >r
- config-root
- ( data len configptr R: phandle )
- begin ?dup while
- r@ over >r (make-configstr)
- ( buf len val len R: configptr phandle )
- (nvram-store-one) drop
- r> >cf.next @
- repeat
- \ null terminate
- 2 + 0 fill
- r> drop
-;
-
-
-\ --------------------------------------------------------
-\ NVRAM variables
-\ --------------------------------------------------------
-\ fcode-debug? input-device output-device
-s" true" s" auto-boot?" bool-config \ 7.4.3.5
-s" boot" s" boot-command" str-config \ 7.4.3.5
-s" " s" boot-file" str-config \ 7.4.3.5
-s" false" s" diag-switch?" bool-config \ 7.4.3.5
-no-conf-def s" diag-device" str-config \ 7.4.3.5
-no-conf-def s" diag-file" str-config \ 7.4.3.5
-s" false" s" fcode-debug?" bool-config \ 7.7
-s" " s" nvramrc" str-config \ 7.4.4.2
-s" false" s" oem-banner?" bool-config
-s" " s" oem-banner" str-config
-s" false" s" oem-logo?" bool-config
-no-conf-def s" oem-logo" str-config
-s" false" s" use-nvramrc?" bool-config \ 7.4.4.2
-s" keyboard" s" input-device" str-config \ 7.4.5
-s" screen" s" output-device" str-config \ 7.4.5
-s" 80" s" screen-#columns" int-config \ 7.4.5
-s" 24" s" screen-#rows" int-config \ 7.4.5
-s" 0" s" selftest-#megs" int-config
-no-conf-def s" security-mode" secmode-config
-
-\ --- devices ---
-s" -1" s" pci-probe-mask" int-config
-s" false" s" default-mac-address" bool-config
-s" false" s" skip-netboot?" bool-config
-s" true" s" scroll-lock" bool-config
-
-[IFDEF] CONFIG_PPC
-\ ---- PPC ----
-s" false" s" little-endian?" bool-config
-s" false" s" real-mode?" bool-config
-s" -1" s" real-base" int-config
-s" -1" s" real-size" int-config
-s" 4000000" s" load-base" int-config
-s" -1" s" virt-base" int-config
-s" -1" s" virt-size" int-config
-[THEN]
-
-[IFDEF] CONFIG_X86
-\ ---- X86 ----
-s" true" s" little-endian?" bool-config
-[THEN]
-
-[IFDEF] CONFIG_SPARC32
-\ ---- SPARC32 ----
-s" 4000" s" load-base" int-config
-s" true" s" tpe-link-test?" bool-config
-s" 9600,8,n,1,-" s" ttya-mode" str-config
-s" true" s" ttya-ignore-cd" bool-config
-s" false" s" ttya-rts-dtr-off" bool-config
-s" 9600,8,n,1,-" s" ttyb-mode" str-config
-s" true" s" ttyb-ignore-cd" bool-config
-s" false" s" ttyb-rts-dtr-off" bool-config
-[THEN]
-
-[IFDEF] CONFIG_SPARC64
-\ ---- SPARC64 ----
-s" 4000" s" load-base" int-config
-s" false" s" little-endian?" bool-config
-[THEN]
-
-\ --- ??? ---
-s" " s" boot-screen" str-config
-s" " s" boot-script" str-config
-s" false" s" use-generic?" bool-config
-s" disk" s" boot-device" str-config \ 7.4.3.5
-s" " s" boot-args" str-config \ ???
-
-\ defers
-['] fcode-debug? to _fcode-debug?
-['] diag-switch? to _diag-switch?
-
-\ Hack for load-base: it seems that some Sun bootloaders try
-\ and execute "<value> to load-base" which will only work if
-\ load-base is value. Hence we redefine load-base here as a
-\ value using its normal default.
-[IFDEF] CONFIG_SPARC64
-load-base value load-base
-[THEN]
-
-: release-load-area
- drop
-;