Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / obp / obp / arch / sun4u / startup.fth
\ ========== Copyright Header Begin ==========================================
\
\ Hypervisor Software File: startup.fth
\
\ Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
\
\ - Do no alter or remove copyright notices
\
\ - Redistribution and use of this software in source and binary forms, with
\ or without modification, are permitted provided that the following
\ conditions are met:
\
\ - Redistribution of source code must retain the above copyright notice,
\ this list of conditions and the following disclaimer.
\
\ - Redistribution in binary form must reproduce the above copyright notice,
\ this list of conditions and the following disclaimer in the
\ documentation and/or other materials provided with the distribution.
\
\ Neither the name of Sun Microsystems, Inc. or the names of contributors
\ may be used to endorse or promote products derived from this software
\ without specific prior written permission.
\
\ This software is provided "AS IS," without a warranty of any kind.
\ ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
\ INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
\ PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
\ MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
\ ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
\ DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
\ OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
\ FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
\ DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
\ ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
\ SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
\
\ You acknowledge that this software is not designed, licensed or
\ intended for use in the design, construction, operation or maintenance of
\ any nuclear facility.
\
\ ========== Copyright Header End ============================================
id: @(#)startup.fth 1.25 06/02/16
purpose:
copyright: Copyright 2006 Sun Microsystems, Inc. All Rights Reserved
copyright: Use is subject to license terms.
\ The latter part of the initialization sequence.
headers
alias cd dev
overload: probe-all ( -- )
" probe-" do-drop-in
probe-all
" probe+" do-drop-in
;
headerless
: delete-fb-prop ( -- )
root-device
" fb" 2dup get-property 0= if
2swap delete-property
then 2drop
device-end
;
: setup-memory ( -- )
ecc-off ce-off
" scrub-memory" memory-node @ ['] $call-method catch drop
ecc-on ce-on
map-for-unix
;
: ?cleanup ( -- )
\ If the selftest code was interrupted,
\ the interrupt registers could
\ be in the wrong state
\ (i.e. pil=9, interrupt-enable=21).
monitor-interrupt-state
%o6@ c-stack <> if init-c-stack then
setup-memory
;
' ?cleanup is cleanup
variable banner-done? banner-done? off
\ Service brk char only if diag-switch?=true or OBP banner is up
: (startup-abort) ( -- )
diagnostic-mode? banner-done? @ or if
(user-abort)
then
;
' (startup-abort) is user-abort
stand-init: Executing NVRAMRC
execute-nvramrc
auto-banner? if
probe-all install-console
output-device fallback-device $= 0= if
\ show tty msgs only if console <> ttya
show-tty-msgs
then
?banner
then
banner-done? on
delete-fb-prop
;
headerless
\ Be carefull, this chain is supposed to return a flag!
\ by the time your first token runs someone else has already left the
\ current state on the stack for you to consider.
chain: don't-boot? ( flag -- flag' )
idprom-valid? system-test-ok? and
post-ok? and 0= or
;
defer pre-boot-hook ' noop is pre-boot-hook
: startup ( -- )
hex
warning on
only forth also definitions
startup-hook
#line off
\ Perform OBDiag tests if this is a power-on
\ and not a reboot
reboot? 0= if
system-tests
then
check-machine-chain ?cr
setup-memory
[ifdef] DakASR? \ Daktari-style ASR/Diag-status handling
restore-obd-fail-status \ Populate device tree with diag status
restore-asr-disable-status \ Populate device tree with ASR status
[then]
false to init-incomplete? \ OK to [try to] boot
pre-boot-hook
auto-boot
;
headerless
: ok> ( -- ) ." ok> " ;
chain: unix-init ( -- )
hex ['] ok> is (ok)
\ Running stand.exe
." # " obp-release ". space sub-release ". space .compile-date cr
['] false to idprom-valid? ['] 2drop to do-drop-in
;
headers