2 ## This file is part of the coreboot project.
4 ## This program is free software; you can redistribute it and/or modify
5 ## it under the terms of the GNU General Public License as published by
6 ## the Free Software Foundation; either version 2 of the License, or
7 ## (at your option) any later version.
9 ## This program is distributed in the hope that it will be useful,
10 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 ## GNU General Public License for more details.
14 ## You should have received a copy of the GNU General Public License
15 ## along with this program; if not, write to the Free Software
16 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 ## CONFIG_XIP_ROM_SIZE must be a power of 2.
20 default CONFIG_XIP_ROM_SIZE = 64 * 1024
21 include /config/failovercalculation.lb
26 ## Build the objects we have code for in this directory.
30 #needed by irq_tables and mptable and acpi_tables
33 if CONFIG_GENERATE_MP_TABLE object mptable.o end
34 if CONFIG_GENERATE_PIRQ_TABLE object irq_tables.o end
39 depends "$(CONFIG_MAINBOARD)/cache_as_ram_auto.c option_table.h"
40 action "$(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) -I$(TOP)/src -I. -c $(CONFIG_MAINBOARD)/cache_as_ram_auto.c -o $@"
44 depends "$(CONFIG_MAINBOARD)/cache_as_ram_auto.c option_table.h"
45 action "$(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(TOP)/src -I. -c -S $(CONFIG_MAINBOARD)/cache_as_ram_auto.c -o $@"
46 action "perl -e 's/\.rodata/.rom.data/g' -pi $@"
47 action "perl -e 's/\.text/.section .rom.text/g' -pi $@"
51 if CONFIG_USE_FAILOVER_IMAGE
53 if CONFIG_AP_CODE_IN_CAR
55 depends "$(CONFIG_MAINBOARD)/apc_auto.c option_table.h"
56 action "$(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) -I$(TOP)/src -I. -c $(CONFIG_MAINBOARD)/apc_auto.c -o $@"
58 ldscript /arch/i386/init/ldscript_apc.lb
64 ## Build our 16 bit and 32 bit coreboot entry code
66 if CONFIG_HAVE_FAILOVER_BOOT
67 if CONFIG_USE_FAILOVER_IMAGE
68 mainboardinit cpu/x86/16bit/entry16.inc
69 ldscript /cpu/x86/16bit/entry16.lds
72 if CONFIG_USE_FALLBACK_IMAGE
73 mainboardinit cpu/x86/16bit/entry16.inc
74 ldscript /cpu/x86/16bit/entry16.lds
78 mainboardinit cpu/x86/32bit/entry32.inc
81 ldscript /cpu/x86/32bit/entry32.lds
85 ldscript /cpu/amd/car/cache_as_ram.lds
89 ## Build our reset vector (This is where coreboot is entered)
91 if CONFIG_HAVE_FAILOVER_BOOT
92 if CONFIG_USE_FAILOVER_IMAGE
93 mainboardinit cpu/x86/16bit/reset16.inc
94 ldscript /cpu/x86/16bit/reset16.lds
96 mainboardinit cpu/x86/32bit/reset32.inc
97 ldscript /cpu/x86/32bit/reset32.lds
100 if CONFIG_USE_FALLBACK_IMAGE
101 mainboardinit cpu/x86/16bit/reset16.inc
102 ldscript /cpu/x86/16bit/reset16.lds
104 mainboardinit cpu/x86/32bit/reset32.inc
105 ldscript /cpu/x86/32bit/reset32.lds
110 ## Include an id string (For safe flashing)
112 mainboardinit southbridge/nvidia/mcp55/id.inc
113 ldscript /southbridge/nvidia/mcp55/id.lds
116 ## ROMSTRAP table for MCP55
118 if CONFIG_HAVE_FAILOVER_BOOT
119 if CONFIG_USE_FAILOVER_IMAGE
120 mainboardinit southbridge/nvidia/mcp55/romstrap.inc
121 ldscript /southbridge/nvidia/mcp55/romstrap.lds
124 if CONFIG_USE_FALLBACK_IMAGE
125 mainboardinit southbridge/nvidia/mcp55/romstrap.inc
126 ldscript /southbridge/nvidia/mcp55/romstrap.lds
131 ## Setup Cache-As-Ram
133 mainboardinit cpu/amd/car/cache_as_ram.inc
136 ### This is the early phase of coreboot startup
137 ### Things are delicate and we test to see if we should
138 ### failover to another image.
140 if CONFIG_HAVE_FAILOVER_BOOT
141 if CONFIG_USE_FAILOVER_IMAGE
142 ldscript /arch/i386/lib/failover_failover.lds
145 if CONFIG_USE_FALLBACK_IMAGE
146 ldscript /arch/i386/lib/failover.lds
156 mainboardinit ./auto.inc
160 ## Include the secondary Configuration files
164 chip northbridge/amd/amdk8/root_complex
165 device apic_cluster 0 on
166 chip cpu/amd/socket_F
170 device pci_domain 0 on
171 chip northbridge/amd/amdk8 #mc0
172 device pci 18.0 on end
173 device pci 18.0 on end
175 # devices on link 0, link 0 == LDT 0
176 chip southbridge/nvidia/mcp55
177 device pci 0.0 on end # HT
178 device pci 1.0 on # LPC
179 chip superio/winbond/w83627hf
180 device pnp 2e.0 off # Floppy
185 device pnp 2e.1 off # Parallel Port
189 device pnp 2e.2 on # Com1
193 device pnp 2e.3 off # Com2
197 device pnp 2e.5 on # Keyboard
203 device pnp 2e.6 off # SFI
206 device pnp 2e.7 off # GPIO_GAME_MIDI
211 device pnp 2e.8 off end # WDTO_PLED
212 device pnp 2e.9 off end # GPIO_SUSLED
213 device pnp 2e.a off end # ACPI
214 device pnp 2e.b on # HW Monitor
220 device pci 1.1 on # SM 0
221 chip drivers/i2c/i2cmux2
222 device i2c 48 off end
223 device i2c 49 off end
226 device pci 1.1 on # SM 1
227 #PCI device smbus address will depend on addon pci device, do we need to scan_smbus_bus?
228 # chip drivers/generic/generic #PCIXA Slot1
229 # device i2c 50 on end
231 # chip drivers/generic/generic #PCIXB Slot1
232 # device i2c 51 on end
234 # chip drivers/generic/generic #PCIXB Slot2
235 # device i2c 52 on end
237 # chip drivers/generic/generic #PCI Slot1
238 # device i2c 53 on end
240 # chip drivers/generic/generic #Master MCP55 PCI-E
241 # device i2c 54 on end
243 # chip drivers/generic/generic #Slave MCP55 PCI-E
244 # device i2c 55 on end
246 chip drivers/generic/generic #MAC EEPROM
251 device pci 2.0 on end # USB 1.1
252 device pci 2.1 on end # USB 2
253 device pci 4.0 on end # IDE
254 device pci 5.0 on end # SATA 0
255 device pci 5.1 on end # SATA 1
256 device pci 5.2 on end # SATA 2
257 device pci 6.0 on # PCI
258 chip drivers/pci/onboard
259 device pci 6.0 on end
260 register "rom_address" = "0xfff00000" #for 1M
261 # register "rom_address" = "0xfff80000" #for 512K
264 device pci 6.1 on end # AZA
265 device pci 8.0 on end # NIC
266 device pci 9.0 on end # NIC
267 device pci a.0 on # PCI E 5
268 device pci 0.0 on #nec pci-x
270 device pci 0.1 on #nec pci-x
271 device pci 4.0 on end #scsi
272 device pci 4.1 on end #scsi
275 device pci b.0 on end # PCI E 4
276 device pci c.0 on end # PCI E 3
277 device pci d.0 on end # PCI E 2
278 device pci e.0 on end # PCI E 1
279 device pci f.0 on end # PCI E 0
280 register "ide0_enable" = "1"
281 register "sata0_enable" = "1"
282 register "sata1_enable" = "1"
283 register "mac_eeprom_smbus" = "3" # 1: smbus under 2e.8, 2: SM0 3: SM1
284 register "mac_eeprom_addr" = "0x51"
286 end # device pci 18.0
287 device pci 18.1 on end
288 device pci 18.2 on end
289 device pci 18.3 on end
294 # chip drivers/generic/debug
295 # device pnp 0.0 off end # chip name
296 # device pnp 0.1 on end # pci_regs_all
297 # device pnp 0.2 off end # mem
298 # device pnp 0.3 off end # cpuid
299 # device pnp 0.4 on end # smbus_regs_all
300 # device pnp 0.5 off end # dual core msr
301 # device pnp 0.6 off end # cache size
302 # device pnp 0.7 off end # tsc
303 # device pnp 0.8 off end # io
304 # device pnp 0.9 on end # io