blob: 8825129b5545692020a46c2c29e25abc7d8c31cb [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
Martin Rothd4c24842015-12-16 16:09:11 -070033cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_config
34payload_config-file := $(PAYLOAD_CONFIG)
35payload_config-type := raw
36
37cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_revision
38payload_revision-file := $(PAYLOAD_VERSION)
39payload_revision-type := raw
40
Patrick Georgic9836712015-08-08 21:35:38 +020041SEABIOS_CC_OFFSET=$(if $(filter %ccache,$(HOSTCC)),2,1)
Martin Roth342cf7f2016-03-07 22:04:01 -070042payloads/external/SeaBIOS/seabios/out/bios.bin.elf seabios: $(top)/$(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -060043 $(MAKE) -C payloads/external/SeaBIOS \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070044 HOSTCC="$(HOSTCC)" \
Martin Roth342cf7f2016-03-07 22:04:01 -070045 CC=$(word $(SEABIOS_CC_OFFSET),$(CC_x86_32)) \
46 CFLAGS="$(patsubst $(word $(SEABIOS_CC_OFFSET),$(CC_x86_32))%,,$(wordlist $(SEABIOS_CC_OFFSET),9999,$(CC_x86_32)))" \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070047 LD=$(word 1,$(LD_x86_32)) LDFLAGS="$(patsubst $(word 1,$(LD_x86_32))%,,$(LD_x86_32))" \
48 OBJDUMP="$(OBJDUMP_x86_32)" \
49 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
50 AS="$(AS_x86_32)" IASL="$(IASL)" \
51 CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \
52 CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE) \
Antonello Dettori3aa91dc2016-03-07 23:56:57 +000053 CONFIG_SEABIOS_REVISION=$(CONFIG_SEABIOS_REVISION) \
54 CONFIG_SEABIOS_REVISION_ID=$(CONFIG_SEABIOS_REVISION_ID) \
Martin Roth99d05c72015-11-28 15:44:34 -070055 CONFIG_PAYLOAD_CONFIGFILE=$(CONFIG_PAYLOAD_CONFIGFILE) \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070056 CONFIG_SEABIOS_THREAD_OPTIONROMS=$(CONFIG_SEABIOS_THREAD_OPTIONROMS) \
57 CONFIG_SEABIOS_VGA_COREBOOT=$(CONFIG_SEABIOS_VGA_COREBOOT) \
Martin Rothf80331f2016-02-06 12:47:05 -070058 CONFIG_DRIVERS_UART_8250IO=$(CONFIG_DRIVERS_UART_8250IO) \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070059 CONFIG_CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL) \
Martin Roth6e119202015-11-28 16:32:25 -070060 CONFIG_TTYS0_BASE=$(CONFIG_TTYS0_BASE)
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070061
Patrick Georgi40134692015-11-30 20:00:33 +010062payloads/external/SeaBIOS/seabios/out/vgabios.bin: seabios
Martin Roth342cf7f2016-03-07 22:04:01 -070063payloads/external/SeaBIOS/seabios/.config: payloads/external/SeaBIOS/seabios/out/bios.bin.elf
64payloads/external/SeaBIOS/seabios/out/autoversion.h: payloads/external/SeaBIOS/seabios/out/bios.bin.elf
Patrick Georgi40134692015-11-30 20:00:33 +010065
Stefan Reinauer91250732015-07-15 10:24:18 -070066payloads/external/depthcharge/depthcharge/build/depthcharge.elf depthcharge: $(top)/$(DOTCONFIG) $(CBFSTOOL)
Martin Rothc8ed3402016-03-16 10:39:30 -060067 $(MAKE) -C payloads/external/depthcharge \
Stefan Reinauer91250732015-07-15 10:24:18 -070068 BOARD=$(call ws_to_under,$(call strip_quotes,$(call tolower,$(CONFIG_MAINBOARD_PART_NUMBER)))) \
69 MFLAGS= MAKEFLAGS=
70
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070071filo:
Martin Rothc8ed3402016-03-16 10:39:30 -060072 $(MAKE) -C payloads/external/FILO \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070073 HOSTCC="$(HOSTCC)" \
74 CC="$(CC_x86_32)" LD="$(LD_x86_32)" OBJDUMP="$(OBJDUMP_x86_32)" \
75 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
76 CONFIG_FILO_MASTER=$(CONFIG_FILO_MASTER) \
77 CONFIG_FILO_STABLE=$(CONFIG_FILO_STABLE)
78
Patrick Georgi864b48d2015-12-04 16:52:18 +010079payloads/external/FILO/filo/build/filo.elf: filo
Patrick Georgi67e11d12016-01-14 20:41:58 +010080payloads/external/FILO/filo/.config: filo
81payloads/external/FILO/filo/build/version.h: filo
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070082
83grub2:
Martin Rothc8ed3402016-03-16 10:39:30 -060084 $(MAKE) -C payloads/external/GRUB2 \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070085 HOSTCC="$(HOSTCC)" \
86 CC="$(CC_x86_32)" LD="$(LD_x86_32)" OBJDUMP="$(OBJDUMP_x86_32)" \
87 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
88 CONFIG_GRUB2_MASTER=$(CONFIG_GRUB2_MASTER)
Patrick Georgi864b48d2015-12-04 16:52:18 +010089
90payloads/external/GRUB2/grub2/build/default_payload.elf: grub2
Martin Rothdbae4d02015-12-11 12:24:33 -070091
92payloads/external/U-Boot/u-boot/u-boot-dtb.bin u-boot: $(top)/$(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -060093 $(MAKE) -C payloads/external/U-Boot \
Martin Rothdbae4d02015-12-11 12:24:33 -070094 CONFIG_UBOOT_MASTER=$(CONFIG_UBOOT_MASTER) \
95 CONFIG_UBOOT_STABLE=$(CONFIG_UBOOT_STABLE)
Martin Rothbe63a242016-02-28 15:56:27 -080096
97cbfs-files-$(CONFIG_MEMTEST_SECONDARY_PAYLOAD) += img/memtest
98img/memtest-file := payloads/external/Memtest86Plus/memtest86plus/memtest
99img/memtest-type := payload
100
101ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
102 MEMTEST_SERIAL_OPTIONS=SERIAL_CONSOLE_DEFAULT=1 \
103 SERIAL_TTY=$(CONFIG_UART_FOR_CONSOLE) \
104 SERIAL_BAUD_RATE=$(CONFIG_TTYS0_BAUD)
105endif
106
107payloads/external/Memtest86Plus/memtest86plus/memtest: $(top)/$(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -0600108 $(MAKE) -C payloads/external/Memtest86Plus all \
Martin Rothbe63a242016-02-28 15:56:27 -0800109 CC="$(CC_x86_32)" \
110 LD="$(LD_x86_32)" \
111 OBJCOPY="$(OBJCOPY_x86_32)" \
112 AS="$(AS_x86_32)" \
113 $(MEMTEST_SERIAL_OPTIONS) \
114 MFLAGS= MAKEFLAGS=
Martin Roth888a98b2016-03-13 13:00:43 -0600115
116PXE_ROM_PCI_ID:=$(subst $(comma),,$(CONFIG_PXE_ROM_ID))
117
118ifeq ($(CONFIG_PXE_ROM),y)
119PXE_ROM_FILE:=$(CONFIG_PXE_ROM_FILE)
120endif
121ifeq ($(CONFIG_BUILD_IPXE),y)
122PXE_ROM_FILE:=payloads/external/iPXE/ipxe/ipxe.rom
123endif
124
125ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
126IPXE_UART=COM$(call int-add,$(CONFIG_UART_FOR_CONSOLE) 1)
127endif
128
129cbfs-files-$(CONFIG_PXE_ROM)$(CONFIG_BUILD_IPXE) += pci$(CONFIG_PXE_ROM_ID).rom
130pci$(CONFIG_PXE_ROM_ID).rom-file := $(PXE_ROM_FILE)
131pci$(CONFIG_PXE_ROM_ID).rom-type := raw
132
133payloads/external/iPXE/ipxe/ipxe.rom ipxe: $(top)/$(DOTCONFIG)
134 $(MAKE) -C payloads/external/iPXE all \
135 CROSS_COMPILE="$(CROSS_COMPILE_$(ARCH-ramstage-y))" \
136 PXE_ROM_PCI_ID=$(PXE_ROM_PCI_ID) \
137 CONFIG_IPXE_MASTER=$(CONFIG_IPXE_MASTER) \
138 CONFIG_IPXE_STABLE=$(CONFIG_IPXE_STABLE) \
139 CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO) \
140 IPXE_UART=$(IPXE_UART) \
141 CONFIG_TTYS0_BAUD=$(CONFIG_TTYS0_BAUD) \
142 MFLAGS= MAKEFLAGS=