|
|
1.1 root 1: \ briq specific initialization code
2: \
3: \ Copyright (C) 2004 Greg Watson
4: \
5: \ This program is free software; you can redistribute it and/or
6: \ modify it under the terms of the GNU General Public License
7: \ as published by the Free Software Foundation
8: \
9:
10: \ -------------------------------------------------------------
11: \ device-tree
12: \ -------------------------------------------------------------
13:
14: " /" find-device
15:
16: " chrp" device-type
17: " TotalImpact,BRIQ-1" model
18: h# 80000000 encode-int " isa-io-base" property
19: 1 encode-int " #interrupt-cells" property
20: 1 encode-int " #size-cells" property
21:
22: new-device
23: " memory" device-name
24: " memory" device-type
25: 0 encode-int h# 1E00000 encode-int encode+
26: h# 2000000 encode-int encode+ h# 40000000 encode-int encode+
27: " available" property
28: 0 h# 40000000 reg
29: external
30: : open true ;
31: : close ;
32: finish-device
33:
34: new-device
35: " cpu" device-name
36: " cpu" device-type
37: " " encode-string " translations" property
38: 0 encode-phys h# 8000000 encode-int encode+ " available" property
39: d# 32 encode-int " d-cache-block-size" property
40: 8 encode-int " d-cache-sets" property
41: d# 32768 encode-int " d-cache-size" property
42: d# 32 encode-int " i-cache-block-size" property
43: 8 encode-int " i-cache-sets" property
44: d# 32768 encode-int " i-cache-size" property
45: " " encode-string " cache-unified" property
46: 2 encode-int " i-tlb-sets" property
47: d# 128 encode-int " i-tlb-size" property
48: 2 encode-int " d-tlb-sets" property
49: d# 128 encode-int " d-tlb-size" property
50: " " encode-string " tlb-split" property
51: 2 encode-int " tlb-sets" property
52: d# 256 encode-int " tlb-size" property
53: " " encode-string " performance-monitor" property
54: " " encode-string " graphics" property
55: 4 encode-int " reservation-granule-size" property
56: d# 25000000 encode-int " timebase-frequency" property
57: d# 300000000 encode-int " clock-frequency" property
58: d# 66000000 encode-int " bus-frequency" property
59: h# 88201 encode-int " cpu-version" property
60: 0 encode-int " reg" property
61: finish-device
62:
63: " /pci" find-device
64: h# 01000000 encode-int 0 encode-int encode+ 0 encode-int encode+
65: h# 80000000 encode-int encode+ 0 encode-int encode+
66: h# 01000000 encode-int encode+
67: h# 02000000 encode-int encode+ 0 encode-int encode+ 0 encode-int encode+
68: h# C0000000 encode-int encode+ 0 encode-int encode+
69: h# 08000000 encode-int encode+
70: " ranges" property
71: " IBM,CPC710" model
72: h# FF5F7700 encode-int " 8259-interrupt-acknowledge" property
73: h# 0000F800 encode-int 0 encode-int encode+ 0 encode-int encode+
74: 7 encode-int encode+
75: " interrupt-map-mask" property
76: 1 encode-int " #interrupt-cells" property
77: h# 80000000 encode-int " system-dma-base" property
78: d# 33333333 encode-int " clock-frequency" property
79: " " encode-string " primary-bridge" property
80: 0 encode-int " pci-bridge-number" property
81: h# FF500000 encode-int h# 100000 encode-int encode+ " reg" property
82: 0 encode-int 0 encode-int encode+ " bus-range" property
83:
84: new-device
85: " isa" device-name
86: " isa" device-type
87: 2 encode-int " #address-cells" property
88: 1 encode-int " #size-cells" property
89:
90: external
91: : open true ;
92: : close ;
93:
94: finish-device
95:
96: : ?devalias ( alias-str alias-len device-str device-len --
97: \ alias-str alias-len false | true )
98: active-package >r
99: " /aliases" find-device
100: \ 2dup ." Checking " type
101: 2dup find-dev if \ check if device exists
102: drop
103: 2over find-dev if \ do we already have an alias?
104: \ ." alias exists" cr
105: drop 2drop false
106: else
107: \ ." device exists" cr
108: encode-string
109: 2swap property
110: true
111: then
112: else
113: \ ." device doesn't exist" cr
114: 2drop false
115: then
116: r> active-package!
117: ;
118:
119: :noname
120: " hd"
121: " /pci/pci-ata/ata-1/disk@0" ?devalias not if
122: " /pci/pci-ata/ata-1/disk@1" ?devalias not if
123: " /pci/pci-ata/ata-2/disk@0" ?devalias not if
124: " /pci/pci-ata/ata-2/disk@1" ?devalias not if
125: 2drop ." No disk found." cr
126: then
127: then
128: then
129: then
130:
131: " cdrom"
132: " /pci/pci-ata/ata-1/cdrom@0" ?devalias not if
133: " /pci/pci-ata/ata-1/cdrom@1" ?devalias not if
134: " /pci/pci-ata/ata-2/cdrom@0" ?devalias not if
135: " /pci/pci-ata/ata-2/cdrom@1" ?devalias not if
136: 2drop ." No cdrom found" cr
137: then
138: then
139: then
140: then
141: ; SYSTEM-initializer
142:
143: new-device
144: " ide" device-name
145: " ide" device-type
146: " WINBOND,82C553" model
147: h# 28 encode-int " max-latency" property
148: h# 2 encode-int " min-grant" property
149: h# 1 encode-int " devsel-speed" property
150: h# 0 encode-int " subsystem-vendor-id" property
151: h# 0 encode-int " subsystem-id" property
152: h# 1018A encode-int " class-code" property
153: h# 5 encode-int " revision-id" property
154: h# 105 encode-int " device-id" property
155: h# 10AD encode-int " vendor-id" property
156: h# 1003110 encode-int 0 encode-int encode+ h# 10020 encode-int encode+
157: h# 10 encode-int encode+ 0 encode-int encode+
158: h# 1003114 encode-int 0 encode-int encode+ h# 10030 encode-int encode+
159: h# 4 encode-int encode+ 0 encode-int encode+
160: h# 1003118 encode-int 0 encode-int encode+ h# 10040 encode-int encode+
161: h# 10 encode-int encode+ 0 encode-int encode+
162: h# 100311C encode-int 0 encode-int encode+ h# 10034 encode-int encode+
163: h# 4 encode-int encode+ 0 encode-int encode+
164: h# 1003120 encode-int 0 encode-int encode+ h# 10050 encode-int encode+
165: h# 10 encode-int encode+ 0 encode-int encode+
166: h# 1003124 encode-int 0 encode-int encode+ h# 10060 encode-int encode+
167: h# 10 encode-int encode+ 0 encode-int encode+
168: " assigned-addresses" property
169: h# 3100 encode-int 0 encode-int encode+ 0 encode-int encode+
170: 0 encode-int encode+ 0 encode-int encode+
171: h# 1003110 encode-int 0 encode-int encode+ h# 0 encode-int encode+
172: h# 10 encode-int encode+ 0 encode-int encode+
173: h# 1003114 encode-int 0 encode-int encode+ h# 0 encode-int encode+
174: h# 4 encode-int encode+ 0 encode-int encode+
175: h# 1003118 encode-int 0 encode-int encode+ h# 0 encode-int encode+
176: h# 10 encode-int encode+ 0 encode-int encode+
177: h# 100311C encode-int 0 encode-int encode+ h# 0 encode-int encode+
178: h# 4 encode-int encode+ 0 encode-int encode+
179: h# 1003120 encode-int 0 encode-int encode+ h# 0 encode-int encode+
180: h# 10 encode-int encode+ 0 encode-int encode+
181: h# 1003124 encode-int 0 encode-int encode+ h# 0 encode-int encode+
182: h# 10 encode-int encode+ 0 encode-int encode+
183: " reg" property
184: finish-device
185:
186: new-device
187: " ethernet" device-name
188: " network" device-type
189: " AMD,79C973" model
190: h# 3800 encode-int 0 encode-int encode+ 0 encode-int encode+
191: 0 encode-int encode+ 0 encode-int encode+
192: " reg" property
193: finish-device
194:
195: " /pci/isa" find-device
196: 0 0 " assigned-addresses" property
197: 0 0 " ranges" property
198: 0 encode-int " slot-names" property
199: d# 8333333 encode-int " clock-frequency" property
200: 0 encode-int " eisa-slots" property
201: 2 encode-int " #interrupt-cells" property
202: " W83C553F" encode-string " compatible" property
203: " WINBOND,82C553" model
204: 0 encode-int " max-latency" property
205: 0 encode-int " min-grant" property
206: 1 encode-int " devsel-speed" property
207: 0 encode-int " subsystem-vendor-id" property
208: 0 encode-int " subsystem-id" property
209: h# 60100 encode-int " class-code" property
210: h# 10 encode-int " revision-id" property
211: h# 565 encode-int " device-id" property
212: h# 10AD encode-int " vendor-id" property
213: h# 3000 encode-int 0 encode-int encode+ 0 encode-int encode+
214: 0 encode-int encode+ 0 encode-int encode+ " reg" property
215:
216: new-device
217: " rtc" device-name
218: " rtc" device-type
219: " DS17285S" model
220: " MC146818" encode-string
221: " DS17285S" encode-string encode+
222: " pnpPNP,b00" encode-string encode+ " compatible" property
223: 8 encode-int 0 encode-int encode+ " interrupts" property
224: h# 70 encode-int 1 encode-int encode+
225: 2 encode-int encode+ " reg" property
226: finish-device
227:
228: new-device
229: " interrupt-controller" device-name
230: " interrupt-controller" device-type
231: " 8259" model
232: " " encode-string " interrupt-controller" property
233: 2 encode-int " #interrupt-cells" property
234: 1 encode-int
235: 2 encode-int encode+
236: 3 encode-int encode+
237: 6 encode-int encode+
238: " reserved-interrupts" property
239: " 8259" encode-string
240: " chrp,iic" encode-string encode+
241: " compatible" property
242: h# 20 encode-int 1 encode-int encode+
243: 2 encode-int encode+ " reg" property
244: finish-device
245:
246: new-device
247: " serial" device-name
248: " serial" device-type
249: " no" encode-string " ctsrts" property
250: " no" encode-string " xon" property
251: " no" encode-string " parity" property
252: d# 115200 encode-int " bps" property
253: 1 encode-int " stop-bits" property
254: 8 encode-int " data-bits" property
255: h# 70800 encode-int " divisor" property
256: h# 708000 encode-int " clock-frequency" property
257: 4 encode-int 0 encode-int encode+ " interrupts" property
258: h# 3F8 encode-int 1 encode-int encode+
259: 8 encode-int encode+ " reg" property
260: finish-device
261:
262: " /pci" find-device
263: " /pci/isa/interrupt-controller" find-dev if
264: encode-int " interrupt-parent" property
265: then
266: h# 3800 encode-int 0 encode-int encode+
267: 0 encode-int encode+ 1 encode-int encode+
268: " /pci/isa/interrupt-controller" find-dev if
269: encode-int encode+
270: then
271: h# 0C encode-int encode+ 1 encode-int encode+
272: " interrupt-map" property
273:
274: " /pci/isa" find-device
275: " /pci/isa/interrupt-controller" find-dev if
276: encode-int " interrupt-parent" property
277: then
278:
279: \ -------------------------------------------------------------
280: \ /packages
281: \ -------------------------------------------------------------
282:
283: " /packages" find-device
284:
285: " packages" device-name
286: external
287: \ allow packages to be opened with open-dev
288: : open true ;
289: : close ;
290:
291: \ /packages/terminal-emulator
292: new-device
293: " terminal-emulator" device-name
294: external
295: : open true ;
296: : close ;
297: \ : write ( addr len -- actual )
298: \ dup -rot type
299: \ ;
300: finish-device
301:
302: \ -------------------------------------------------------------
303: \ The END
304: \ -------------------------------------------------------------
305: device-end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.