- See Issue Tracker id-15 "lnxi-patch-15".
[coreboot.git] / src / mainboard / tyan / s2882 / 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_FALLBACK_IMAGE
6         default ROM_SECTION_SIZE   = FALLBACK_SIZE
7         default ROM_SECTION_OFFSET = ( ROM_SIZE - FALLBACK_SIZE )
8 else
9         default ROM_SECTION_SIZE   = ( ROM_SIZE - FALLBACK_SIZE )
10         default ROM_SECTION_OFFSET = 0
11 end
12
13 ##
14 ## Compute the start location and size size of
15 ## The linuxBIOS bootloader.
16 ##
17 default PAYLOAD_SIZE            = ( ROM_SECTION_SIZE - ROM_IMAGE_SIZE )
18 default CONFIG_ROM_STREAM_START = (0xffffffff - ROM_SIZE + ROM_SECTION_OFFSET + 1)
19
20 ##
21 ## Compute where this copy of linuxBIOS will start in the boot rom
22 ##
23 default _ROMBASE      = ( CONFIG_ROM_STREAM_START + PAYLOAD_SIZE )
24
25 ##
26 ## Compute a range of ROM that can cached to speed up linuxBIOS,
27 ## execution speed.
28 ##
29 ## XIP_ROM_SIZE must be a power of 2.
30 ## XIP_ROM_BASE must be a multiple of XIP_ROM_SIZE
31 ##
32 default XIP_ROM_SIZE=65536
33 default XIP_ROM_BASE = ( _ROMBASE + ROM_IMAGE_SIZE - XIP_ROM_SIZE )
34
35 arch i386 end 
36
37 ##
38 ## Build the objects we have code for in this directory.
39 ##
40
41 driver mainboard.o
42
43 #dir /drivers/si/3114
44
45 if HAVE_MP_TABLE object mptable.o end
46 if HAVE_PIRQ_TABLE object irq_tables.o end
47 object reset.o
48
49 if USE_DCACHE_RAM
50
51 if CONFIG_USE_INIT
52
53 makerule ./auto.o
54         depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
55         action "$(CC) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/cache_as_ram_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -o auto.o" 
56 end
57
58 else    
59                 
60 makerule ./auto.inc
61         depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
62         action "$(CC) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/cache_as_ram_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -S -o $@"         
63         action "perl -e 's/.rodata/.rom.data/g' -pi $@"
64         action "perl -e 's/.text/.section .rom.text/g' -pi $@"
65 end
66
67 end
68 else
69
70 ##
71 ## Romcc output
72 ##
73 makerule ./failover.E
74         depends "$(MAINBOARD)/failover.c ./romcc"
75         action "./romcc -E -O --label-prefix=failover -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/failover.c -o $@"
76 end
77
78 makerule ./failover.inc
79         depends "$(MAINBOARD)/failover.c ./romcc"
80         action "./romcc    -O --label-prefix=failover -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/failover.c -o $@"
81 end
82
83 makerule ./auto.E
84         depends "$(MAINBOARD)/auto.c option_table.h ./romcc"
85         action  "./romcc -E -mcpu=k8 -O2 -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/auto.c -o $@"
86 end
87 makerule ./auto.inc
88         depends "$(MAINBOARD)/auto.c option_table.h ./romcc"
89         action  "./romcc    -mcpu=k8 -O2 -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/auto.c -o $@"
90 end
91
92 end
93 ##
94 ## Build our 16 bit and 32 bit linuxBIOS entry code
95 ##
96 mainboardinit cpu/x86/16bit/entry16.inc
97 mainboardinit cpu/x86/32bit/entry32.inc
98 ldscript /cpu/x86/16bit/entry16.lds
99 if USE_DCACHE_RAM
100         if CONFIG_USE_INIT
101                 ldscript /cpu/x86/32bit/entry32.lds
102         end
103
104         if CONFIG_USE_INIT
105                 ldscript      /cpu/amd/car/cache_as_ram.lds
106         end
107 end
108
109 ##
110 ## Build our reset vector (This is where linuxBIOS is entered)
111 ##
112 if USE_FALLBACK_IMAGE 
113         mainboardinit cpu/x86/16bit/reset16.inc 
114         ldscript /cpu/x86/16bit/reset16.lds 
115 else
116         mainboardinit cpu/x86/32bit/reset32.inc 
117         ldscript /cpu/x86/32bit/reset32.lds 
118 end
119
120 if USE_DCACHE_RAM
121 else
122 ### Should this be in the northbridge code?
123 mainboardinit arch/i386/lib/cpu_reset.inc
124 end
125
126 ##
127 ## Include an id string (For safe flashing)
128 ##
129 mainboardinit arch/i386/lib/id.inc
130 ldscript /arch/i386/lib/id.lds
131
132 if USE_DCACHE_RAM
133 ##
134 ## Setup Cache-As-Ram
135 ##
136 mainboardinit cpu/amd/car/cache_as_ram.inc
137 end
138
139 ###
140 ### This is the early phase of linuxBIOS startup 
141 ### Things are delicate and we test to see if we should
142 ### failover to another image.
143 ###
144 if USE_FALLBACK_IMAGE
145 if USE_DCACHE_RAM
146        ldscript /arch/i386/lib/failover.lds
147 else
148        ldscript /arch/i386/lib/failover.lds
149         mainboardinit ./failover.inc
150 end
151 end
152
153 ###
154 ### O.k. We aren't just an intermediary anymore!
155 ###
156
157 ##
158 ## Setup RAM
159 ##
160 if USE_DCACHE_RAM
161
162 if CONFIG_USE_INIT
163 initobject auto.o
164 else
165 mainboardinit ./auto.inc
166 end
167
168 else
169
170 ##
171 ## Setup RAM
172 ##
173 mainboardinit cpu/x86/fpu/enable_fpu.inc
174 mainboardinit cpu/x86/mmx/enable_mmx.inc
175 mainboardinit cpu/x86/sse/enable_sse.inc
176 mainboardinit ./auto.inc
177 mainboardinit cpu/x86/sse/disable_sse.inc
178 mainboardinit cpu/x86/mmx/disable_mmx.inc
179
180 end
181
182 ##
183 ## Include the secondary Configuration files 
184 ##
185 if CONFIG_CHIP_NAME
186         config chip.h
187 end
188
189 # sample config for tyan/s2882
190 chip northbridge/amd/amdk8/root_complex
191         device apic_cluster 0 on
192                 chip cpu/amd/socket_940
193                         device apic 0 on end
194                 end
195         end
196
197         device pci_domain 0 on
198                 chip northbridge/amd/amdk8
199                         device pci 18.0 on #  northbridge 
200                                 #  devices on link 0, link 0 == LDT 0
201                                 chip southbridge/amd/amd8131
202                                         # the on/off keyword is mandatory
203                                         device pci 0.0 on
204                                                 chip drivers/pci/onboard 
205                                                         device pci 6.0 on end # adaptec
206                                                         device pci 6.1 on end
207                                                 end 
208                                                 chip drivers/pci/onboard
209                                                         device pci 9.0 on end # broadcom 5704
210                                                         device pci 9.1 on end
211                                                 end
212                                         end
213                                         device pci 0.1 on end
214                                         device pci 1.0 on end
215                                         device pci 1.1 on end
216                                 end
217                                 chip southbridge/amd/amd8111
218                                         # this "device pci 0.0" is the parent the next one
219                                         # PCI bridge
220                                         device pci 0.0 on
221                                                 device pci 0.0 on end
222                                                 device pci 0.1 on end
223                                                 device pci 0.2 off end
224                                                 device pci 1.0 off end
225                                                 chip drivers/pci/onboard  
226                                                         device pci 5.0 on end
227                                                 end
228                                         #       chip drivers/ati/ragexl
229                                                 chip drivers/pci/onboard
230                                                         device pci 6.0 on end
231                                                         register "rom_address" = "0xfff80000"
232                                                 end
233                                                 chip drivers/pci/onboard 
234                                                         device pci 8.0 on end #intel 10/100
235                                                 end
236                                         end
237                                         device pci 1.0 on
238                                                 chip superio/winbond/w83627hf
239                                                         device pnp 2e.0 on #  Floppy
240                                                                 io 0x60 = 0x3f0
241                                                                 irq 0x70 = 6
242                                                                 drq 0x74 = 2
243                                                         end
244                                                         device pnp 2e.1 off #  Parallel Port
245                                                                 io 0x60 = 0x378
246                                                                 irq 0x70 = 7
247                                                         end
248                                                         device pnp 2e.2 on #  Com1
249                                                                 io 0x60 = 0x3f8
250                                                                 irq 0x70 = 4
251                                                         end
252                                                         device pnp 2e.3 off #  Com2
253                                                                 io 0x60 = 0x2f8
254                                                                 irq 0x70 = 3
255                                                         end
256                                                         device pnp 2e.5 on #  Keyboard
257                                                                 io 0x60 = 0x60
258                                                                 io 0x62 = 0x64
259                                                                 irq 0x70 = 1
260                                                                 irq 0x72 = 12
261                                                         end
262                                                         device pnp 2e.6 off #  CIR
263                                                                 io 0x60 = 0x100
264                                                         end
265                                                         device pnp 2e.7 off #  GAME_MIDI_GIPO1
266                                                                 io 0x60 = 0x220
267                                                                 io 0x62 = 0x300
268                                                                 irq 0x70 = 9
269                                                         end  
270                                                         device pnp 2e.8 off end #  GPIO2
271                                                         device pnp 2e.9 off end #  GPIO3
272                                                         device pnp 2e.a off end #  ACPI
273                                                         device pnp 2e.b on #  HW Monitor
274                                                                 io 0x60 = 0x290
275                                                                 irq 0x70 = 5
276                                                         end
277                                                 end
278                                         end
279                                         device pci 1.1 on end
280                                         device pci 1.2 on end
281                                         device pci 1.3 on end
282                                         device pci 1.3 on 
283 #                                                chip drivers/generic/generic #dimm 0-0-0
284 #                                                        device i2c 50 on end
285 #                                                end
286 #                                                chip drivers/generic/generic #dimm 0-0-1
287 #                                                        device i2c 51 on end
288 #                                                end     
289 #                                                chip drivers/generic/generic #dimm 0-1-0
290 #                                                        device i2c 52 on end
291 #                                                end
292 #                                                chip drivers/generic/generic #dimm 0-1-1
293 #                                                        device i2c 53 on end
294 #                                                end
295 #                                                chip drivers/generic/generic #dimm 1-0-0
296 #                                                        device i2c 54 on end
297 #                                                end
298 #                                                chip drivers/generic/generic #dimm 1-0-1
299 #                                                        device i2c 55 on end
300 #                                                end
301 #                                                chip drivers/generic/generic #dimm 1-1-0
302 #                                                        device i2c 56 on end
303 #                                                end
304 #                                                chip drivers/generic/generic #dimm 1-1-1
305 #                                                        device i2c 57 on end
306 #                                                end
307                                         end # acpi
308                                         device pci 1.5 off end
309                                         device pci 1.6 off end
310                                         register "ide0_enable" = "1"
311                                         register "ide1_enable" = "1"
312                                 end
313                         end #  device pci 18.0 
314                         
315                         device pci 18.0 on end
316                         device pci 18.0 on end
317                         
318                         device pci 18.1 on end
319                         device pci 18.2 on end
320                         device pci 18.3 on end
321                 end # NB
322         end #pci_domain
323 end
324