blob: 257bff53946d04ad55fabfa8e01811d4ee4d56e5 [file] [log] [blame]
Stefan Reinauer8e073822012-04-04 00:07:22 +02001##
2## This file is part of the coreboot project.
3##
4## Copyright (C) 2010 Google Inc.
5##
6## This program is free software; you can redistribute it and/or modify
7## it under the terms of the GNU General Public License as published by
8## the Free Software Foundation; version 2 of the License.
9##
10## This program is distributed in the hope that it will be useful,
11## but WITHOUT ANY WARRANTY; without even the implied warranty of
12## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13## GNU General Public License for more details.
14##
15## You should have received a copy of the GNU General Public License
16## along with this program; if not, write to the Free Software
Paul Menzela46a7122013-02-23 18:37:27 +010017## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Stefan Reinauer8e073822012-04-04 00:07:22 +020018##
19
Stefan Reinauer5b635792012-08-16 14:05:42 -070020# Run an intermediate step when producing coreboot.rom
21# that adds additional components to the final firmware
22# image outside of CBFS
23INTERMEDIATE+=bd82x6x_add_me
24
Patrick Georgi23f38cd2012-11-16 14:50:32 +010025ramstage-y += pch.c
26ramstage-y += azalia.c
27ramstage-y += lpc.c
28ramstage-y += pci.c
29ramstage-y += pcie.c
30ramstage-y += sata.c
31ramstage-y += usb_ehci.c
Duncan Laurie645b3762013-02-12 14:00:47 -080032ramstage-y += usb_xhci.c
Patrick Georgi23f38cd2012-11-16 14:50:32 +010033ramstage-y += me.c
34ramstage-y += me_8.x.c
35ramstage-y += smbus.c
Stefan Reinauer8e073822012-04-04 00:07:22 +020036
37ramstage-y += me_status.c
38ramstage-y += reset.c
39ramstage-y += watchdog.c
40
Duncan Laurie800e9502012-06-23 17:06:47 -070041ramstage-$(CONFIG_ELOG) += elog.c
Stefan Reinauer1c56d9b2012-05-10 11:27:32 -070042ramstage-y += spi.c
Duncan Laurie181bbdd2012-06-23 16:53:57 -070043smm-$(CONFIG_SPI_FLASH_SMM) += spi.c
Stefan Reinauer1c56d9b2012-05-10 11:27:32 -070044
Stefan Reinauer8e073822012-04-04 00:07:22 +020045ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c
Marc Jones783f2262013-02-11 14:36:35 -070046smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c me.c me_8.x.c finalize.c pch.c
Stefan Reinauer8e073822012-04-04 00:07:22 +020047
48romstage-y += early_usb.c early_smbus.c early_me.c me_status.c gpio.c
49romstage-$(CONFIG_USBDEBUG) += usb_debug.c
Sven Schnelle41419932012-07-28 08:52:44 +020050ramstage-$(CONFIG_USBDEBUG) += usb_debug.c
51smm-$(CONFIG_USBDEBUG) += usb_debug.c
Stefan Reinauer8e073822012-04-04 00:07:22 +020052romstage-y += reset.c
Duncan Lauried4bc0672012-10-11 13:04:14 -070053romstage-y += early_spi.c
Stefan Reinauer8e073822012-04-04 00:07:22 +020054
Nico Hubera15cd662013-06-19 16:16:05 +020055ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)
56IFD_BIN_PATH := $(objgenerated)/ifdfake.bin
57IFD_SECTIONS := $(addprefix -b ,$(CONFIG_IFD_BIOS_SECTION:"%"=%)) \
58 $(addprefix -m ,$(CONFIG_IFD_ME_SECTION:"%"=%)) \
59 $(addprefix -g ,$(CONFIG_IFD_GBE_SECTION:"%"=%)) \
60 $(addprefix -p ,$(CONFIG_IFD_PLATFORM_SECTION:"%"=%))
61else
62IFD_BIN_PATH := $(CONFIG_IFD_BIN_PATH)
63endif
64
65bd82x6x_add_me: $(obj)/coreboot.pre $(IFDTOOL) $(IFDFAKE)
66ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)
67 printf "\n** WARNING **\n"
68 printf "Coreboot will be built with a fake Intel Firmware Descriptor (IFD).\n"
69 printf "Never write a complete coreboot.rom with a fake IFD to your board's\n"
70 printf "flash ROM! Make sure that you only write valid flash regions.\n\n"
71 printf " IFDFAKE Building a fake Intel Firmware Descriptor\n"
72 $(IFDFAKE) $(IFD_SECTIONS) $(IFD_BIN_PATH)
73endif
Stefan Reinauer5b635792012-08-16 14:05:42 -070074 printf " DD Adding Intel Firmware Descriptor\n"
Nico Hubera15cd662013-06-19 16:16:05 +020075 dd if=$(IFD_BIN_PATH) \
Stefan Reinauer5b635792012-08-16 14:05:42 -070076 of=$(obj)/coreboot.pre conv=notrunc >/dev/null 2>&1
77 printf " IFDTOOL me.bin -> coreboot.pre\n"
78 $(objutil)/ifdtool/ifdtool \
Patrick Georgi3cc151e2013-06-13 15:07:02 +020079 -i ME:$(CONFIG_ME_BIN_PATH) \
Stefan Reinauer5b635792012-08-16 14:05:42 -070080 $(obj)/coreboot.pre
81 mv $(obj)/coreboot.pre.new $(obj)/coreboot.pre
Nico Huberea6d6e8c2013-05-14 15:14:08 +020082ifeq ($(CONFIG_HAVE_GBE_BIN),y)
83 printf " IFDTOOL gbe.bin -> coreboot.pre\n"
84 $(objutil)/ifdtool/ifdtool \
85 -i GbE:$(CONFIG_GBE_BIN_PATH) \
86 $(obj)/coreboot.pre
87 mv $(obj)/coreboot.pre.new $(obj)/coreboot.pre
88endif
Stefan Reinauer7004b7c2012-10-31 17:30:13 -070089ifeq ($(CONFIG_LOCK_MANAGEMENT_ENGINE),y)
90 printf " IFDTOOL Locking Management Engine\n"
91 $(objutil)/ifdtool/ifdtool -l $(obj)/coreboot.pre
92 mv $(obj)/coreboot.pre.new $(obj)/coreboot.pre
Nico Hubera15cd662013-06-19 16:16:05 +020093else ifneq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)
Stefan Reinauer7004b7c2012-10-31 17:30:13 -070094 printf " IFDTOOL Unlocking Management Engine\n"
95 $(objutil)/ifdtool/ifdtool -u $(obj)/coreboot.pre
96 mv $(obj)/coreboot.pre.new $(obj)/coreboot.pre
97endif
Stefan Reinauer5b635792012-08-16 14:05:42 -070098
99PHONY += bd82x6x_add_me