2 ## This file is part of the coreboot project.
4 ## Copyright (C) 2007 AMD
5 ## Written by Yinghai Lu <yinghailu@amd.com> for AMD.
6 ## Copyright (C) 2007 Silicon Integrated Systems Corp. (SiS)
7 ## Written by Morgan Tsai <my_tsai@sis.com> for SiS.
9 ## This program is free software; you can redistribute it and/or modify
10 ## it under the terms of the GNU General Public License as published by
11 ## the Free Software Foundation; either version 2 of the License, or
12 ## (at your option) any later version.
14 ## This program is distributed in the hope that it will be useful,
15 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ## GNU General Public License for more details.
19 ## You should have received a copy of the GNU General Public License
20 ## along with this program; if not, write to the Free Software
21 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 ## Compute the location and size of where this firmware image
26 ## (coreboot plus bootloader) will live in the boot rom chip.
29 default ROM_SECTION_SIZE = FAILOVER_SIZE
30 default ROM_SECTION_OFFSET = ( ROM_SIZE - FAILOVER_SIZE )
33 default ROM_SECTION_SIZE = FALLBACK_SIZE
34 default ROM_SECTION_OFFSET = ( ROM_SIZE - FALLBACK_SIZE - FAILOVER_SIZE )
36 default ROM_SECTION_SIZE = ( ROM_SIZE - FALLBACK_SIZE - FAILOVER_SIZE )
37 default ROM_SECTION_OFFSET = 0
42 ## Compute the start location and size size of
43 ## The coreboot bootloader.
45 default PAYLOAD_SIZE = ( ROM_SECTION_SIZE - ROM_IMAGE_SIZE )
46 default CONFIG_ROM_PAYLOAD_START = (0xffffffff - ROM_SIZE + ROM_SECTION_OFFSET + 1)
49 ## Compute where this copy of coreboot will start in the boot rom
51 default _ROMBASE = ( CONFIG_ROM_PAYLOAD_START + PAYLOAD_SIZE )
54 ## Compute a range of ROM that can cached to speed up coreboot,
57 ## XIP_ROM_SIZE must be a power of 2.
58 ## XIP_ROM_BASE must be a multiple of XIP_ROM_SIZE
60 default XIP_ROM_SIZE=65536
63 default XIP_ROM_BASE = ( _ROMBASE - XIP_ROM_SIZE + ROM_IMAGE_SIZE)
66 default XIP_ROM_BASE = ( _ROMBASE - XIP_ROM_SIZE + ROM_IMAGE_SIZE + FAILOVER_SIZE)
68 default XIP_ROM_BASE = ( _ROMBASE - XIP_ROM_SIZE + ROM_IMAGE_SIZE)
75 ## Build the objects we have code for in this directory.
79 #needed by irq_tables and mptable and acpi_tables
82 if HAVE_MP_TABLE object mptable.o end
83 if HAVE_PIRQ_TABLE object irq_tables.o end
88 makerule ./cache_as_ram_auto.o
89 depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
90 action "$(CC) $(DISTRO_CFLAGS) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/cache_as_ram_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -o $@"
93 makerule ./cache_as_ram_auto.inc
94 depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
95 action "$(CC) $(DISTRO_CFLAGS) -I$(TOP)/src -I. $(CPPFLAGS) $(CPU_OPT) $(MAINBOARD)/cache_as_ram_auto.c -Os -nostdinc -nostdlib -fno-builtin -g -dA -fverbose-asm -Wall -c -S -o $@"
96 action "perl -e 's/\.rodata/.rom.data/g' -pi $@"
97 action "perl -e 's/\.text/.section .rom.text/g' -pi $@"
103 if USE_FAILOVER_IMAGE
105 if CONFIG_AP_CODE_IN_CAR
106 makerule ./apc_auto.o
107 depends "$(MAINBOARD)/apc_auto.c option_table.h"
108 action "$(CC) -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/apc_auto.c -Os -nostdinc -nostdlib -fno-builtin -Wall -c -o $@"
110 ldscript /arch/i386/init/ldscript_apc.lb
116 ## Build our 16 bit and 32 bit coreboot entry code
118 if HAVE_FAILOVER_BOOT
119 if USE_FAILOVER_IMAGE
120 mainboardinit cpu/x86/16bit/entry16.inc
121 ldscript /cpu/x86/16bit/entry16.lds
124 if USE_FALLBACK_IMAGE
125 mainboardinit cpu/x86/16bit/entry16.inc
126 ldscript /cpu/x86/16bit/entry16.lds
130 mainboardinit cpu/x86/32bit/entry32.inc
134 ldscript /cpu/x86/32bit/entry32.lds
138 ldscript /cpu/amd/car/cache_as_ram.lds
144 ## Build our reset vector (This is where coreboot is entered)
146 if HAVE_FAILOVER_BOOT
147 if USE_FAILOVER_IMAGE
148 mainboardinit cpu/x86/16bit/reset16.inc
149 ldscript /cpu/x86/16bit/reset16.lds
151 mainboardinit cpu/x86/32bit/reset32.inc
152 ldscript /cpu/x86/32bit/reset32.lds
155 if USE_FALLBACK_IMAGE
156 mainboardinit cpu/x86/16bit/reset16.inc
157 ldscript /cpu/x86/16bit/reset16.lds
159 mainboardinit cpu/x86/32bit/reset32.inc
160 ldscript /cpu/x86/32bit/reset32.lds
165 ## Include an id string (For safe flashing)
167 mainboardinit southbridge/sis/sis966/id.inc
168 ldscript /southbridge/sis/sis966/id.lds
171 ## ROMSTRAP table for MCP55
173 if HAVE_FAILOVER_BOOT
174 if USE_FAILOVER_IMAGE
175 mainboardinit southbridge/sis/sis966/romstrap.inc
176 ldscript /southbridge/sis/sis966/romstrap.lds
179 if USE_FALLBACK_IMAGE
180 mainboardinit southbridge/sis/sis966/romstrap.inc
181 ldscript /southbridge/sis/sis966/romstrap.lds
187 ## Setup Cache-As-Ram
189 mainboardinit cpu/amd/car/cache_as_ram.inc
193 ### This is the early phase of coreboot startup
194 ### Things are delicate and we test to see if we should
195 ### failover to another image.
197 if HAVE_FAILOVER_BOOT
198 if USE_FAILOVER_IMAGE
200 ldscript /arch/i386/lib/failover_failover.lds
204 if USE_FALLBACK_IMAGE
206 ldscript /arch/i386/lib/failover.lds
217 initobject cache_as_ram_auto.o
219 mainboardinit ./cache_as_ram_auto.inc
224 ## Include the secondary Configuration files
230 chip northbridge/amd/amdk8/root_complex
231 device apic_cluster 0 on
232 chip cpu/amd/socket_AM2
236 device pci_domain 0 on
237 chip northbridge/amd/amdk8 #mc0
239 # devices on link 0, link 0 == LDT 0
240 chip southbridge/sis/sis966
241 device pci 0.0 on end # Northbridge
242 device pci 1.0 on # AGP bridge
243 chip drivers/pci/onboard # Integrated VGA
244 device pci 0.0 on end
245 register "rom_address" = "0xfff80000"
248 device pci 2.0 on # LPC
249 chip superio/ite/it8716f
250 device pnp 2e.0 off # Floppy (N/A)
255 device pnp 2e.1 on # Com1
259 device pnp 2e.2 off # Com2 (N/A)
263 device pnp 2e.3 off # Parallel port (N/A)
267 device pnp 2e.4 on # EC
272 device pnp 2e.5 off # PS/2 keyboard (N/A)
277 device pnp 2e.6 off # Mouse (N/A)
280 device pnp 2e.8 off # MIDI (N/A)
284 device pnp 2e.9 off # GAME (N/A)
287 device pnp 2e.a off end # CIR (N/A)
291 device pci 2.5 off end # IDE (SiS5513)
292 device pci 2.6 off end # Modem (SiS7013)
293 device pci 2.7 off end # Audio (SiS7012)
294 device pci 3.0 on end # USB (SiS7001,USB1.1)
295 device pci 3.1 on end # USB (SiS7001,USB1.1)
296 device pci 3.3 on end # USB (SiS7002,USB2.0)
297 device pci 4.0 on end # NIC (SiS191)
298 device pci 5.0 on end # SATA (SiS1183,Native Mode)
299 device pci 6.0 on end # PCI-e x1
300 device pci 7.0 on end # PCI-e x1
301 device pci a.0 off end
302 device pci b.0 off end
303 device pci c.0 off end
304 device pci d.0 off end
305 device pci e.0 off end
306 device pci f.0 off end # HD Audio (SiS7502)
308 register "ide0_enable" = "1"
309 register "ide1_enable" = "1"
310 register "sata0_enable" = "1"
311 register "sata1_enable" = "1"
313 end # device pci 18.0
314 device pci 18.0 on end # Link 1
315 device pci 18.0 on end
316 device pci 18.1 on end
317 device pci 18.2 on end
318 device pci 18.3 on end
323 # chip drivers/generic/debug
324 # device pnp 0.0 off end # chip name
325 # device pnp 0.1 on end # pci_regs_all
326 # device pnp 0.2 off end # mem
327 # device pnp 0.3 off end # cpuid
328 # device pnp 0.4 off end # smbus_regs_all
329 # device pnp 0.5 off end # dual core msr
330 # device pnp 0.6 off end # cache size
331 # device pnp 0.7 off end # tsc
332 # device pnp 0.8 off end # io
333 # device pnp 0.9 off end # io