|
|
1.1 root 1: \ *****************************************************************************
2: \ * Copyright (c) 2004, 2011 IBM Corporation
3: \ * All rights reserved.
4: \ * This program and the accompanying materials
5: \ * are made available under the terms of the BSD License
6: \ * which accompanies this distribution, and is available at
7: \ * http://www.opensource.org/licenses/bsd-license.php
8: \ *
9: \ * Contributors:
10: \ * IBM Corporation - initial implementation
11: \ ****************************************************************************/
12:
13: \ The master file. Everything else is included into here.
14:
15: hex
16:
17: ' ll-cr to cr
18:
19: #include "header.fs"
20:
21: #include "hvterm.fs"
22:
23: #include "base.fs"
24:
25: \ Little-endian accesses. Also known as `wrong-endian'.
26: #include <little-endian.fs>
27:
28: : #join ( lo hi #bits -- x ) lshift or ;
29: : #split ( x #bits -- lo hi ) 2dup rshift dup >r swap lshift xor r> ;
30:
31: : blink ;
32: : reset-dual-emit ;
33: : console-clean-fifo ;
34: : bootmsg-nvupdate ;
35: : asm-cout 2drop drop ;
36:
37: #include "logging.fs"
38:
39: : log-string 2drop ;
40:
41: #include "bootmsg.fs"
42:
43: 000 cp
44:
45: #include "exception.fs"
46:
47: : mm-log-warning 2drop ;
48:
49: : write-mm-log ( data length type -- status )
50: 3drop 0
51: ;
52:
53: 080 cp
54:
55: 100 cp
56:
57: \ Input line editing.
58: #include "accept.fs"
59:
60: 120 cp
61:
62: #include "dump.fs"
63:
64: cistack ciregs >r1 ! \ kernel wants a stack :-)
65:
66: #include "romfs.fs"
67:
68: 140 cp
69:
70: 200 cp
71:
72: 201 cp
73: #include <slof-logo.fs>
74: #include <banner.fs>
75:
76: : .banner .slof-logo .banner ;
77:
78: 220 cp
79:
80: DEFER find-boot-sector ( -- )
81:
82: 240 cp
83: \ Timebase frequency, in Hz. Start with a good default
84: \ Use device-tree later to fix it up
85: d# 512000000 VALUE tb-frequency \ default value - needed for "ms" to work
86: -1 VALUE cpu-frequency
87:
88: #include "helper.fs"
89: 260 cp
90:
91: #include <timebase.fs>
92:
93: 280 cp
94:
95: 2c0 cp
96:
97: 2e0 cp
98:
99: #include <quiesce.fs>
100:
101: 300 cp
102:
103: #include <usb/usb-static.fs>
104:
105: 320 cp
106:
107: #include <scsi-loader.fs>
108:
109: 340 cp
110:
111: 360 cp
112:
113: #include "fdt.fs"
114:
115: 370 cp
116:
117: #include "tree.fs"
118:
119: 800 cp
120:
121: #include "nvram.fs"
122:
123: 880 cp
124:
125: #include "envvar.fs"
126: check-for-nvramrc
127:
128: 890 cp
129:
130: #include "qemu-bootlist.fs"
131:
132: 8a0 cp
133:
134: \ The client interface.
135: #include "client.fs"
136: \ ELF binary file format.
137: #include "elf.fs"
138: #include <loaders.fs>
139:
140: 8b0 cp
141:
142: 8e0 cp
143:
144: 8ff cp
145:
146: #include <start-up.fs>
147:
148: ." " \ Clear last checkpoint
149:
150: #include <boot.fs>
151:
152: cr .( Welcome to Open Firmware)
153: cr
154: #include "copyright-oss.fs"
155: cr cr
156:
157: \ this CATCH is to ensure the code bellow always executes: boot may ABORT!
158: ' start-it CATCH drop
159:
160: cr ." Ready!"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.