blob: ede41e7d1f55b7467f83fe525b7c4e28b42db906 [file] [log] [blame]
\ *****************************************************************************
\ * Copyright (c) 2004, 2011 IBM Corporation
\ * All rights reserved.
\ * This program and the accompanying materials
\ * are made available under the terms of the BSD License
\ * which accompanies this distribution, and is available at
\ * http://www.opensource.org/licenses/bsd-license.php
\ *
\ * Contributors:
\ * IBM Corporation - initial implementation
\ ****************************************************************************/
\ The master file. Everything else is included into here.
hex
' ll-cr to cr
#include "header.fs"
#include "hvterm.fs"
#include "base.fs"
\ Little-endian accesses. Also known as `wrong-endian'.
#include <little-endian.fs>
: #join ( lo hi #bits -- x ) lshift or ;
: #split ( x #bits -- lo hi ) 2dup rshift dup >r swap lshift xor r> ;
: blink ;
: reset-dual-emit ;
: console-clean-fifo ;
: bootmsg-nvupdate ;
: asm-cout 2drop drop ;
#include "logging.fs"
: log-string 2drop ;
#include "bootmsg.fs"
000 cp
#include "exception.fs"
: mm-log-warning 2drop ;
: write-mm-log ( data length type -- status )
3drop 0
;
080 cp
100 cp
\ Input line editing.
#include "accept.fs"
120 cp
#include "dump.fs"
cistack ciregs >r1 ! \ kernel wants a stack :-)
#include "romfs.fs"
140 cp
200 cp
201 cp
#include <slof-logo.fs>
#include <banner.fs>
: .banner .slof-logo .banner ;
220 cp
DEFER find-boot-sector ( -- )
240 cp
\ Timebase frequency, in Hz. Start with a good default
\ Use device-tree later to fix it up
d# 512000000 VALUE tb-frequency \ default value - needed for "ms" to work
-1 VALUE cpu-frequency
#include "helper.fs"
260 cp
#include <timebase.fs>
280 cp
2c0 cp
2e0 cp
#include <quiesce.fs>
300 cp
#include <usb/usb-static.fs>
320 cp
#include <scsi-loader.fs>
340 cp
360 cp
#include "fdt.fs"
370 cp
#include "tree.fs"
800 cp
#include "nvram.fs"
880 cp
#include "envvar.fs"
check-for-nvramrc
890 cp
#include "qemu-bootlist.fs"
8a0 cp
\ The client interface.
#include "client.fs"
\ ELF binary file format.
#include "elf.fs"
#include <loaders.fs>
8b0 cp
8e0 cp
8ff cp
#include <start-up.fs>
." " \ Clear last checkpoint
#include <boot.fs>
cr .( Welcome to Open Firmware)
cr
#include "copyright-oss.fs"
cr cr
\ this CATCH is to ensure the code bellow always executes: boot may ABORT!
' start-it CATCH drop
cr ." Ready!"