abuild fix for the amd serengeti_cheetah and the latest iasl version (trivial)
[coreboot.git] / src / mainboard / amd / serengeti_cheetah / Config.lb
1 ##
2 ## Compute the location and size of where this firmware image
3 ## (linuxBIOS plus bootloader) will live in the boot rom chip.
4 ##
5 if USE_FAILOVER_IMAGE
6         default ROM_SECTION_SIZE   = FAILOVER_SIZE
7         default ROM_SECTION_OFFSET = ( ROM_SIZE - FAILOVER_SIZE )
8 else
9     if USE_FALLBACK_IMAGE
10         default ROM_SECTION_SIZE   = FALLBACK_SIZE
11         default ROM_SECTION_OFFSET = ( ROM_SIZE - FALLBACK_SIZE - FAILOVER_SIZE )
12     else
13         default ROM_SECTION_SIZE   = ( ROM_SIZE - FALLBACK_SIZE - FAILOVER_SIZE )
14         default ROM_SECTION_OFFSET = 0
15     end
16 end
17
18 ##
19 ## Compute the start location and size size of
20 ## The linuxBIOS bootloader.
21 ##
22 default PAYLOAD_SIZE            = ( ROM_SECTION_SIZE - ROM_IMAGE_SIZE )
23 default CONFIG_ROM_PAYLOAD_START = (0xffffffff - ROM_SIZE + ROM_SECTION_OFFSET + 1)
24
25 ##
26 ## Compute where this copy of linuxBIOS will start in the boot rom
27 ##
28 default _ROMBASE      = ( CONFIG_ROM_PAYLOAD_START + PAYLOAD_SIZE )
29
30 ##
31 ## Compute a range of ROM that can cached to speed up linuxBIOS,
32 ## execution speed.
33 ##
34 ## XIP_ROM_SIZE must be a power of 2.
35 ## XIP_ROM_BASE must be a multiple of XIP_ROM_SIZE
36 ##
37 default XIP_ROM_SIZE=65536
38
39 if USE_FAILOVER_IMAGE
40         default XIP_ROM_BASE = ( _ROMBASE - XIP_ROM_SIZE + ROM_IMAGE_SIZE)
41 else
42     if USE_FALLBACK_IMAGE
43         default XIP_ROM_BASE = ( _ROMBASE - XIP_ROM_SIZE + ROM_IMAGE_SIZE + FAILOVER_SIZE)
44     else
45         default XIP_ROM_BASE = ( _ROMBASE - XIP_ROM_SIZE + ROM_IMAGE_SIZE)
46     end
47 end
48
49 arch i386 end 
50
51 ##
52 ## Build the objects we have code for in this directory.
53 ##
54
55 driver mainboard.o
56
57 #dir /drivers/si/3114
58
59 #needed by irq_tables and mptable and acpi_tables
60 object get_bus_conf.o
61
62 if HAVE_MP_TABLE 
63         object mptable.o 
64 end
65
66 if HAVE_PIRQ_TABLE 
67         object irq_tables.o 
68 end
69
70 #if HAVE_ACPI_TABLES
71 #       object acpi_tables.o
72 #       object fadt.o
73 #       if SB_HT_CHAIN_ON_BUS0
74 #               object dsdt_bus0.o
75 #       else
76 #               object dsdt.o
77 #       end
78 #       object ssdt.o
79 #       if ACPI_SSDTX_NUM
80 #                if SB_HT_CHAIN_ON_BUS0
81 #                 object ssdt2_bus0.o
82 #                else
83 #                 object ssdt2.o
84 #                end
85 #       end
86 #end
87
88 if HAVE_ACPI_TABLES
89         object acpi_tables.o
90         object fadt.o
91         makerule dsdt.c
92                 depends "$(MAINBOARD)/dx/dsdt_lb.dsl"
93                 action  "iasl -p $(PWD)/dsdt_lb -tc $(MAINBOARD)/dx/dsdt_lb.dsl"
94                 action  "mv dsdt_lb.hex dsdt.c"
95         end
96         object ./dsdt.o
97
98         #./ssdt.o is moved to northbridge/amd/amdk8/Config.lb
99         
100         if ACPI_SSDTX_NUM
101             makerule ssdt2.c
102                         depends "$(MAINBOARD)/dx/pci2.asl"
103                         action  "iasl -tc $(MAINBOARD)/dx/pci2.asl"
104                         action  "perl -pi -e 's/AmlCode/AmlCode_ssdt2/g' pci2.hex"
105                         action  "mv pci2.hex ssdt2.c"
106             end
107             object ./ssdt2.o
108             makerule ssdt3.c
109                         depends "$(MAINBOARD)/dx/pci3.asl"
110                         action  "iasl -tc $(MAINBOARD)/dx/pci3.asl"
111                         action  "perl -pi -e 's/AmlCode/AmlCode_ssdt3/g' pci3.hex"
112                         action  "mv pci3.hex ssdt3.c"
113             end
114             object ./ssdt3.o
115             makerule ssdt4.c
116                         depends "$(MAINBOARD)/dx/pci4.asl"
117                         action  "iasl -tc $(MAINBOARD)/dx/pci4.asl"
118                         action  "perl -pi -e 's/AmlCode/AmlCode_ssdt4/g' pci4.hex"
119                         action  "mv pci4.hex ssdt4.c"
120             end
121             object ./ssdt4.o
122         end
123 end
124
125 if USE_DCACHE_RAM
126
127         if CONFIG_USE_INIT
128                 # compile cache_as_ram.c to auto.o
129                 makerule ./cache_as_ram_auto.o
130                         depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
131                         action "$(CC) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/cache_as_ram_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -o $@" 
132                 end
133
134         else   
135                 #compile cache_as_ram.c to auto.inc 
136                 makerule ./cache_as_ram_auto.inc
137                         depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
138                         action "$(CC) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/cache_as_ram_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -S -o $@"         
139                         action "perl -e 's/.rodata/.rom.data/g' -pi $@"
140                         action "perl -e 's/.text/.section .rom.text/g' -pi $@"
141                 end
142
143         end
144 end
145
146 if USE_FAILOVER_IMAGE
147 else
148     if CONFIG_AP_CODE_IN_CAR
149         makerule ./apc_auto.o
150                 depends "$(MAINBOARD)/apc_auto.c option_table.h"
151                 action "$(CC) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/apc_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -o $@"
152         end
153         ldscript /arch/i386/init/ldscript_apc.lb
154     end
155 end
156
157 ##
158 ## Build our 16 bit and 32 bit linuxBIOS entry code
159 ##
160
161 if HAVE_FAILOVER_BOOT
162     if USE_FAILOVER_IMAGE
163         mainboardinit cpu/x86/16bit/entry16.inc
164         ldscript /cpu/x86/16bit/entry16.lds
165     end
166 else
167     if USE_FALLBACK_IMAGE
168         mainboardinit cpu/x86/16bit/entry16.inc
169         ldscript /cpu/x86/16bit/entry16.lds
170     end
171 end
172
173 mainboardinit cpu/x86/32bit/entry32.inc
174 if USE_DCACHE_RAM
175         if CONFIG_USE_INIT
176                 ldscript /cpu/x86/32bit/entry32.lds
177         end
178
179         if CONFIG_USE_INIT
180                 ldscript /cpu/amd/car/cache_as_ram.lds
181         end
182 end
183
184 ##
185 ## Build our reset vector (This is where linuxBIOS is entered)
186 ##
187 if HAVE_FAILOVER_BOOT
188     if USE_FAILOVER_IMAGE 
189         mainboardinit cpu/x86/16bit/reset16.inc 
190         ldscript /cpu/x86/16bit/reset16.lds 
191     else
192         mainboardinit cpu/x86/32bit/reset32.inc 
193         ldscript /cpu/x86/32bit/reset32.lds 
194     end
195 else
196     if USE_FALLBACK_IMAGE 
197         mainboardinit cpu/x86/16bit/reset16.inc 
198         ldscript /cpu/x86/16bit/reset16.lds 
199     else
200         mainboardinit cpu/x86/32bit/reset32.inc 
201         ldscript /cpu/x86/32bit/reset32.lds 
202     end
203 end
204
205 ##
206 ## Include an id string (For safe flashing)
207 ##
208 mainboardinit arch/i386/lib/id.inc
209 ldscript /arch/i386/lib/id.lds
210
211 if USE_DCACHE_RAM
212         ##
213         ## Setup Cache-As-Ram
214         ##
215         mainboardinit cpu/amd/car/cache_as_ram.inc
216 end
217
218 ###
219 ### This is the early phase of linuxBIOS startup 
220 ### Things are delicate and we test to see if we should
221 ### failover to another image.
222 ###
223 if HAVE_FAILOVER_BOOT
224     if USE_FAILOVER_IMAGE
225         if USE_DCACHE_RAM
226                 ldscript /arch/i386/lib/failover_failover.lds
227         end
228     end
229 else
230     if USE_FALLBACK_IMAGE
231         if USE_DCACHE_RAM
232                 ldscript /arch/i386/lib/failover.lds
233         end
234     end
235 end
236
237 ###
238 ### O.k. We aren't just an intermediary anymore!
239 ###
240
241 ##
242 ## Setup RAM
243 ##
244 if USE_DCACHE_RAM
245
246         if CONFIG_USE_INIT
247                 initobject cache_as_ram_auto.o
248         else
249                 mainboardinit ./cache_as_ram_auto.inc
250         end
251
252 end
253
254 ##
255 ## Include the secondary Configuration files 
256 ##
257 if CONFIG_CHIP_NAME
258         config chip.h
259 end
260
261 # sample config for amd/serengeti_cheetah 
262 chip northbridge/amd/amdk8/root_complex
263         device apic_cluster 0 on
264                 chip cpu/amd/socket_F
265                         device apic 0 on end
266                 end
267         end
268         device pci_domain 0 on
269                 chip northbridge/amd/amdk8
270                         device pci 18.0 on #  northbridge 
271                                 #  devices on link 0, link 0 == LDT 0
272                                 chip southbridge/amd/amd8132
273                                         # the on/off keyword is mandatory
274                                         device pci 0.0 on end
275                                         device pci 0.1 on end
276                                         device pci 1.0 on end
277                                         device pci 1.1 on end
278                                 end
279                                 chip southbridge/amd/amd8111
280                                         # this "device pci 0.0" is the parent the next one
281                                         # PCI bridge
282                                         device pci 0.0 on
283                                                 device pci 0.0 on end
284                                                 device pci 0.1 on end
285                                                 device pci 0.2 off end
286                                                 device pci 1.0 off end
287                                         end
288                                         device pci 1.0 on
289                                                 chip superio/winbond/w83627hf
290                                                         device pnp 2e.0 off #  Floppy
291                                                                 io 0x60 = 0x3f0
292                                                                 irq 0x70 = 6
293                                                                 drq 0x74 = 2
294                                                         end
295                                                         device pnp 2e.1 off #  Parallel Port
296                                                                 io 0x60 = 0x378
297                                                                 irq 0x70 = 7
298                                                         end
299                                                         device pnp 2e.2 on #  Com1
300                                                                 io 0x60 = 0x3f8
301                                                                 irq 0x70 = 4
302                                                         end
303                                                         device pnp 2e.3 off #  Com2
304                                                                 io 0x60 = 0x2f8
305                                                                 irq 0x70 = 3
306                                                         end
307                                                         device pnp 2e.5 on #  Keyboard
308                                                                 io 0x60 = 0x60
309                                                                 io 0x62 = 0x64
310                                                                 irq 0x70 = 1
311                                                                 irq 0x72 = 12
312                                                         end
313                                                         device pnp 2e.6 off #  CIR
314                                                                 io 0x60 = 0x100
315                                                         end
316                                                         device pnp 2e.7 off #  GAME_MIDI_GIPO1
317                                                                 io 0x60 = 0x220
318                                                                 io 0x62 = 0x300
319                                                                 irq 0x70 = 9
320                                                         end                                             
321                                                         device pnp 2e.8 off end #  GPIO2
322                                                         device pnp 2e.9 off end #  GPIO3
323                                                         device pnp 2e.a off end #  ACPI
324                                                         device pnp 2e.b on #  HW Monitor
325                                                                 io 0x60 = 0x290
326                                                                 irq 0x70 = 5
327                                                         end
328                                                 end
329                                         end
330                                         device pci 1.1 on end
331                                         device pci 1.2 on end
332                                         device pci 1.3 on
333                                                 chip drivers/i2c/i2cmux # pca9556 smbus mux
334                                                         device i2c 18 on #0 pca9516 1
335                                                                 chip drivers/generic/generic #dimm 0-0-0
336                                                                         device i2c 50 on end
337                                                                 end
338                                                                 chip drivers/generic/generic #dimm 0-0-1
339                                                                         device i2c 51 on end
340                                                                 end
341                                                                 chip drivers/generic/generic #dimm 0-1-0
342                                                                         device i2c 52 on end
343                                                                 end
344                                                                 chip drivers/generic/generic #dimm 0-1-1
345                                                                         device i2c 53 on end
346                                                                 end
347                                                         end
348                                                         device i2c 18 on #1 pca9516 2
349                                                                 chip drivers/generic/generic #dimm 1-0-0
350                                                                         device i2c 50 on end
351                                                                 end
352                                                                 chip drivers/generic/generic #dimm 1-0-1
353                                                                         device i2c 51 on end
354                                                                 end
355                                                                 chip drivers/generic/generic #dimm 1-1-0
356                                                                         device i2c 52 on end
357                                                                 end
358                                                                 chip drivers/generic/generic #dimm 1-1-1
359                                                                         device i2c 53 on end
360                                                                 end
361                                                                 chip drivers/generic/generic #dimm 1-2-0
362                                                                         device i2c 54 on end
363                                                                 end
364                                                                 chip drivers/generic/generic #dimm 1-2-1
365                                                                         device i2c 55 on end
366                                                                 end
367                                                                 chip drivers/generic/generic #dimm 1-3-0
368                                                                         device i2c 56 on end
369                                                                 end
370                                                                 chip drivers/generic/generic #dimm 1-3-1
371                                                                         device i2c 57 on end
372                                                                 end
373                                                         end
374                                                 end
375                                         end # acpi
376                                         device pci 1.5 off end
377                                         device pci 1.6 off end
378                                         register "ide0_enable" = "1"
379                                         register "ide1_enable" = "1"
380                                 end
381                         end #  device pci 18.0
382
383                         device pci 18.0 on end
384                         device pci 18.0 on end  
385                         device pci 18.1 on end
386                         device pci 18.2 on end
387                         device pci 18.3 on end
388                 end
389                 chip northbridge/amd/amdk8
390                         device pci 19.0 on #  northbridge
391                                 chip southbridge/amd/amd8151
392                                         # the on/off keyword is mandatory
393                                         device pci 0.0 on end
394                                         device pci 1.0 on end
395                                 end
396                         end #  device pci 19.0
397
398                         device pci 19.0 on end
399                         device pci 19.0 on end
400                         device pci 19.1 on end
401                         device pci 19.2 on end
402                         device pci 19.3 on end
403                 end
404
405
406         end #pci_domain
407 #        chip drivers/generic/debug
408 #               device pnp 0.0 off end # chip name
409 #                device pnp 0.1 on end # pci_regs_all
410 #                device pnp 0.2 off end # mem
411 #                device pnp 0.3 off end # cpuid
412 #                device pnp 0.4 off end # smbus_regs_all
413 #                device pnp 0.5 off end # dual core msr
414 #                device pnp 0.6 off end # cache size
415 #                device pnp 0.7 off end # tsc
416 #       end
417
418 end
419
420