blob: 6bc165106acc46c791cd768e7ef669885ad26a6e [file] [log] [blame]
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -07001################################################################################
2##
3## This file is part of the coreboot project.
4##
5## Copyright (C) 2009-2010 coresystems GmbH
6## Copyright (C) 2015 Google Inc.
7##
8## This program is free software; you can redistribute it and/or modify
9## it under the terms of the GNU General Public License as published by
10## the Free Software Foundation; version 2 of the License.
11##
12## This program is distributed in the hope that it will be useful,
13## but WITHOUT ANY WARRANTY; without even the implied warranty of
14## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15## GNU General Public License for more details.
16##
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070017
Martin Roth7b928cd2015-06-19 20:50:59 -060018######################################################################
19# set up payload config and version files for later inclusion
20ifeq ($(CONFIG_PAYLOAD_SEABIOS),y)
21PAYLOAD_CONFIG=payloads/external/SeaBIOS/seabios/.config
Martin Roth886f4782015-11-28 13:23:48 -070022PAYLOAD_VERSION=payloads/external/SeaBIOS/seabios/out/autoversion.h
Martin Roth7b928cd2015-06-19 20:50:59 -060023endif
24ifeq ($(CONFIG_PAYLOAD_FILO),y)
25PAYLOAD_CONFIG=payloads/external/FILO/filo/.config
26PAYLOAD_VERSION=payloads/external/FILO/filo/build/version.h
27endif
Stefan Reinauer91250732015-07-15 10:24:18 -070028ifeq ($(CONFIG_PAYLOAD_DEPTHCHARGE),y)
29PAYLOAD_CONFIG=payloads/external/depthcharge/depthcharge/.config
30#TODO: Figure out version
31endif
Martin Roth7b928cd2015-06-19 20:50:59 -060032
Stefan Reinauer785a31d2016-04-13 13:13:02 -070033ifeq ($(CONFIG_PAYLOAD_LINUX),y)
34ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_COMMAND_LINE))),)
35 ADDITIONAL_PAYLOAD_CONFIG+=-C $(CONFIG_LINUX_COMMAND_LINE)
36endif
37ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD))),)
38 ADDITIONAL_PAYLOAD_CONFIG+=-I $(CONFIG_LINUX_INITRD)
39endif
40endif
41ifneq ($(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS))),)
42 ADDITIONAL_PAYLOAD_CONFIG+=$(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS)))
43endif
44
Werner Zehbc2d1512016-05-03 09:52:12 +020045cbfs-files-y += $(CONFIG_CBFS_PREFIX)/payload
46$(CONFIG_CBFS_PREFIX)/payload-file := $(CONFIG_PAYLOAD_FILE)
47ifeq ($(CONFIG_PAYLOAD_IS_FLAT_BINARY),y)
48$(CONFIG_CBFS_PREFIX)/payload-type := flat-binary
49else
50$(CONFIG_CBFS_PREFIX)/payload-type := payload
51endif
52$(CONFIG_CBFS_PREFIX)/payload-compression := $(CBFS_PAYLOAD_COMPRESS_FLAG)
53$(CONFIG_CBFS_PREFIX)/payload-options := $(ADDITIONAL_PAYLOAD_CONFIG)
54
Martin Rothd4c24842015-12-16 16:09:11 -070055cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_config
56payload_config-file := $(PAYLOAD_CONFIG)
57payload_config-type := raw
58
59cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_revision
60payload_revision-file := $(PAYLOAD_VERSION)
61payload_revision-type := raw
62
Denis 'GNUtoo' Carikli8fb72c92017-01-08 06:43:01 +010063cbfs-files-$(CONFIG_GRUB2_INCLUDE_RUNTIME_CONFIG_FILE) += etc/grub.cfg
64etc/grub.cfg-file := $(CONFIG_GRUB2_RUNTIME_CONFIG_FILE)
65etc/grub.cfg-type := raw
66etc/grub.cfg-required := the GRUB runtime configuration file ($(CONFIG_GRUB2_RUNTIME_CONFIG_FILE))
67
Martin Roth9369e102016-10-17 10:11:10 -060068# SeaBIOS
69
Patrick Georgic9836712015-08-08 21:35:38 +020070SEABIOS_CC_OFFSET=$(if $(filter %ccache,$(HOSTCC)),2,1)
Paul Kocialkowskifde32752016-07-24 12:25:07 +020071payloads/external/SeaBIOS/seabios/out/bios.bin.elf seabios: $(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -060072 $(MAKE) -C payloads/external/SeaBIOS \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070073 HOSTCC="$(HOSTCC)" \
Martin Roth342cf7f2016-03-07 22:04:01 -070074 CC=$(word $(SEABIOS_CC_OFFSET),$(CC_x86_32)) \
75 CFLAGS="$(patsubst $(word $(SEABIOS_CC_OFFSET),$(CC_x86_32))%,,$(wordlist $(SEABIOS_CC_OFFSET),9999,$(CC_x86_32)))" \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070076 LD=$(word 1,$(LD_x86_32)) LDFLAGS="$(patsubst $(word 1,$(LD_x86_32))%,,$(LD_x86_32))" \
77 OBJDUMP="$(OBJDUMP_x86_32)" \
78 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
79 AS="$(AS_x86_32)" IASL="$(IASL)" \
80 CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \
81 CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE) \
Antonello Dettori3aa91dc2016-03-07 23:56:57 +000082 CONFIG_SEABIOS_REVISION=$(CONFIG_SEABIOS_REVISION) \
83 CONFIG_SEABIOS_REVISION_ID=$(CONFIG_SEABIOS_REVISION_ID) \
Martin Roth99d05c72015-11-28 15:44:34 -070084 CONFIG_PAYLOAD_CONFIGFILE=$(CONFIG_PAYLOAD_CONFIGFILE) \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070085 CONFIG_SEABIOS_THREAD_OPTIONROMS=$(CONFIG_SEABIOS_THREAD_OPTIONROMS) \
86 CONFIG_SEABIOS_VGA_COREBOOT=$(CONFIG_SEABIOS_VGA_COREBOOT) \
Martin Rothf80331f2016-02-06 12:47:05 -070087 CONFIG_DRIVERS_UART_8250IO=$(CONFIG_DRIVERS_UART_8250IO) \
Ricardo Ribalda Delgado77ced402017-01-03 11:56:22 +010088 CONFIG_DRIVERS_UART_8250MEM=$(CONFIG_DRIVERS_UART_8250MEM) \
89 CONFIG_HUDSON_UART=$(CONFIG_HUDSON_UART) \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070090 CONFIG_CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL) \
Stefan Taunerc48d7912017-01-15 11:49:25 +010091 CONFIG_TTYS0_BASE=$(CONFIG_TTYS0_BASE) \
92 CONFIG_SEABIOS_DEBUG_LEVEL=$(CONFIG_SEABIOS_DEBUG_LEVEL)
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070093
Patrick Georgi40134692015-11-30 20:00:33 +010094payloads/external/SeaBIOS/seabios/out/vgabios.bin: seabios
Martin Roth342cf7f2016-03-07 22:04:01 -070095payloads/external/SeaBIOS/seabios/.config: payloads/external/SeaBIOS/seabios/out/bios.bin.elf
96payloads/external/SeaBIOS/seabios/out/autoversion.h: payloads/external/SeaBIOS/seabios/out/bios.bin.elf
Patrick Georgi40134692015-11-30 20:00:33 +010097
Martin Rothbc46ac52016-06-05 10:30:34 -060098# add a SeaBIOS bootorder file
99ifneq ($(strip $(CONFIG_SEABIOS_BOOTORDER_FILE)),)
100cbfs-files-y += bootorder
101bootorder-file := $(strip $(CONFIG_SEABIOS_BOOTORDER_FILE))
102bootorder-type := raw
103endif
104
Martin Roth9369e102016-10-17 10:11:10 -0600105# Depthcharge
106
Paul Kocialkowskifde32752016-07-24 12:25:07 +0200107payloads/external/depthcharge/depthcharge/build/depthcharge.elf depthcharge: $(DOTCONFIG) $(CBFSTOOL)
Martin Rothc8ed3402016-03-16 10:39:30 -0600108 $(MAKE) -C payloads/external/depthcharge \
Stefan Reinauer91250732015-07-15 10:24:18 -0700109 BOARD=$(call ws_to_under,$(call strip_quotes,$(call tolower,$(CONFIG_MAINBOARD_PART_NUMBER)))) \
Marshall Dawsonf9973b52016-12-22 18:16:48 -0500110 MFLAGS= MAKEFLAGS= \
111 DEPTHCHARGE_MASTER=$(CONFIG_DEPTHCHARGE_MASTER) \
112 DEPTHCHARGE_STABLE=$(CONFIG_DEPTHCHARGE_STABLE) \
113 DEPTHCHARGE_REVISION=$(CONFIG_DEPTHCHARGE_REVISION) \
Marshall Dawsonfc185072016-12-22 20:25:29 -0500114 DEPTHCHARGE_REVISION_ID=$(CONFIG_DEPTHCHARGE_REVISION_ID) \
115 OVERRIDE_DEFCONFIG=$(CONFIG_LP_DEFCONFIG_OVERRIDE)
Stefan Reinauer91250732015-07-15 10:24:18 -0700116
Martin Roth9369e102016-10-17 10:11:10 -0600117# FILO
118
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700119filo:
Martin Rothc8ed3402016-03-16 10:39:30 -0600120 $(MAKE) -C payloads/external/FILO \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700121 HOSTCC="$(HOSTCC)" \
122 CC="$(CC_x86_32)" LD="$(LD_x86_32)" OBJDUMP="$(OBJDUMP_x86_32)" \
123 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
124 CONFIG_FILO_MASTER=$(CONFIG_FILO_MASTER) \
125 CONFIG_FILO_STABLE=$(CONFIG_FILO_STABLE)
126
Patrick Georgi864b48d2015-12-04 16:52:18 +0100127payloads/external/FILO/filo/build/filo.elf: filo
Patrick Georgi67e11d12016-01-14 20:41:58 +0100128payloads/external/FILO/filo/.config: filo
129payloads/external/FILO/filo/build/version.h: filo
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700130
Martin Roth9369e102016-10-17 10:11:10 -0600131# Grub
132
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700133grub2:
Martin Rothc8ed3402016-03-16 10:39:30 -0600134 $(MAKE) -C payloads/external/GRUB2 \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700135 HOSTCC="$(HOSTCC)" \
136 CC="$(CC_x86_32)" LD="$(LD_x86_32)" OBJDUMP="$(OBJDUMP_x86_32)" \
137 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
Benjamin Barenblat99932862016-06-15 12:08:06 -0700138 CONFIG_GRUB2_MASTER=$(CONFIG_GRUB2_MASTER) \
Denis 'GNUtoo' Carikli08cf1952016-09-14 14:41:36 +0200139 CONFIG_GRUB2_REVISION=$(CONFIG_GRUB2_REVISION) \
140 CONFIG_GRUB2_REVISION_ID=$(CONFIG_GRUB2_REVISION_ID) \
Benjamin Barenblat99932862016-06-15 12:08:06 -0700141 CONFIG_GRUB2_EXTRA_MODULES=$(CONFIG_GRUB2_EXTRA_MODULES)
Patrick Georgi864b48d2015-12-04 16:52:18 +0100142
143payloads/external/GRUB2/grub2/build/default_payload.elf: grub2
Martin Rothdbae4d02015-12-11 12:24:33 -0700144
Martin Roth9369e102016-10-17 10:11:10 -0600145# U-Boot
146
Paul Kocialkowskifde32752016-07-24 12:25:07 +0200147payloads/external/U-Boot/u-boot/u-boot-dtb.bin u-boot: $(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -0600148 $(MAKE) -C payloads/external/U-Boot \
Martin Rothdbae4d02015-12-11 12:24:33 -0700149 CONFIG_UBOOT_MASTER=$(CONFIG_UBOOT_MASTER) \
150 CONFIG_UBOOT_STABLE=$(CONFIG_UBOOT_STABLE)
Martin Rothbe63a242016-02-28 15:56:27 -0800151
Martin Roth9369e102016-10-17 10:11:10 -0600152# TINT
153
Antonello Dettori4f7d3292016-05-27 23:44:47 +0200154payloads/external/tint/tint/tint.elf tint:
155 $(MAKE) -C payloads/external/tint
156
Martin Roth9369e102016-10-17 10:11:10 -0600157cbfs-files-$(CONFIG_TINT_SECONDARY_PAYLOAD) += img/tint
158img/tint-file := payloads/external/tint/tint/tint.elf
159img/tint-type := payload
160
161# Memtest86+
162
Martin Rothbe63a242016-02-28 15:56:27 -0800163cbfs-files-$(CONFIG_MEMTEST_SECONDARY_PAYLOAD) += img/memtest
164img/memtest-file := payloads/external/Memtest86Plus/memtest86plus/memtest
165img/memtest-type := payload
166
167ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
168 MEMTEST_SERIAL_OPTIONS=SERIAL_CONSOLE_DEFAULT=1 \
169 SERIAL_TTY=$(CONFIG_UART_FOR_CONSOLE) \
170 SERIAL_BAUD_RATE=$(CONFIG_TTYS0_BAUD)
171endif
172
Paul Kocialkowskifde32752016-07-24 12:25:07 +0200173payloads/external/Memtest86Plus/memtest86plus/memtest: $(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -0600174 $(MAKE) -C payloads/external/Memtest86Plus all \
Martin Rothbe63a242016-02-28 15:56:27 -0800175 CC="$(CC_x86_32)" \
176 LD="$(LD_x86_32)" \
177 OBJCOPY="$(OBJCOPY_x86_32)" \
178 AS="$(AS_x86_32)" \
Martin Roth4005d9b2016-04-26 09:51:41 -0600179 CONFIG_MEMTEST_MASTER=$(CONFIG_MEMTEST_MASTER) \
180 CONFIG_MEMTEST_STABLE=$(CONFIG_MEMTEST_STABLE) \
Martin Rothbe63a242016-02-28 15:56:27 -0800181 $(MEMTEST_SERIAL_OPTIONS) \
182 MFLAGS= MAKEFLAGS=
Martin Roth888a98b2016-03-13 13:00:43 -0600183
Martin Roth9369e102016-10-17 10:11:10 -0600184# iPXE
185
Martin Roth888a98b2016-03-13 13:00:43 -0600186PXE_ROM_PCI_ID:=$(subst $(comma),,$(CONFIG_PXE_ROM_ID))
187
188ifeq ($(CONFIG_PXE_ROM),y)
189PXE_ROM_FILE:=$(CONFIG_PXE_ROM_FILE)
190endif
191ifeq ($(CONFIG_BUILD_IPXE),y)
192PXE_ROM_FILE:=payloads/external/iPXE/ipxe/ipxe.rom
193endif
194
195ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
196IPXE_UART=COM$(call int-add,$(CONFIG_UART_FOR_CONSOLE) 1)
197endif
198
199cbfs-files-$(CONFIG_PXE_ROM)$(CONFIG_BUILD_IPXE) += pci$(CONFIG_PXE_ROM_ID).rom
200pci$(CONFIG_PXE_ROM_ID).rom-file := $(PXE_ROM_FILE)
201pci$(CONFIG_PXE_ROM_ID).rom-type := raw
202
Paul Kocialkowskifde32752016-07-24 12:25:07 +0200203payloads/external/iPXE/ipxe/ipxe.rom ipxe: $(DOTCONFIG)
Martin Roth888a98b2016-03-13 13:00:43 -0600204 $(MAKE) -C payloads/external/iPXE all \
205 CROSS_COMPILE="$(CROSS_COMPILE_$(ARCH-ramstage-y))" \
206 PXE_ROM_PCI_ID=$(PXE_ROM_PCI_ID) \
207 CONFIG_IPXE_MASTER=$(CONFIG_IPXE_MASTER) \
208 CONFIG_IPXE_STABLE=$(CONFIG_IPXE_STABLE) \
209 CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO) \
210 IPXE_UART=$(IPXE_UART) \
211 CONFIG_TTYS0_BAUD=$(CONFIG_TTYS0_BAUD) \
212 MFLAGS= MAKEFLAGS=