49a802bee741679ae81c19b0c8878f7e231cbf0c
[coreboot.git] / src / mainboard / ibm / e326 / 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_PAYLOAD_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_PAYLOAD_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 ##
36 ## Set all of the defaults for an x86 architecture
37 ##
38
39 arch i386 end
40
41 ##
42 ## Build the objects we have code for in this directory.
43 ##
44
45 driver mainboard.o
46 if HAVE_MP_TABLE object mptable.o end
47 if HAVE_PIRQ_TABLE object irq_tables.o end
48 #object reset.o
49
50 if USE_DCACHE_RAM
51
52 if CONFIG_USE_INIT
53
54 makerule ./auto.o
55         depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
56         action "$(CC) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/cache_as_ram_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -o auto.o" 
57 end
58
59 else    
60                 
61 makerule ./auto.inc
62         depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
63         action "$(CC) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/cache_as_ram_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -S -o $@"         
64         action "perl -e 's/.rodata/.rom.data/g' -pi $@"
65         action "perl -e 's/.text/.section .rom.text/g' -pi $@"
66 end
67
68 end
69 else
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 ##
95 ## Build our 16 bit and 32 bit linuxBIOS entry code
96 ##
97 if USE_FALLBACK_IMAGE
98         mainboardinit cpu/x86/16bit/entry16.inc
99         ldscript /cpu/x86/16bit/entry16.lds
100 end
101
102 mainboardinit cpu/x86/32bit/entry32.inc
103
104 if USE_DCACHE_RAM
105         if CONFIG_USE_INIT
106                 ldscript /cpu/x86/32bit/entry32.lds
107         end
108
109         if CONFIG_USE_INIT
110                 ldscript      /cpu/amd/car/cache_as_ram.lds
111         end
112 end
113
114 ##
115 ## Build our reset vector (This is where linuxBIOS is entered)
116 ##
117 if USE_FALLBACK_IMAGE 
118         mainboardinit cpu/x86/16bit/reset16.inc 
119         ldscript /cpu/x86/16bit/reset16.lds 
120 else
121         mainboardinit cpu/x86/32bit/reset32.inc 
122         ldscript /cpu/x86/32bit/reset32.lds 
123 end
124
125 if USE_DCACHE_RAM
126 else
127 ### Should this be in the northbridge code?
128 mainboardinit arch/i386/lib/cpu_reset.inc
129 end
130
131 ##
132 ## Include an id string (For safe flashing)
133 ##
134 mainboardinit arch/i386/lib/id.inc
135 ldscript /arch/i386/lib/id.lds
136
137 if USE_DCACHE_RAM
138 ##
139 ## Setup Cache-As-Ram
140 ##
141 mainboardinit cpu/amd/car/cache_as_ram.inc
142 end
143
144 ###
145 ### This is the early phase of linuxBIOS startup 
146 ### Things are delicate and we test to see if we should
147 ### failover to another image.
148 ###
149 if USE_FALLBACK_IMAGE
150 if USE_DCACHE_RAM
151        ldscript /arch/i386/lib/failover.lds
152 else
153        ldscript /arch/i386/lib/failover.lds
154         mainboardinit ./failover.inc
155 end
156 end
157
158 ###
159 ### O.k. We aren't just an intermediary anymore!
160 ###
161
162 ##
163 ## Setup RAM
164 ##
165 if USE_DCACHE_RAM
166
167 if CONFIG_USE_INIT
168 initobject auto.o
169 else
170 mainboardinit ./auto.inc
171 end
172
173 else
174
175 ##
176 ## Setup RAM
177 ##
178 mainboardinit cpu/x86/fpu/enable_fpu.inc
179 mainboardinit cpu/x86/mmx/enable_mmx.inc
180 mainboardinit cpu/x86/sse/enable_sse.inc
181 mainboardinit ./auto.inc
182 mainboardinit cpu/x86/sse/disable_sse.inc
183 mainboardinit cpu/x86/mmx/disable_mmx.inc
184 end
185
186 ##
187 ## Include the secondary Configuration files 
188 ##
189 config chip.h
190
191
192 chip northbridge/amd/amdk8/root_complex
193         device apic_cluster 0 on
194                 chip cpu/amd/socket_940
195                         device apic 0 on end
196                 end
197         end
198
199         device pci_domain 0 on
200                 chip northbridge/amd/amdk8
201                         device pci 18.0 on end # LDT 0
202                         device pci 18.0 on     # LDT 1
203                                 chip southbridge/amd/amd8131
204                                         device pci 0.0 on end
205                                         device pci 0.1 on end
206                                         device pci 1.0 on end
207                                         device pci 1.1 on end
208                                 end
209                                 chip southbridge/amd/amd8111
210                                         device pci 0.0 on
211                                                 device pci 0.0 on end
212                                                 device pci 0.1 on end
213                                                 device pci 0.2 on end
214                                                 device pci 1.0 off end
215                                                 chip drivers/pci/onboard
216                                                         device pci 5.0 on end # ATI Rage XL
217                                                         register "rom_address" = "0xfff80000"
218                                                 end
219                                         end
220                                         device pci 1.0 on
221                                                 chip superio/nsc/pc87366
222                                                         device  pnp 2e.0 off  # Floppy 
223                                                                  io 0x60 = 0x3f0
224                                                                 irq 0x70 = 6
225                                                                 drq 0x74 = 2
226                                                         end
227                                                         device pnp 2e.1 off  # Parallel Port
228                                                                  io 0x60 = 0x378
229                                                                 irq 0x70 = 7
230                                                         end
231                                                         device pnp 2e.2 off # Com 2
232                                                                  io 0x60 = 0x2f8
233                                                                 irq 0x70 = 3
234                                                         end
235                                                         device pnp 2e.3 on  # Com 1
236                                                                  io 0x60 = 0x3f8
237                                                                 irq 0x70 = 4
238                                                         end
239                                                         device pnp 2e.4 off end # SWC
240                                                         device pnp 2e.5 off end # Mouse
241                                                         device pnp 2e.6 on  # Keyboard
242                                                                  io 0x60 = 0x60
243                                                                  io 0x62 = 0x64
244                                                                 irq 0x70 = 1
245                                                         end
246                                                         device pnp 2e.7 off end # GPIO
247                                                         device pnp 2e.8 off end # ACB
248                                                         device pnp 2e.9 off end # FSCM
249                                                         device pnp 2e.a off end # WDT  
250                                                 end
251                                         end
252                                         device pci 1.1 on end
253                                         device pci 1.2 on end
254                                         device pci 1.3 on end
255                                         device pci 1.5 off end
256                                         device pci 1.6 off end
257                                         register "ide0_enable" = "1"
258                                         register "ide1_enable" = "1"
259                                 end
260                         end #  device pci 18.0 
261                         device pci 18.0 on end # LDT2
262                         device pci 18.1 on end
263                         device pci 18.2 on end
264                         device pci 18.3 on end
265                 end
266         end 
267 end
268