- Bump the LinuxBIOS major version
[coreboot.git] / src / mainboard / amd / quartet / 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=4
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="QUARTET"
97 default MAINBOARD_VENDOR="AMD"
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 ##
172 ## Romcc output
173 ##
174 makerule ./failover.E
175         depends "$(MAINBOARD)/failover.c" 
176         action "$(CPP) -I$(TOP)/src $(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/failover.c > ./failover.E"
177 end
178
179 makerule ./failover.inc
180         depends "./failover.E ./romcc"
181         action "./romcc -O -o failover.inc --label-prefix=failover ./failover.E"
182 end
183
184 makerule ./auto.E 
185         depends "$(MAINBOARD)/auto.c option_table.h" 
186         action  "$(CPP) -I$(TOP)/src -I. $(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/auto.c > ./auto.E"
187 end
188 makerule ./auto.inc 
189         depends "./auto.E ./romcc"
190         action  "./romcc -mcpu=k8 -O2 ./auto.E > auto.inc"
191 end
192
193 ##
194 ## Build our 16 bit and 32 bit linuxBIOS entry code
195 ##
196 mainboardinit cpu/i386/entry16.inc
197 mainboardinit cpu/i386/entry32.inc
198 mainboardinit cpu/i386/bist32.inc
199 ldscript /cpu/i386/entry16.lds
200 ldscript /cpu/i386/entry32.lds
201
202 ##
203 ## Build our reset vector (This is where linuxBIOS is entered)
204 ##
205 if USE_FALLBACK_IMAGE 
206         mainboardinit cpu/i386/reset16.inc 
207         ldscript /cpu/i386/reset16.lds 
208 else
209         mainboardinit cpu/i386/reset32.inc 
210         ldscript /cpu/i386/reset32.lds 
211 end
212
213 ### Should this be in the northbridge code?
214 mainboardinit arch/i386/lib/cpu_reset.inc
215
216 ##
217 ## Include an id string (For safe flashing)
218 ##
219 mainboardinit arch/i386/lib/id.inc
220 ldscript /arch/i386/lib/id.lds
221
222 ##
223 ## Setup our mtrrs
224 ##
225 mainboardinit cpu/k8/earlymtrr.inc
226
227 ###
228 ### This is the early phase of linuxBIOS startup 
229 ### Things are delicate and we test to see if we should
230 ### failover to another image.
231 ###
232 if USE_FALLBACK_IMAGE
233         ldscript /arch/i386/lib/failover.lds 
234         mainboardinit ./failover.inc
235 end
236
237 ###
238 ### O.k. We aren't just an intermediary anymore!
239 ###
240
241 ##
242 ## Setup RAM
243 ##
244 mainboardinit cpu/k8/enable_mmx_sse.inc
245 mainboardinit ./auto.inc
246 mainboardinit cpu/k8/disable_mmx_sse.inc
247
248 ##
249 ## Include the secondary Configuration files 
250 ##
251 dir /pc80
252 config chip.h
253
254 chip northbridge/amd/amdk8 # mc0
255         device pci_domain 0 on
256                 device pci 18.0 on end
257                 device pci 18.0 on end
258                 device pci 18.0 
259                         chip southbridge amd/amd8111
260                                 device pci 0:0.0 on 
261                                         device pci 0.0 on end
262                                         device pci 0.1 on end
263                                         device pci 0.2 on end
264                                         device pci 1.0 on end
265                                 end
266                                 device pci 1.0 on 
267                                         chip superio/NSC/pc87360
268                                                 device pnp 2e.0 off     # Floppy 
269                                                          io 0x60 = 0x3f0
270                                                         irq 0x70 = 6
271                                                         drq 0x74 = 2
272                                                 end
273                                                 device pnp 2e.1 off     # Parallel Port
274                                                          io 0x60 = 0x378
275                                                         irq 0x70 = 7
276                                                 end
277                                                 device pnp 2e.2 off     # Com 2
278                                                          io 0x60 = 0x2f8
279                                                         irq 0x70 = 3
280                                                 end
281                                                 device pnp 2e.3 on      # Com 1
282                                                          io 0x60 = 0x3f8
283                                                         irq 0x70 = 4
284                                                 end
285                                                 device pnp 2e.4 off end # SWC
286                                                 device pnp 2e.5 off end # Mouse
287                                                 device pnp 2e.6 on      # Keyboard
288                                                          io 0x60 = 0x60
289                                                          io 0x62 = 0x64
290                                                         irq 0x70 = 1
291                                                 end
292                                                 device pnp 2e.7 off end # GPIO
293                                                 device pnp 2e.8 off end # ACB
294                                                 device pnp 2e.9 off end # FSCM
295                                                 device pnp 2e.a off end # WDT  
296                                         end
297                                 end
298                                 device pci 1.1 on end
299                                 device pci 1.2 on end
300                                 device pci 1.3 on end
301                                 device pci 1.5 on end
302                                 device pci 1.6 on end
303                         end
304                 end
305                 device pci 18.1 on end
306                 device pci 18.2 on end
307                 device pci 18.3 on end
308         
309                 chip northbridge/amd/amdk8 # mc1
310                         device pci 19.0 on end
311                         device pci 19.0 on 
312                                 chip southbridge amd/amd8131 # amd8131_0
313                                         device pci 0.0 on end
314                                         device pci 0.1 on end
315                                         device pci 1.0 on end
316                                         device pci 1.1 on end
317                                 end
318                                 chip southbridge amd/amd8131 # amd8131_1
319                                         device pci 0.0 on end
320                                         device pci 0.1 on end
321                                         device pci 1.0 on end
322                                         device pci 1.1 on end
323                                 end
324                         end
325                         device pci 19.0 on end
326                         device pci 19.1 on end
327                         device pci 19.2 on end
328                         device pci 19.3 on end
329                 end
330
331                 chip northbridge/amd/amdk8 # mc2
332                         device pci 1a.0 on end
333                         device pci 1a.0 on end
334                         device pci 1a.0 on end
335                         device pci 1a.1 on end
336                         device pci 1a.2 on end
337                         device pci 1a.3 on end
338                 end
339
340                 chip northbridge/amd/amdk8 # mc3
341                         device pci 1b.0 on end
342                         device pci 1b.0 on end
343                         device pci 1b.0 on end
344                         device pci 1b.1 on end
345                         device pci 1b.2 on end
346                         device pci 1b.3 on end
347                 end
348         end # pci_domain 0
349         device apic_cluster 0 on
350                 chip cpu/amd/socket_940
351                         device apic 0 on end
352                 end
353                 chip cpu/amd/socket_940
354                         device apic 1 on end
355                 end             
356                 chip cpu/amd/socket_940
357                         device apic 2 on end
358                 end             
359                 chip cpu/amd/socket_940
360                         device apic 3 on end
361                 end
362         end
363 end
364
365 ##
366 ## Include the old serial code for those few places that still need it.
367 ##
368 mainboardinit pc80/serial.inc
369 mainboardinit arch/i386/lib/console.inc
370 mainboardinit cpu/i386/bist32_fail.inc
371