use blade3d driver from drivers/ directory
[coreboot.git] / src / mainboard / newisys / khepri / Config.lb
1 uses HAVE_MP_TABLE
2 uses HAVE_PIRQ_TABLE
3 uses USE_FALLBACK_IMAGE
4 uses HAVE_FALLBACK_BOOT
5 uses HAVE_HARD_RESET
6 uses HARD_RESET_BUS
7 uses HARD_RESET_DEVICE
8 uses HARD_RESET_FUNCTION
9 uses IRQ_SLOT_COUNT
10 uses HAVE_OPTION_TABLE
11 uses CONFIG_MAX_CPUS
12 uses CONFIG_IOAPIC
13 uses CONFIG_SMP
14 uses FALLBACK_SIZE
15 uses ROM_SIZE
16 uses ROM_SECTION_SIZE
17 uses ROM_IMAGE_SIZE
18 uses ROM_SECTION_SIZE
19 uses ROM_SECTION_OFFSET
20 uses CONFIG_ROM_STREAM
21 uses CONFIG_ROM_STREAM_START
22 uses PAYLOAD_SIZE
23 uses _ROMBASE
24 uses XIP_ROM_SIZE
25 uses XIP_ROM_BASE
26 uses STACK_SIZE
27 uses HEAP_SIZE
28 uses USE_OPTION_TABLE
29 uses LB_CKS_RANGE_START
30 uses LB_CKS_RANGE_END
31 uses LB_CKS_LOC
32 uses MAINBOARD_PART_NUMBER
33 uses MAINBOARD_VENDOR
34
35
36 ## ROM_SIZE is the size of boot ROM that this board will use.
37 default ROM_SIZE=524288
38
39 ###
40 ### Build options
41 ###
42
43 ##
44 ## Build code for the fallback boot
45 ##
46 default HAVE_FALLBACK_BOOT=1
47
48 ##
49 ## Build code to reset the motherboard from linuxBIOS
50 ##
51 default HAVE_HARD_RESET=1
52
53 default HARD_RESET_BUS=1
54 default HARD_RESET_DEVICE=4
55 default HARD_RESET_FUNCTION=0
56
57 ##
58 ## Build code to export a programmable irq routing table
59 ##
60 default HAVE_PIRQ_TABLE=1
61 default IRQ_SLOT_COUNT=9
62
63 ##
64 ## Build code to export an x86 MP table
65 ## Useful for specifying IRQ routing values
66 ##
67 default HAVE_MP_TABLE=1
68
69 ##
70 ## Build code to export a CMOS option table
71 ##
72 default HAVE_OPTION_TABLE=1
73
74 ##
75 ## Move the default LinuxBIOS cmos range off of AMD RTC registers
76 ##
77 default LB_CKS_RANGE_START=49
78 default LB_CKS_RANGE_END=122
79 default LB_CKS_LOC=123
80
81 ##
82 ## Build code for SMP support
83 ## Only worry about 2 micro processors
84 ##
85 default CONFIG_SMP=1
86 default CONFIG_MAX_CPUS=2
87
88 ##
89 ## Build code to setup a generic IOAPIC
90 ##
91 default CONFIG_IOAPIC=1
92
93 ##
94 ## Clean up the motherboard id strings
95 ##
96 default MAINBOARD_PART_NUMBER="Khepri 2100"
97 default MAINBOARD_VENDOR="Newisys"
98
99 ###
100 ### LinuxBIOS layout values
101 ###
102
103 ## ROM_IMAGE_SIZE is the amount of space to allow linuxBIOS to occupy.
104 default ROM_IMAGE_SIZE = 65536
105
106 ##
107 ## Use a small 8K stack
108 ##
109 default STACK_SIZE=0x2000
110
111 ##
112 ## Use a small 16K heap
113 ##
114 default HEAP_SIZE=0x4000
115
116 ##
117 ## Only use the option table in a normal image
118 ##
119 default USE_OPTION_TABLE = !USE_FALLBACK_IMAGE
120
121 ##
122 ## Compute the location and size of where this firmware image
123 ## (linuxBIOS plus bootloader) will live in the boot rom chip.
124 ##
125 if USE_FALLBACK_IMAGE
126         default ROM_SECTION_SIZE   = FALLBACK_SIZE
127         default ROM_SECTION_OFFSET = ( ROM_SIZE - FALLBACK_SIZE )
128 else
129         default ROM_SECTION_SIZE   = ( ROM_SIZE - FALLBACK_SIZE )
130         default ROM_SECTION_OFFSET = 0
131 end
132
133 ##
134 ## Compute the start location and size size of
135 ## The linuxBIOS bootloader.
136 ##
137 default PAYLOAD_SIZE            = ( ROM_SECTION_SIZE - ROM_IMAGE_SIZE )
138 default CONFIG_ROM_STREAM_START = (0xffffffff - ROM_SIZE + ROM_SECTION_OFFSET + 1)
139 default CONFIG_ROM_STREAM     = 1
140
141 ##
142 ## Compute where this copy of linuxBIOS will start in the boot rom
143 ##
144 default _ROMBASE      = ( CONFIG_ROM_STREAM_START + PAYLOAD_SIZE )
145
146 ##
147 ## Compute a range of ROM that can cached to speed up linuxBIOS,
148 ## execution speed.
149 ##
150 ## XIP_ROM_SIZE must be a power of 2.
151 ## XIP_ROM_BASE must be a multiple of XIP_ROM_SIZE
152 ##
153 default XIP_ROM_SIZE=65536
154 default XIP_ROM_BASE = ( _ROMBASE + ROM_IMAGE_SIZE - XIP_ROM_SIZE )
155
156 ##
157 ## Set all of the defaults for an x86 architecture
158 ##
159
160 arch i386 end
161 #cpu k8 end
162
163 ##
164 ## Build the objects we have code for in this directory.
165 ##
166
167 driver mainboard.o
168 if HAVE_MP_TABLE object mptable.o end
169 if HAVE_PIRQ_TABLE object irq_tables.o end
170
171 dir /drivers/trident/blade3d
172
173 ##
174 ## Romcc output
175 ##
176 makerule ./failover.E
177         depends "$(MAINBOARD)/failover.c" 
178         action "$(CPP) -I$(TOP)/src $(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/failover.c > ./failover.E"
179 end
180
181 makerule ./failover.inc
182         depends "./failover.E ./romcc"
183         action "./romcc -O -o failover.inc --label-prefix=failover ./failover.E"
184 end
185
186 makerule ./auto.E 
187         depends "$(MAINBOARD)/auto.c option_table.h"
188         action  "$(CPP) -I$(TOP)/src -I. $(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/auto.c > ./auto.E"
189 end
190 makerule ./auto.inc 
191         depends "./auto.E ./romcc"
192         action  "./romcc -mcpu=k8 -O2 ./auto.E > auto.inc"
193 end
194
195 ##
196 ## Build our 16 bit and 32 bit linuxBIOS entry code
197 ##
198 mainboardinit cpu/i386/entry16.inc
199 mainboardinit cpu/i386/entry32.inc
200 mainboardinit cpu/i386/bist32.inc
201 ldscript /cpu/i386/entry16.lds
202 ldscript /cpu/i386/entry32.lds
203
204 ##
205 ## Build our reset vector (This is where linuxBIOS is entered)
206 ##
207 if USE_FALLBACK_IMAGE 
208         mainboardinit cpu/i386/reset16.inc 
209         ldscript /cpu/i386/reset16.lds 
210 else
211         mainboardinit cpu/i386/reset32.inc 
212         ldscript /cpu/i386/reset32.lds 
213 end
214
215 ### Should this be in the northbridge code?
216 mainboardinit arch/i386/lib/cpu_reset.inc
217
218 ##
219 ## Include an id string (For safe flashing)
220 ##
221 mainboardinit arch/i386/lib/id.inc
222 ldscript /arch/i386/lib/id.lds
223
224 ##
225 ## Setup our mtrrs
226 ##
227 mainboardinit cpu/k8/earlymtrr.inc
228
229 ###
230 ### This is the early phase of linuxBIOS startup 
231 ### Things are delicate and we test to see if we should
232 ### failover to another image.
233 ###
234 if USE_FALLBACK_IMAGE
235         ldscript /arch/i386/lib/failover.lds 
236         mainboardinit ./failover.inc
237 end
238
239 ###
240 ### O.k. We aren't just an intermediary anymore!
241 ###
242
243 ##
244 ## Setup RAM
245 ##
246 mainboardinit cpu/k8/enable_mmx_sse.inc
247 mainboardinit ./auto.inc
248 mainboardinit cpu/k8/disable_mmx_sse.inc
249
250 ##
251 ## Include the secondary Configuration files 
252 ##
253 dir /pc80
254 config chip.h
255
256 northbridge amd/amdk8 "mc0"
257         pci 0:18.0
258         pci 0:18.0
259         pci 0:18.0
260         pci 0:18.1
261         pci 0:18.2
262         pci 0:18.3
263         southbridge amd/amd8131 "amd8131" link 1
264                 pci 0:0.0
265                 pci 0:0.1
266                 pci 0:1.0
267                 pci 0:1.1
268         end
269         southbridge amd/amd8111 "amd8111" link 1
270                 pci 0:0.0
271                 pci 0:1.0 on
272                 pci 0:1.1 on
273                 pci 0:1.2 on
274                 pci 0:1.3 on
275                 pci 0:1.5 on
276                 pci 0:1.6 on
277                 pci 1:0.0 on
278                 pci 1:0.1 on
279                 pci 1:0.2 on
280                 pci 1:1.0 on
281                 superio NSC/pc87360 link 1
282                         pnp 2e.0 off  # Floppy 
283                                  io 0x60 = 0x3f0
284                                 irq 0x70 = 6
285                                 drq 0x74 = 2
286                         pnp 2e.1 off  # Parallel Port
287                                  io 0x60 = 0x378
288                                 irq 0x70 = 7
289                         pnp 2e.2 off # Com 2
290                                  io 0x60 = 0x2f8
291                                 irq 0x70 = 3
292                         pnp 2e.3 on  # Com 1
293                                  io 0x60 = 0x3f8
294                                 irq 0x70 = 4
295                         pnp 2e.4 off # SWC
296                         pnp 2e.5 off # Mouse
297                         pnp 2e.6 on  # Keyboard
298                                  io 0x60 = 0x60
299                                  io 0x62 = 0x64
300                                 irq 0x70 = 1
301                         pnp 2e.7 off # GPIO
302                         pnp 2e.8 off # ACB
303                         pnp 2e.9 off # FSCM
304                         pnp 2e.a off # WDT  
305                 end
306         end
307 end
308
309 northbridge amd/amdk8 "mc1"
310         pci 0:19.0
311         pci 0:19.0
312         pci 0:19.0
313         pci 0:19.1
314         pci 0:19.2
315         pci 0:19.3
316 end
317
318 cpu k8 "cpu0"
319         register "across" = "{ .chip = &amd8131, .ht_width=16, .ht_speed=600 }"
320 end
321
322 cpu k8 "cpu1" 
323 end
324
325 ##
326 ## Include the old serial code for those few places that still need it.
327 ##
328 mainboardinit pc80/serial.inc
329 mainboardinit arch/i386/lib/console.inc
330 mainboardinit cpu/i386/bist32_fail.inc
331