Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / obp / obp / fm / kernel / sparc / loadkern.fth
\ ========== Copyright Header Begin ==========================================
\
\ Hypervisor Software File: loadkern.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: @(#)loadkern.fth 2.34 07/06/05 10:54:48
\ purpose:
\ copyright: Copyright 2007 Sun Microsystems, Inc. All Rights Reserved
\ copyright: Use is subject to license terms.
\ Copyright 1985-1994 Bradley Forthware
\ Don't accept ',' as numeric punctuation because doing so makes
\ the forward referencing mechanism think that "c," is a number!
ascii . ascii , npatch numdelim?
warning off \ Turn OFF the warning messages
64\ 8 constant /n
\needs lconstant alias lconstant constant
[ifnexist] [message]
fload ${BP}/fm/lib/message.fth
[then]
fload ${BP}/fm/meta/meta1.fth
alias xref-on meta-xref-on
alias xref-off meta-xref-off
fload ${BP}/fm/lib/xref.fth
only forth also meta also definitions
fload ${BP}/cpu/sparc/assem.fth
only forth also meta assembler also meta definitions
: assembler ( -- ) srassembler ;
only forth also meta also assembler definitions
fload ${BP}/fm/lib/loclabel.fth
fload ${BP}/fm/meta/nswapmap.fth
fload ${BP}/fm/meta/sparc/target.fth
fload ${BP}/fm/meta/forward.fth
fload ${BP}/fm/meta/sparc/fixvoc.fth
fload ${BP}/fm/meta/compilin.fth
only forth also definitions
[ifdef] XREF
xref-init
\ Init the first reference file
" ${BP}/fm/kernel/sparc/loadkern.fth" xref-push-file 2drop
\ The include-exit hook in metainit will pop this file
" ${BP}/fm/kernel/sparc/metainit.fth" xref-push-file 2drop
[then]
fload ${BP}/fm/kernel/sparc/metainit.fth
\ always-headers \ Keep all the headers
\ sometimes-headers \ Keep some instead
sometimes-headers
\ Comment out the following line(s) when debugging
-1 threshold ! \ Turn OFF ALL debugging messages
warning-t off \ Turn OFF target warning messages
\ Uncomment the following line(s) for more debug output
\ show? on 1 granularity ! 1 threshold !
warning-t on
fload ${BP}/fm/kernel/sparc/kerncode.fth
32\ fload ${BP}/fm/kernel/sparc/divrem.fth
64\ fload ${BP}/fm/kernel/sparc/divrem9.fth
fload ${BP}/fm/kernel/uservars.fth \ I init task link.
32\ fload ${BP}/fm/kernel/sparc/multiply.fth
64\ fload ${BP}/fm/kernel/sparc/mulv9.fth
\t32-t fload ${BP}/fm/kernel/sparc/move.fth
\t16-t fload ${BP}/fm/kernel/sparc/moveslow.fth \ Longword optimized
\ but not doubleword optimized
[ifdef] XREF
headers
defer xref-on ' noop is xref-on
defer xref-off ' noop is xref-off
defer xref-header-hook ' noop is xref-header-hook
defer xref-find-hook ' noop is xref-find-hook
defer xref-hide-hook ' noop is xref-hide-hook
defer xref-reveal-hook ' noop is xref-reveal-hook
defer xref-string-hook ' noop is xref-string-hook
[then]
fload ${BP}/fm/lib/xref.fth
fload ${BP}/fm/kernel/sparc/extra.fth
fload ${BP}/fm/kernel/sparc/double.fth
fload ${BP}/fm/kernel/double.fth
fload ${BP}/fm/kernel/dmuldiv.fth
64\ fload ${BP}/fm/kernel/dmul.fth
defer title ' noop is title \ Set later in loadutil.fth
fload ${BP}/fm/kernel/io.fth \ I init #-buf
fload ${BP}/fm/kernel/stresc.fth \ I init stringbuf
fload ${BP}/fm/kernel/comment.fth
fload ${BP}/fm/kernel/kernel2.fth
fload ${BP}/fm/kernel/compiler.fth \ I init 'compile-buffer
fload ${BP}/fm/kernel/interp.fth
fload ${BP}/fm/kernel/kernport.fth
fload ${BP}/fm/kernel/definers.fth \ I clear buffers
fload ${BP}/fm/kernel/tagvoc.fth
fload ${BP}/fm/kernel/voccom.fth \ I init canonical-words and
\ prev-canonical-word
fload ${BP}/fm/kernel/order.fth \ I init search order
fload ${BP}/fm/kernel/is.fth
fload ${BP}/fm/kernel/sparc/field.fth
fload ${BP}/fm/kernel/cold.fth
fload ${BP}/fm/kernel/sparc/checkpt.fth
fload ${BP}/fm/kernel/guarded.fth
fload ${BP}/fm/lib/cstrings.fth \ I init cstrbuf
\ Bootstrapping onto a minikernel does not work yet so we need these.
[undef] miniforth?
[ifndef] miniforth?
fload ${BP}/fm/kernel/sparc/filecode.fth
fload ${BP}/fm/kernel/filecomm.fth \ I init 'word and fds
fload ${BP}/fm/kernel/disk.fth
fload ${BP}/fm/kernel/readline.fth
fload ${BP}/fm/cwrapper/sysdisk.fth
[then]
fload ${BP}/fm/cwrapper/syskey.fth
fload ${BP}/os/unix/sparc/sys.fth
fload ${BP}/fm/lib/alias.fth
fload ${BP}/fm/kernel/cmdline.fth
fload ${BP}/fm/kernel/nswapmap.fth
fload ${BP}/fm/kernel/ansio.fth \ I init error-file
fload ${BP}/fm/kernel/sparc/parseline.fth
[ifndef] miniforth?
fload ${BP}/fm/kernel/fileio.fth
[then]
\ fload ${BP}/fm/lib/transien.fth
\ fload ${BP}/fm/lib/headless.fth
fload ${BP}/fm/cwrapper/sparc/boot.fth
fload ${BP}/fm/kernel/init.fth
fload ${BP}/fm/kernel/sparc/finish.fth
fload ${BP}/fm/meta/sparc/savemeta.fth
warning on \ Turn ON the warning messages
hex
metaoff
[ifndef] dic-file-name
true abort" ERROR: dic-file-name undefined, can't save image"
[then]
[defined] dic-file-name dup 1+ alloc-mem pack save-meta
\ In order to get the headers/headerless info save the dictionary
[ifdef] nheads-dic-name
[defined] nheads-dic-name "temp pack
[else]
"" nheads.dic
[then] save-forth