Revision: linuxbios@linuxbios.org--devel/freebios--devel--2.0--patch-51
[coreboot.git] / src / mainboard / tyan / s2881 / 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/s2881
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         device pci_domain 0 on
197                 chip northbridge/amd/amdk8
198                         device pci 18.0 on end # LDT0
199                         device pci 18.0 on end # LDT1
200                         device pci 18.0 on #  northbridge 
201                                 #  devices on link 2, link 2 == LDT 2
202                                 chip southbridge/amd/amd8131
203                                         # the on/off keyword is mandatory
204                                         device pci 0.0 on 
205                                                 chip drivers/pci/onboard
206                                                         device pci 9.0 on end # Broadcom 5704
207                                                         device pci 9.1 on end
208                                                 end
209                                                 chip drivers/pci/onboard
210                                                         device pci a.0 on end # Adaptic
211                                                         device pci a.1 on end
212                                                 end
213                                         end
214                                         device pci 0.1 on end
215                                         device pci 1.0 on end
216                                         device pci 1.1 on end
217                                 end
218                                 chip southbridge/amd/amd8111
219                                         # this "device pci 0.0" is the parent the next one
220                                         # PCI bridge
221                                         device pci 0.0 on
222                                                 device pci 0.0 on end
223                                                 device pci 0.1 on end
224                                                 device pci 0.2 off end
225                                                 device pci 1.0 off end
226                                                 chip drivers/pci/onboard
227                                                         device pci 5.0 on end # SiI
228                                                 end
229                                                 chip drivers/pci/onboard
230                                                         device pci 6.0 on end
231                                                         register "rom_address" = "0xfff80000"
232                                                 end
233                                         end
234                                         device pci 1.0 on
235                                                 chip superio/winbond/w83627hf
236                                                         device pnp 2e.0 on #  Floppy
237                                                                 io 0x60 = 0x3f0
238                                                                 irq 0x70 = 6
239                                                                 drq 0x74 = 2
240                                                         end
241                                                         device pnp 2e.1 off #  Parallel Port
242                                                                 io 0x60 = 0x378
243                                                                 irq 0x70 = 7
244                                                         end
245                                                         device pnp 2e.2 on #  Com1
246                                                                 io 0x60 = 0x3f8
247                                                                 irq 0x70 = 4
248                                                         end
249                                                         device pnp 2e.3 off #  Com2
250                                                                 io 0x60 = 0x2f8
251                                                                 irq 0x70 = 3
252                                                         end
253                                                         device pnp 2e.5 on #  Keyboard
254                                                                 io 0x60 = 0x60
255                                                                 io 0x62 = 0x64
256                                                                 irq 0x70 = 1
257                                                                 irq 0x72 = 12
258                                                         end
259                                                         device pnp 2e.6 off #  CIR
260                                                                 io 0x60 = 0x100
261                                                         end
262                                                         device pnp 2e.7 off #  GAME_MIDI_GIPO1
263                                                                 io 0x60 = 0x220
264                                                                 io 0x62 = 0x300
265                                                                 irq 0x70 = 9
266                                                         end  
267                                                         device pnp 2e.8 off end #  GPIO2
268                                                         device pnp 2e.9 off end #  GPIO3
269                                                         device pnp 2e.a off end #  ACPI
270                                                         device pnp 2e.b on #  HW Monitor
271                                                                 io 0x60 = 0x290
272                                                                 irq 0x70 = 5
273                                                         end
274                                                 end
275                                         end
276                                         device pci 1.1 on end
277                                         device pci 1.2 on end
278                                         device pci 1.3 on 
279                                                 chip drivers/generic/generic #dimm 0-0-0
280                                                         device i2c 50 on end
281                                                 end
282                                                 chip drivers/generic/generic #dimm 0-0-1
283                                                         device i2c 51 on end
284                                                 end     
285                                                 chip drivers/generic/generic #dimm 0-1-0
286                                                         device i2c 52 on end
287                                                 end
288                                                 chip drivers/generic/generic #dimm 0-1-1
289                                                         device i2c 53 on end
290                                                 end
291                                                 chip drivers/generic/generic #dimm 1-0-0
292                                                         device i2c 54 on end
293                                                 end
294                                                 chip drivers/generic/generic #dimm 1-0-1
295                                                         device i2c 55 on end
296                                                 end
297                                                 chip drivers/generic/generic #dimm 1-1-0
298                                                         device i2c 56 on end
299                                                 end
300                                                 chip drivers/generic/generic #dimm 1-1-1
301                                                         device i2c 57 on end
302                                                 end
303                                                 chip drivers/i2c/adm1027 # ADT7463A CPU0/1 temp, CPU1 vid, SYS FAN 1/2/3
304                                                         device i2c 2d on end
305                                                 end
306                                                 chip drivers/generic/generic # Winbond HWM 0x54 CPU0/1 VRM temp, SYSFAN 4,CPU0 vid, CPU0/1 FAN
307                                                         device i2c 2a on end
308                                                 end
309                                                 chip drivers/generic/generic # Winbond HWM 0x92
310                                                         device i2c 49 on end
311                                                 end
312                                                 chip drivers/generic/generic # Winbond HWM 0x94
313                                                         device i2c 4a on end
314                                                 end
315                                         end # acpi
316                                         device pci 1.5 off end
317                                         device pci 1.6 off end
318                                         register "ide0_enable" = "1"
319                                         register "ide1_enable" = "1"
320                                 end
321                         end #  device pci 18.0 
322                         
323                         device pci 18.1 on end
324                         device pci 18.2 on end
325                         device pci 18.3 on end
326                 end
327         end 
328 end
329