now all have the same parameter order. action "$(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(TOP)/src -I. -nostdinc -nostdlib -fno-builtin -Wall -Os -c -S $(MAINBOARD)/$(CACHE_AS_RAM_AUTO_C) -o $@" The idea behind this parameter order is: - *FLAGS at the beginning. - Use a common set of *FLAGS. - Include files and directories listed afterwards. - nostdinc, nostdlib, no-builtin tell the compiler this is standalone code. - Warnings. They do not influence source or compilation. - Compilation strategy (small) and output mode (asm or binary). - File to be compiled. - Output name. - $(DEBUG_CFLAGS) and -S are only used for asm output. Other changes in this patch: - src/supermicro/h8dme/Config.lb now uses $DEBUG_CFLAGS instead of hardcoding the respective flags. - $DEBUG_CFLAGS was added to asm outputting $CC calls: supermicro/h8dme/Config.lb lippert/roadrunner-lx/Config.lb - $DISTRO_CFLAGS was added to some $CC calls in: iwill/dk8_htx/Config.lb (CAR AP code) supermicro/h8dmr/Config.lb (CAR AP code) supermicro/h8dme/Config.lb (CAR AP code) gigabyte/m57sli/Config.lb (CAR AP code) gigabyte/ga_2761gxdk/Config.lb (CAR AP code) amd/serengeti_cheetah_fam10/Config.lb (everywhere) msi/ms7135/Config.lb (everywhere) nvidia/l1_2pvv/Config.lb (CAR AP code) -$CFLAGS was added to all $CC calls in: amd/db800/Config.lb amd/dbm690t/Config.lb amd/norwich/Config.lb amd/pistachio/Config.lb amd/serengeti_cheetah/Config.lb amd/serengeti_cheetah_fam10/Config.lb arima/hdama/Config.lb artecgroup/dbe61/Config.lb asus/a8n_e/Config.lb asus/a8v-e_se/Config.lb asus/m2v-mx_se/Config.lb broadcom/blast/Config.lb digitallogic/msm800sev/Config.lb gigabyte/ga_2761gxdk/Config.lb gigabyte/m57sli/Config.lb ibm/e325/Config.lb ibm/e326/Config.lb iei/pcisa-lx-800-r10/Config.lb iwill/dk8_htx/Config.lb iwill/dk8s2/Config.lb iwill/dk8x/Config.lb kontron/986lcd-m/Config.lb lippert/roadrunner-lx/Config.lb lippert/spacerunner-lx/Config.lb msi/ms7135/Config.lb msi/ms7260/Config.lb msi/ms9185/Config.lb msi/ms9282/Config.lb newisys/khepri/Config.lb nvidia/l1_2pvv/Config.lb pcengines/alix1c/Config.lb sunw/ultra40/Config.lb supermicro/h8dme/Config.lb supermicro/h8dmr/Config.lb technexion/tim8690/Config.lb tyan/s2735/Config.lb tyan/s2850/Config.lb tyan/s2875/Config.lb tyan/s2880/Config.lb tyan/s2881/Config.lb tyan/s2882/Config.lb tyan/s2885/Config.lb tyan/s2891/Config.lb tyan/s2892/Config.lb tyan/s2895/Config.lb tyan/s2912/Config.lb tyan/s2912_fam10/Config.lb tyan/s4880/Config.lb tyan/s4882/Config.lb - Use $@ wherever appropriate. - Kill that evil CACHE_AS_RAM_AUTO_C variable. - Trailing whitespace fixups on lines which were touched anyway. We now only have 6 remaining different calls to $CC whereas before there were 20. If I am allowed to rename src/mainboard/kontron/986lcd-m/auto.c to src/mainboard/kontron/986lcd-m/cache_as_ram_auto.c, we're down to 4 different calls. If we can decide on the use of $CPU_OPT, we are down to 3 different calls. One additional point I'd like to clear up: if ASSEMBLER_DEBUG makedefine DEBUG_CFLAGS := -g -dA -fverbose-asm end "-dA -fverbose-asm" is only useful for asm output. For these flags, DEBUG_CFLAGS is a total misnomer. What about calling them DEBUG_ASMCFLAGS or somesuch? "-g" should be controllable by a separate switch. It is useful even for object code. The following targets are broken by this patch because they contain implicit declarations, but the error did not trigger due to missing CFLAGS: amd/serengeti_cheetah asus/a8v-e_se asus/m2v-mx_se digitallogic/msm800sev pcengines/alix1c supermicro/h8dme supermicro/h8dmr Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Ronald G. Minnich <rminnich@gmail.com> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4097 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
268 lines
8.5 KiB
Plaintext
268 lines
8.5 KiB
Plaintext
##
|
|
## Compute the location and size of where this firmware image
|
|
## (coreboot plus bootloader) will live in the boot rom chip.
|
|
##
|
|
if USE_FALLBACK_IMAGE
|
|
default ROM_SECTION_SIZE = FALLBACK_SIZE
|
|
default ROM_SECTION_OFFSET = ( ROM_SIZE - FALLBACK_SIZE )
|
|
else
|
|
default ROM_SECTION_SIZE = ( ROM_SIZE - FALLBACK_SIZE )
|
|
default ROM_SECTION_OFFSET = 0
|
|
end
|
|
|
|
##
|
|
## Compute the start location and size size of
|
|
## The coreboot bootloader.
|
|
##
|
|
default PAYLOAD_SIZE = ( ROM_SECTION_SIZE - ROM_IMAGE_SIZE )
|
|
default CONFIG_ROM_PAYLOAD_START = (0xffffffff - ROM_SIZE + ROM_SECTION_OFFSET + 1)
|
|
|
|
##
|
|
## Compute where this copy of coreboot will start in the boot rom
|
|
##
|
|
default _ROMBASE = ( CONFIG_ROM_PAYLOAD_START + PAYLOAD_SIZE )
|
|
|
|
##
|
|
## Compute a range of ROM that can cached to speed up coreboot,
|
|
## execution speed.
|
|
##
|
|
## XIP_ROM_SIZE must be a power of 2.
|
|
## XIP_ROM_BASE must be a multiple of XIP_ROM_SIZE
|
|
##
|
|
default XIP_ROM_SIZE=65536
|
|
default XIP_ROM_BASE = ( _ROMBASE + ROM_IMAGE_SIZE - XIP_ROM_SIZE )
|
|
|
|
arch i386 end
|
|
|
|
##
|
|
## Build the objects we have code for in this directory.
|
|
##
|
|
|
|
driver mainboard.o
|
|
|
|
#dir /drivers/si/3114
|
|
object get_bus_conf.o
|
|
if HAVE_MP_TABLE object mptable.o end
|
|
if HAVE_PIRQ_TABLE object irq_tables.o end
|
|
|
|
if CONFIG_USE_INIT
|
|
|
|
makerule ./auto.o
|
|
depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
|
|
action "$(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) -I$(TOP)/src -I. -nostdinc -nostdlib -fno-builtin -Wall -Os -c $(MAINBOARD)/cache_as_ram_auto.c -o $@"
|
|
end
|
|
|
|
else
|
|
|
|
makerule ./auto.inc
|
|
depends "$(MAINBOARD)/cache_as_ram_auto.c option_table.h"
|
|
action "$(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(TOP)/src -I. -nostdinc -nostdlib -fno-builtin -Wall -Os -c -S $(MAINBOARD)/cache_as_ram_auto.c -o $@"
|
|
action "perl -e 's/\.rodata/.rom.data/g' -pi $@"
|
|
action "perl -e 's/\.text/.section .rom.text/g' -pi $@"
|
|
end
|
|
|
|
end
|
|
##
|
|
## Build our 16 bit and 32 bit coreboot entry code
|
|
##
|
|
if USE_FALLBACK_IMAGE
|
|
mainboardinit cpu/x86/16bit/entry16.inc
|
|
ldscript /cpu/x86/16bit/entry16.lds
|
|
end
|
|
|
|
mainboardinit cpu/x86/32bit/entry32.inc
|
|
|
|
if CONFIG_USE_INIT
|
|
ldscript /cpu/x86/32bit/entry32.lds
|
|
end
|
|
|
|
if CONFIG_USE_INIT
|
|
ldscript /cpu/amd/car/cache_as_ram.lds
|
|
end
|
|
|
|
##
|
|
## Build our reset vector (This is where coreboot is entered)
|
|
##
|
|
if USE_FALLBACK_IMAGE
|
|
mainboardinit cpu/x86/16bit/reset16.inc
|
|
ldscript /cpu/x86/16bit/reset16.lds
|
|
else
|
|
mainboardinit cpu/x86/32bit/reset32.inc
|
|
ldscript /cpu/x86/32bit/reset32.lds
|
|
end
|
|
|
|
##
|
|
## Include an id string (For safe flashing)
|
|
##
|
|
mainboardinit arch/i386/lib/id.inc
|
|
ldscript /arch/i386/lib/id.lds
|
|
|
|
##
|
|
## Setup Cache-As-Ram
|
|
##
|
|
mainboardinit cpu/amd/car/cache_as_ram.inc
|
|
|
|
###
|
|
### This is the early phase of coreboot startup
|
|
### Things are delicate and we test to see if we should
|
|
### failover to another image.
|
|
###
|
|
if USE_FALLBACK_IMAGE
|
|
ldscript /arch/i386/lib/failover.lds
|
|
end
|
|
|
|
###
|
|
### O.k. We aren't just an intermediary anymore!
|
|
###
|
|
|
|
##
|
|
## Setup RAM
|
|
##
|
|
if CONFIG_USE_INIT
|
|
initobject auto.o
|
|
else
|
|
mainboardinit ./auto.inc
|
|
end
|
|
|
|
##
|
|
## Include the secondary Configuration files
|
|
##
|
|
config chip.h
|
|
|
|
# sample config for tyan/s2885
|
|
chip northbridge/amd/amdk8/root_complex
|
|
device apic_cluster 0 on
|
|
chip cpu/amd/socket_940
|
|
device apic 0 on end
|
|
end
|
|
end
|
|
device pci_domain 0 on
|
|
chip northbridge/amd/amdk8
|
|
device pci 18.0 on # LDT0
|
|
chip southbridge/amd/amd8151
|
|
# the on/off keyword is mandatory
|
|
device pci 0.0 on end
|
|
device pci 1.0 on end
|
|
end
|
|
end
|
|
device pci 18.0 on end # LDT1
|
|
device pci 18.0 on # northbridge
|
|
# devices on link 2, link 2 == LDT 2
|
|
chip southbridge/amd/amd8131
|
|
# the on/off keyword is mandatory
|
|
device pci 0.0 on
|
|
chip drivers/pci/onboard
|
|
device pci 9.0 on end # broadcom 5703
|
|
end
|
|
end
|
|
device pci 0.1 on end
|
|
device pci 1.0 on end
|
|
device pci 1.1 on end
|
|
end
|
|
chip southbridge/amd/amd8111
|
|
# this "device pci 0.0" is the parent the next one
|
|
# PCI bridge
|
|
device pci 0.0 on
|
|
device pci 0.0 on end
|
|
device pci 0.1 on end
|
|
device pci 0.2 off end
|
|
device pci 1.0 off end
|
|
chip drivers/pci/onboard
|
|
device pci b.0 on end # SiI 3114
|
|
end
|
|
end
|
|
device pci 1.0 on
|
|
chip superio/winbond/w83627hf
|
|
device pnp 2e.0 on # Floppy
|
|
io 0x60 = 0x3f0
|
|
irq 0x70 = 6
|
|
drq 0x74 = 2
|
|
end
|
|
device pnp 2e.1 off # Parallel Port
|
|
io 0x60 = 0x378
|
|
irq 0x70 = 7
|
|
end
|
|
device pnp 2e.2 on # Com1
|
|
io 0x60 = 0x3f8
|
|
irq 0x70 = 4
|
|
end
|
|
device pnp 2e.3 on # Com2
|
|
io 0x60 = 0x2f8
|
|
irq 0x70 = 3
|
|
end
|
|
device pnp 2e.5 on # Keyboard
|
|
io 0x60 = 0x60
|
|
io 0x62 = 0x64
|
|
irq 0x70 = 1
|
|
irq 0x72 = 12
|
|
end
|
|
device pnp 2e.6 off # CIR
|
|
io 0x60 = 0x100
|
|
end
|
|
device pnp 2e.7 off # GAME_MIDI_GIPO1
|
|
io 0x60 = 0x220
|
|
io 0x62 = 0x300
|
|
irq 0x70 = 9
|
|
end
|
|
device pnp 2e.8 off end # GPIO2
|
|
device pnp 2e.9 off end # GPIO3
|
|
device pnp 2e.a off end # ACPI
|
|
device pnp 2e.b on # HW Monitor
|
|
io 0x60 = 0x290
|
|
irq 0x70 = 5
|
|
end
|
|
end
|
|
end
|
|
device pci 1.1 on end
|
|
device pci 1.2 on end
|
|
device pci 1.3 on
|
|
chip drivers/generic/generic #dimm 0-0-0
|
|
device i2c 50 on end
|
|
end
|
|
chip drivers/generic/generic #dimm 0-0-1
|
|
device i2c 51 on end
|
|
end
|
|
chip drivers/generic/generic #dimm 0-1-0
|
|
device i2c 52 on end
|
|
end
|
|
chip drivers/generic/generic #dimm 0-1-1
|
|
device i2c 53 on end
|
|
end
|
|
chip drivers/generic/generic #dimm 1-0-0
|
|
device i2c 54 on end
|
|
end
|
|
chip drivers/generic/generic #dimm 1-0-1
|
|
device i2c 55 on end
|
|
end
|
|
chip drivers/generic/generic #dimm 1-1-0
|
|
device i2c 56 on end
|
|
end
|
|
chip drivers/generic/generic #dimm 1-1-1
|
|
device i2c 57 on end
|
|
end
|
|
end # acpi
|
|
device pci 1.5 on end
|
|
device pci 1.6 off end
|
|
register "ide0_enable" = "1"
|
|
register "ide1_enable" = "1"
|
|
end
|
|
end # device pci 18.0
|
|
|
|
device pci 18.1 on end
|
|
device pci 18.2 on end
|
|
device pci 18.3 on end
|
|
end
|
|
|
|
end #pci_domain
|
|
|
|
# chip drivers/generic/debug
|
|
# device pnp 0.0 off end
|
|
# device pnp 0.1 off end
|
|
# device pnp 0.2 off end
|
|
# device pnp 0.3 off end
|
|
# device pnp 0.4 off end
|
|
# device pnp 0.5 on end
|
|
# end
|
|
end
|
|
|