Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / arch / ppc / briq / tree.fs
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