- Bump the LinuxBIOS major version
[coreboot.git] / src / mainboard / ibm / e325 / 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=12
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="HDAMA"
97 default MAINBOARD_VENDOR="ARIMA"
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=0x8000
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
255 chip northbridge/amd/amdk8
256         device pci_domain 0 on
257                 device pci 18.0 on end # LDT 0
258                 device pci 18.0 on     # LDT 1
259                         chip southbridge/amd/amd8131
260                                 device pci 0.0 on end
261                                 device pci 0.1 on end
262                                 device pci 1.0 on end
263                                 device pci 1.1 on end
264                         end
265                         chip southbridge/amd/amd8111
266                                 device pci 0.0 on
267                                         device pci 0.0 on end
268                                         device pci 0.1 on end
269                                         device pci 0.2 on end
270                                         device pci 1.0 off end
271                                 end
272                                 device pci 1.0 on
273                                         chip superio/NSC/pc87366
274                                                 device  pnp 2e.0 off  # Floppy 
275                                                          io 0x60 = 0x3f0
276                                                         irq 0x70 = 6
277                                                         drq 0x74 = 2
278                                                 end
279                                                 device pnp 2e.1 off  # Parallel Port
280                                                          io 0x60 = 0x378
281                                                         irq 0x70 = 7
282                                                 end
283                                                 device pnp 2e.2 off # Com 2
284                                                          io 0x60 = 0x2f8
285                                                         irq 0x70 = 3
286                                                 end
287                                                 device pnp 2e.3 on  # Com 1
288                                                          io 0x60 = 0x3f8
289                                                         irq 0x70 = 4
290                                                 end
291                                                 device pnp 2e.4 off end # SWC
292                                                 device pnp 2e.5 off end # Mouse
293                                                 device pnp 2e.6 on  # Keyboard
294                                                          io 0x60 = 0x60
295                                                          io 0x62 = 0x64
296                                                         irq 0x70 = 1
297                                                 end
298                                                 device pnp 2e.7 off end # GPIO
299                                                 device pnp 2e.8 off end # ACB
300                                                 device pnp 2e.9 off end # FSCM
301                                                 device pnp 2e.a off end # WDT  
302                                         end
303                                 end
304                                 device pci 1.1 on end
305                                 device pci 1.2 on end
306                                 device pci 1.3 on end
307                                 device pci 1.5 off end
308                                 device pci 1.6 off end
309                         end
310                 end #  device pci 18.0 
311                 device pci 18.0 on end # LDT2
312                 device pci 18.1 on end
313                 device pci 18.2 on end
314                 device pci 18.3 on end
315
316                 chip northbridge/amd/amdk8
317                         device pci 19.0 on end
318                         device pci 19.0 on end
319                         device pci 19.0 on end
320                         device pci 19.1 on end
321                         device pci 19.2 on end
322                         device pci 19.3 on end
323                 end
324         end 
325         device apic_cluster 0 on
326                 chip cpu/amd/socket_940
327                         device apic 0 on end
328                 end
329                 chip cpu/amd/socket_940
330                         device apic 1 on end
331                 end
332         end
333 end
334
335 ##
336 ## Include the old serial code for those few places that still need it.
337 ##
338 mainboardinit pc80/serial.inc
339 mainboardinit arch/i386/lib/console.inc
340 mainboardinit cpu/i386/bist32_fail.inc
341