blob: 33df6fb46eb2152375f0e6ae50bd01da4a518981 [file] [log] [blame]
Patrick Georgi8480c0b2020-05-08 22:50:46 +02001## SPDX-License-Identifier: GPL-2.0-only
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -07002
Martin Roth7b928cd2015-06-19 20:50:59 -06003# set up payload config and version files for later inclusion
Bill XIE3dda4da2022-01-01 11:56:00 +08004ifeq ($(CONFIG_PAYLOAD_BUILD_SEABIOS),y)
Martin Roth7b928cd2015-06-19 20:50:59 -06005PAYLOAD_CONFIG=payloads/external/SeaBIOS/seabios/.config
Martin Roth886f4782015-11-28 13:23:48 -07006PAYLOAD_VERSION=payloads/external/SeaBIOS/seabios/out/autoversion.h
Martin Roth7b928cd2015-06-19 20:50:59 -06007endif
8ifeq ($(CONFIG_PAYLOAD_FILO),y)
9PAYLOAD_CONFIG=payloads/external/FILO/filo/.config
10PAYLOAD_VERSION=payloads/external/FILO/filo/build/version.h
11endif
Stefan Reinauer91250732015-07-15 10:24:18 -070012ifeq ($(CONFIG_PAYLOAD_DEPTHCHARGE),y)
13PAYLOAD_CONFIG=payloads/external/depthcharge/depthcharge/.config
Nico Huber45ccab32017-10-23 14:53:52 +020014$(PAYLOAD_CONFIG): payloads/external/depthcharge/depthcharge/build/depthcharge.elf
Selma BENSAIDa3a8ff92019-11-15 13:01:32 -080015ifeq ($(call strip_quotes,$(CONFIG_MAINBOARD_DEPTHCHARGE)),)
Selma BENSAIDb458a4f2019-09-20 17:38:59 -070016 BOARD=$(call ws_to_under,$(call strip_quotes,$(call tolower,$(CONFIG_MAINBOARD_PART_NUMBER))))
Selma BENSAID6aa81fa2019-10-25 11:36:17 -070017else
18 BOARD=$(CONFIG_MAINBOARD_DEPTHCHARGE)
Selma BENSAIDb458a4f2019-09-20 17:38:59 -070019endif
Stefan Reinauer91250732015-07-15 10:24:18 -070020#TODO: Figure out version
21endif
Martin Roth7b928cd2015-06-19 20:50:59 -060022
Marcello Sylvester Bauera4266692018-11-06 12:32:14 +010023ifeq ($(CONFIG_PAYLOAD_LINUX)$(CONFIG_PAYLOAD_LINUXBOOT),y)
Stefan Reinauer785a31d2016-04-13 13:13:02 -070024ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_COMMAND_LINE))),)
25 ADDITIONAL_PAYLOAD_CONFIG+=-C $(CONFIG_LINUX_COMMAND_LINE)
26endif
27ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD))),)
Marcello Sylvester Bauer78d02562018-11-11 18:03:26 +010028ifneq ($(CONFIG_LINUXBOOT_ARM64),y)
Marcello Sylvester Bauere102c5d2018-11-21 17:45:43 +010029 ADDITIONAL_PAYLOAD_CONFIG+=-I $(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX)
Marcello Sylvester Bauer78d02562018-11-11 18:03:26 +010030 prebuilt-files += $(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD)))
31endif
Stefan Reinauer785a31d2016-04-13 13:13:02 -070032endif
33endif
34ifneq ($(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS))),)
35 ADDITIONAL_PAYLOAD_CONFIG+=$(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS)))
36endif
37
Werner Zehbc2d1512016-05-03 09:52:12 +020038cbfs-files-y += $(CONFIG_CBFS_PREFIX)/payload
39$(CONFIG_CBFS_PREFIX)/payload-file := $(CONFIG_PAYLOAD_FILE)
40ifeq ($(CONFIG_PAYLOAD_IS_FLAT_BINARY),y)
41$(CONFIG_CBFS_PREFIX)/payload-type := flat-binary
42else
Ronald G. Minnichc6d13492018-05-15 18:05:07 -070043$(CONFIG_CBFS_PREFIX)/payload-type := payload
Werner Zehbc2d1512016-05-03 09:52:12 +020044endif
45$(CONFIG_CBFS_PREFIX)/payload-compression := $(CBFS_PAYLOAD_COMPRESS_FLAG)
46$(CONFIG_CBFS_PREFIX)/payload-options := $(ADDITIONAL_PAYLOAD_CONFIG)
47
Martin Rothd4c24842015-12-16 16:09:11 -070048cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_config
49payload_config-file := $(PAYLOAD_CONFIG)
50payload_config-type := raw
51
52cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_revision
53payload_revision-file := $(PAYLOAD_VERSION)
54payload_revision-type := raw
55
Denis 'GNUtoo' Carikli8fb72c92017-01-08 06:43:01 +010056cbfs-files-$(CONFIG_GRUB2_INCLUDE_RUNTIME_CONFIG_FILE) += etc/grub.cfg
57etc/grub.cfg-file := $(CONFIG_GRUB2_RUNTIME_CONFIG_FILE)
58etc/grub.cfg-type := raw
59etc/grub.cfg-required := the GRUB runtime configuration file ($(CONFIG_GRUB2_RUNTIME_CONFIG_FILE))
60
Martin Roth9369e102016-10-17 10:11:10 -060061# SeaBIOS
62
Patrick Georgic9836712015-08-08 21:35:38 +020063SEABIOS_CC_OFFSET=$(if $(filter %ccache,$(HOSTCC)),2,1)
Bill XIE3dda4da2022-01-01 11:56:00 +080064SEABIOS_TARGET_PATH=payloads/external/SeaBIOS/seabios/out/bios.bin.elf
65$(SEABIOS_TARGET_PATH): $(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -060066 $(MAKE) -C payloads/external/SeaBIOS \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070067 HOSTCC="$(HOSTCC)" \
Martin Roth342cf7f2016-03-07 22:04:01 -070068 CC=$(word $(SEABIOS_CC_OFFSET),$(CC_x86_32)) \
69 CFLAGS="$(patsubst $(word $(SEABIOS_CC_OFFSET),$(CC_x86_32))%,,$(wordlist $(SEABIOS_CC_OFFSET),9999,$(CC_x86_32)))" \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070070 LD=$(word 1,$(LD_x86_32)) LDFLAGS="$(patsubst $(word 1,$(LD_x86_32))%,,$(LD_x86_32))" \
71 OBJDUMP="$(OBJDUMP_x86_32)" \
72 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
73 AS="$(AS_x86_32)" IASL="$(IASL)" \
74 CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \
75 CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE) \
Antonello Dettori3aa91dc2016-03-07 23:56:57 +000076 CONFIG_SEABIOS_REVISION=$(CONFIG_SEABIOS_REVISION) \
77 CONFIG_SEABIOS_REVISION_ID=$(CONFIG_SEABIOS_REVISION_ID) \
Martin Roth99d05c72015-11-28 15:44:34 -070078 CONFIG_PAYLOAD_CONFIGFILE=$(CONFIG_PAYLOAD_CONFIGFILE) \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070079 CONFIG_SEABIOS_THREAD_OPTIONROMS=$(CONFIG_SEABIOS_THREAD_OPTIONROMS) \
80 CONFIG_SEABIOS_VGA_COREBOOT=$(CONFIG_SEABIOS_VGA_COREBOOT) \
Martin Rothf80331f2016-02-06 12:47:05 -070081 CONFIG_DRIVERS_UART_8250IO=$(CONFIG_DRIVERS_UART_8250IO) \
Ricardo Ribalda Delgado77ced402017-01-03 11:56:22 +010082 CONFIG_DRIVERS_UART_8250MEM=$(CONFIG_DRIVERS_UART_8250MEM) \
83 CONFIG_HUDSON_UART=$(CONFIG_HUDSON_UART) \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070084 CONFIG_CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL) \
Stefan Taunerc48d7912017-01-15 11:49:25 +010085 CONFIG_TTYS0_BASE=$(CONFIG_TTYS0_BASE) \
Philipp Deppenwiesed8b41392017-11-29 16:58:05 +010086 CONFIG_SEABIOS_DEBUG_LEVEL=$(CONFIG_SEABIOS_DEBUG_LEVEL) \
87 CONFIG_DRIVERS_UART_8250MEM_32=$(CONFIG_DRIVERS_UART_8250MEM_32) \
88 CONFIG_ENABLE_HSUART=$(CONFIG_ENABLE_HSUART) \
Michał Żygowski6d592c62020-05-07 15:14:24 +020089 CONFIG_CONSOLE_UART_BASE_ADDRESS=$(CONFIG_CONSOLE_UART_BASE_ADDRESS) \
90 CONFIG_SEABIOS_HARDWARE_IRQ=$(CONFIG_SEABIOS_HARDWARE_IRQ)
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -070091
Bill XIE3dda4da2022-01-01 11:56:00 +080092payloads/external/SeaBIOS/seabios/out/vgabios.bin: $(SEABIOS_TARGET_PATH)
93payloads/external/SeaBIOS/seabios/.config: $(SEABIOS_TARGET_PATH)
94payloads/external/SeaBIOS/seabios/out/autoversion.h: $(SEABIOS_TARGET_PATH)
95
96cbfs-files-$(CONFIG_SEABIOS_SECONDARY_PAYLOAD) += img/seabios
97img/seabios-file := $(SEABIOS_TARGET_PATH)
98img/seabios-type := payload
99img/seabios-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
Patrick Georgi40134692015-11-30 20:00:33 +0100100
Martin Rothbc46ac52016-06-05 10:30:34 -0600101# add a SeaBIOS bootorder file
102ifneq ($(strip $(CONFIG_SEABIOS_BOOTORDER_FILE)),)
103cbfs-files-y += bootorder
104bootorder-file := $(strip $(CONFIG_SEABIOS_BOOTORDER_FILE))
105bootorder-type := raw
106endif
107
Arthur Heymans14ca7402020-10-14 16:46:02 +0200108ifneq ($(CONFIG_SEABIOS_PS2_TIMEOUT),)
109ifneq ($(CONFIG_SEABIOS_PS2_TIMEOUT),0)
Patrick Georgi2cc5bcb2021-01-13 09:15:07 +0100110$(call add_intermediate, seabios_ps2_timeout, $(CBFSTOOL))
Arthur Heymans14ca7402020-10-14 16:46:02 +0200111 @printf " SeaBIOS Wait up to $(CONFIG_SEABIOS_PS2_TIMEOUT) ms for PS/2 keyboard controller initialization\n"
Arthur Heymansc6bdabd2020-12-24 12:15:38 +0100112 $(if $(CONFIG_UPDATE_IMAGE),-$(CBFSTOOL) $< remove -n etc/ps2-keyboard-spinup 2>/dev/null)
Arthur Heymans14ca7402020-10-14 16:46:02 +0200113 $(CBFSTOOL) $< add-int -i $(CONFIG_SEABIOS_PS2_TIMEOUT) -n etc/ps2-keyboard-spinup
114endif
115endif
Arthur Heymans14ca7402020-10-14 16:46:02 +0200116
117ifeq ($(CONFIG_SEABIOS_ADD_SERCON_PORT_FILE),y)
Patrick Georgi2cc5bcb2021-01-13 09:15:07 +0100118$(call add_intermediate, seabios_sercon, $(CBFSTOOL))
Arthur Heymans14ca7402020-10-14 16:46:02 +0200119 @printf " SeaBIOS Add sercon-port file\n"
Arthur Heymansc6bdabd2020-12-24 12:15:38 +0100120 $(if $(CONFIG_UPDATE_IMAGE),-$(CBFSTOOL) $< remove -n etc/sercon-port 2>/dev/null)
Angel Pons6d4de7e2020-11-20 18:28:38 +0100121 $(CBFSTOOL) $< add-int -i $(CONFIG_SEABIOS_SERCON_PORT_ADDR) -n etc/sercon-port
Arthur Heymans14ca7402020-10-14 16:46:02 +0200122endif
123
124ifeq ($(CONFIG_SEABIOS_THREAD_OPTIONROMS),y)
Patrick Georgi2cc5bcb2021-01-13 09:15:07 +0100125$(call add_intermediate, seabios_thread_optionroms, $(CBFSTOOL))
Arthur Heymans14ca7402020-10-14 16:46:02 +0200126 @printf " SeaBIOS Thread optionroms\n"
Arthur Heymansc6bdabd2020-12-24 12:15:38 +0100127 $(if $(CONFIG_UPDATE_IMAGE),-$(CBFSTOOL) $< remove -n etc/threads 2>/dev/null)
Angel Pons6d4de7e2020-11-20 18:28:38 +0100128 $(CBFSTOOL) $< add-int -i 2 -n etc/threads
Arthur Heymans14ca7402020-10-14 16:46:02 +0200129endif
130
Bill XIE3dda4da2022-01-01 11:56:00 +0800131ifeq ($(CONFIG_PAYLOAD_SEAGRUB),y)
132ifneq ($(CONFIG_SEAGRUB_ALLOW_SEABIOS_BOOTMENU),y)
133$(call add_intermediate, seabios_bootmenu, $(CBFSTOOL))
134 @printf " SeaBIOS Disable boot menu\n"
135 $(if $(CONFIG_UPDATE_IMAGE),-$(CBFSTOOL) $< remove -n etc/show-boot-menu 2>/dev/null)
136 $(CBFSTOOL) $< add-int -i 0 -n etc/show-boot-menu
137else
138$(call add_intermediate, seabios_bootmenu, $(CBFSTOOL))
139 $(if $(CONFIG_UPDATE_IMAGE),-$(CBFSTOOL) $< remove -n etc/show-boot-menu 2>/dev/null)
140endif
141endif
142
Martin Roth9369e102016-10-17 10:11:10 -0600143# Depthcharge
144
Paul Kocialkowskifde32752016-07-24 12:25:07 +0200145payloads/external/depthcharge/depthcharge/build/depthcharge.elf depthcharge: $(DOTCONFIG) $(CBFSTOOL)
Martin Rothc8ed3402016-03-16 10:39:30 -0600146 $(MAKE) -C payloads/external/depthcharge \
Selma BENSAIDb458a4f2019-09-20 17:38:59 -0700147 BOARD=$(BOARD) \
Marshall Dawsonf9973b52016-12-22 18:16:48 -0500148 MFLAGS= MAKEFLAGS= \
149 DEPTHCHARGE_MASTER=$(CONFIG_DEPTHCHARGE_MASTER) \
150 DEPTHCHARGE_STABLE=$(CONFIG_DEPTHCHARGE_STABLE) \
151 DEPTHCHARGE_REVISION=$(CONFIG_DEPTHCHARGE_REVISION) \
Marshall Dawsonfc185072016-12-22 20:25:29 -0500152 DEPTHCHARGE_REVISION_ID=$(CONFIG_DEPTHCHARGE_REVISION_ID) \
153 OVERRIDE_DEFCONFIG=$(CONFIG_LP_DEFCONFIG_OVERRIDE)
Stefan Reinauer91250732015-07-15 10:24:18 -0700154
Sean Rhodes38c99b52022-07-13 10:11:44 +0100155# edk2
Martin Roth4769cc32016-06-02 16:42:29 -0600156
Sean Rhodes306550d2022-08-02 09:12:13 +0100157$(obj)/UEFIPAYLOAD.fd: $(DOTCONFIG)
158 $(MAKE) -C payloads/external/edk2 UefiPayloadPkg \
Martin Roth4769cc32016-06-02 16:42:29 -0600159 HOSTCC="$(HOSTCC)" \
160 CC="$(HOSTCC)" \
Sean Rhodes38c99b52022-07-13 10:11:44 +0100161 CONFIG_EDK2_REPOSITORY=$(CONFIG_EDK2_REPOSITORY) \
162 CONFIG_EDK2_TAG_OR_REV=$(CONFIG_EDK2_TAG_OR_REV) \
163 CONFIG_EDK2_UEFIPAYLOAD=$(CONFIG_EDK2_UEFIPAYLOAD) \
Sean Rhodes8da40ef2022-07-17 20:51:16 +0100164 CONFIG_EDK2_UNIVERSAL_PAYLOAD=$(CONFIG_EDK2_UNIVERSAL_PAYLOAD) \
Sean Rhodes91564fc2022-07-22 10:10:38 +0100165 CONFIG_EDK2_REPO_OFFICIAL=$(CONFIG_EDK2_REPO_OFFICIAL) \
166 CONFIG_EDK2_REPO_MRCHROMEBOX=$(CONFIG_EDK2_REPO_MRCHROMEBOX) \
167 CONFIG_EDK2_REPO_CUSTOM=$(CONFIG_EDK2_REPO_CUSTOM) \
Sean Rhodes7bbc9a52022-07-18 11:31:00 +0100168 CONFIG_EDK2_CPU_TIMER_LIB=$(CONFIG_EDK2_CPU_TIMER_LIB) \
Sean Rhodes38c99b52022-07-13 10:11:44 +0100169 CONFIG_EDK2_CUSTOM_BUILD_PARAMS=$(CONFIG_EDK2_CUSTOM_BUILD_PARAMS) \
Michał Żygowski82d814a2022-10-26 11:32:54 +0200170 CONFIG_EDK2_USE_EDK2_PLATFORMS=$(CONFIG_EDK2_USE_EDK2_PLATFORMS) \
171 CONFIG_EDK2_PLATFORMS_REPOSITORY=$(CONFIG_EDK2_PLATFORMS_REPOSITORY) \
172 CONFIG_EDK2_PLATFORMS_TAG_OR_REV=$(CONFIG_EDK2_PLATFORMS_TAG_OR_REV) \
Sean Rhodes38c99b52022-07-13 10:11:44 +0100173 CONFIG_EDK2_DEBUG=$(CONFIG_EDK2_DEBUG) \
174 CONFIG_EDK2_RELEASE=$(CONFIG_EDK2_RELEASE) \
Sean Rhodes38c99b52022-07-13 10:11:44 +0100175 CONFIG_EDK2_BOOTSPLASH_FILE=$(CONFIG_EDK2_BOOTSPLASH_FILE) \
176 CONFIG_EDK2_BOOT_MANAGER_ESCAPE=$(CONFIG_EDK2_BOOT_MANAGER_ESCAPE) \
177 CONFIG_EDK2_BOOT_TIMEOUT=$(CONFIG_EDK2_BOOT_TIMEOUT) \
178 CONFIG_EDK2_CBMEM_LOGGING=$(CONFIG_EDK2_CBMEM_LOGGING) \
179 CONFIG_EDK2_FOLLOW_BGRT_SPEC=$(CONFIG_EDK2_FOLLOW_BGRT_SPEC) \
180 CONFIG_EDK2_FULL_SCREEN_SETUP=$(CONFIG_EDK2_FULL_SCREEN_SETUP) \
181 CONFIG_EDK2_HAVE_EFI_SHELL=$(CONFIG_EDK2_HAVE_EFI_SHELL) \
182 CONFIG_EDK2_PRIORITIZE_INTERNAL=$(CONFIG_EDK2_PRIORITIZE_INTERNAL) \
183 CONFIG_EDK2_PS2_SUPPORT=$(CONFIG_EDK2_PS2_SUPPORT) \
184 CONFIG_EDK2_SERIAL_SUPPORT=$(CONFIG_EDK2_SERIAL_SUPPORT) \
185 CONFIG_EDK2_SD_MMC_TIMEOUT=$(CONFIG_EDK2_SD_MMC_TIMEOUT) \
Sean Rhodes0884f2102022-02-04 07:41:16 +0000186 CONFIG_ECAM_MMCONF_BASE_ADDRESS=$(CONFIG_ECAM_MMCONF_BASE_ADDRESS) \
Sean Rhodes5a26d812022-07-04 21:44:32 +0100187 CONFIG_ECAM_MMCONF_LENGTH=$(CONFIG_ECAM_MMCONF_LENGTH) \
Lean Sheng Tan829b2282023-05-03 15:27:21 +0200188 CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS=$(CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS) \
Sean Rhodes7bbc9a52022-07-18 11:31:00 +0100189 CONFIG_CPU_XTAL_HZ=$(CONFIG_CPU_XTAL_HZ) \
Sean Rhodes15d75aa2023-07-06 11:00:06 +0100190 CONFIG_SMMSTORE_V2=$(CONFIG_SMMSTORE_V2) \
Matt DeVilliera38e2482023-04-30 15:10:57 -0500191 CONFIG_EDK2_SECURE_BOOT_SUPPORT=$(CONFIG_EDK2_SECURE_BOOT_SUPPORT) \
Martin Roth4769cc32016-06-02 16:42:29 -0600192 GCC_CC_x86_32=$(GCC_CC_x86_32) \
193 GCC_CC_x86_64=$(GCC_CC_x86_64) \
194 GCC_CC_arm=$(GCC_CC_arm) \
195 GCC_CC_arm64=$(GCC_CC_arm64) \
196 OBJCOPY_x86_32=$(OBJCOPY_x86_32) \
197 OBJCOPY_x86_64=$(OBJCOPY_x86_64) \
198 OBJCOPY_arm=$(OBJCOPY_arm) \
199 OBJCOPY_arm64=$(OBJCOPY_arm64) \
200 MFLAGS= MAKEFLAGS=
201
Sean Rhodes27c8bf02022-07-17 19:01:29 +0100202$(obj)/ShimmedUniversalPayload.elf: $(DOTCONFIG)
203 $(MAKE) -C payloads/external/edk2 UniversalPayload \
204 HOSTCC="$(HOSTCC)" \
205 CC="$(HOSTCC)" \
206 CONFIG_EDK2_REPOSITORY=$(CONFIG_EDK2_REPOSITORY) \
207 CONFIG_EDK2_TAG_OR_REV=$(CONFIG_EDK2_TAG_OR_REV) \
208 CONFIG_EDK2_UEFIPAYLOAD=$(CONFIG_EDK2_UEFIPAYLOAD) \
Sean Rhodes8da40ef2022-07-17 20:51:16 +0100209 CONFIG_EDK2_UNIVERSAL_PAYLOAD=$(CONFIG_EDK2_UNIVERSAL_PAYLOAD) \
Sean Rhodes27c8bf02022-07-17 19:01:29 +0100210 CONFIG_EDK2_REPO_OFFICIAL=$(CONFIG_EDK2_REPO_OFFICIAL) \
211 CONFIG_EDK2_REPO_MRCHROMEBOX=$(CONFIG_EDK2_REPO_MRCHROMEBOX) \
212 CONFIG_EDK2_REPO_CUSTOM=$(CONFIG_EDK2_REPO_CUSTOM) \
Sean Rhodes7bbc9a52022-07-18 11:31:00 +0100213 CONFIG_EDK2_CPU_TIMER_LIB=$(CONFIG_EDK2_CPU_TIMER_LIB) \
Sean Rhodes27c8bf02022-07-17 19:01:29 +0100214 CONFIG_EDK2_CUSTOM_BUILD_PARAMS=$(CONFIG_EDK2_CUSTOM_BUILD_PARAMS) \
215 CONFIG_EDK2_DEBUG=$(CONFIG_EDK2_DEBUG) \
216 CONFIG_EDK2_RELEASE=$(CONFIG_EDK2_RELEASE) \
Sean Rhodes27c8bf02022-07-17 19:01:29 +0100217 CONFIG_EDK2_BOOTSPLASH_FILE=$(CONFIG_EDK2_BOOTSPLASH_FILE) \
218 CONFIG_EDK2_BOOT_MANAGER_ESCAPE=$(CONFIG_EDK2_BOOT_MANAGER_ESCAPE) \
219 CONFIG_EDK2_BOOT_TIMEOUT=$(CONFIG_EDK2_BOOT_TIMEOUT) \
220 CONFIG_EDK2_CBMEM_LOGGING=$(CONFIG_EDK2_CBMEM_LOGGING) \
221 CONFIG_EDK2_FOLLOW_BGRT_SPEC=$(CONFIG_EDK2_FOLLOW_BGRT_SPEC) \
222 CONFIG_EDK2_FULL_SCREEN_SETUP=$(CONFIG_EDK2_FULL_SCREEN_SETUP) \
223 CONFIG_EDK2_HAVE_EFI_SHELL=$(CONFIG_EDK2_HAVE_EFI_SHELL) \
224 CONFIG_EDK2_PRIORITIZE_INTERNAL=$(CONFIG_EDK2_PRIORITIZE_INTERNAL) \
225 CONFIG_EDK2_PS2_SUPPORT=$(CONFIG_EDK2_PS2_SUPPORT) \
226 CONFIG_EDK2_SERIAL_SUPPORT=$(CONFIG_EDK2_SERIAL_SUPPORT) \
227 CONFIG_EDK2_SD_MMC_TIMEOUT=$(CONFIG_EDK2_SD_MMC_TIMEOUT) \
228 CONFIG_EDK2_UNIVERSAL_PAYLOAD=$(CONFIG_EDK2_UNIVERSAL_PAYLOAD) \
229 CONFIG_ECAM_MMCONF_BASE_ADDRESS=$(CONFIG_ECAM_MMCONF_BASE_ADDRESS) \
230 CONFIG_ECAM_MMCONF_LENGTH=$(CONFIG_ECAM_MMCONF_LENGTH) \
Sean Rhodes7bbc9a52022-07-18 11:31:00 +0100231 CONFIG_CPU_XTAL_HZ=$(CONFIG_CPU_XTAL_HZ) \
Sean Rhodes15d75aa2023-07-06 11:00:06 +0100232 CONFIG_SMMSTORE_V2=$(CONFIG_SMMSTORE_V2) \
Sean Rhodes27c8bf02022-07-17 19:01:29 +0100233 GCC_CC_x86_32=$(GCC_CC_x86_32) \
234 GCC_CC_x86_64=$(GCC_CC_x86_64) \
235 GCC_CC_arm=$(GCC_CC_arm) \
236 GCC_CC_arm64=$(GCC_CC_arm64) \
237 OBJCOPY_x86_32=$(OBJCOPY_x86_32) \
238 OBJCOPY_x86_64=$(OBJCOPY_x86_64) \
239 OBJCOPY_arm=$(OBJCOPY_arm) \
240 OBJCOPY_arm64=$(OBJCOPY_arm64) \
241 MFLAGS= MAKEFLAGS=
242
Martin Roth9369e102016-10-17 10:11:10 -0600243# FILO
244
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700245filo:
Martin Rothc8ed3402016-03-16 10:39:30 -0600246 $(MAKE) -C payloads/external/FILO \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700247 HOSTCC="$(HOSTCC)" \
248 CC="$(CC_x86_32)" LD="$(LD_x86_32)" OBJDUMP="$(OBJDUMP_x86_32)" \
249 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
250 CONFIG_FILO_MASTER=$(CONFIG_FILO_MASTER) \
Paul Menzelf72568c2021-07-08 19:16:17 +0200251 CONFIG_FILO_STABLE=$(CONFIG_FILO_STABLE) \
252 CONFIG_FILO_USE_AUTOBOOT=$(CONFIG_FILO_USE_AUTOBOOT) \
253 CONFIG_FILO_AUTOBOOT_FILE=$(CONFIG_FILO_AUTOBOOT_FILE) \
254 CONFIG_FILO_AUTOBOOT_DELAY=$(CONFIG_FILO_AUTOBOOT_DELAY)
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700255
Patrick Georgi864b48d2015-12-04 16:52:18 +0100256payloads/external/FILO/filo/build/filo.elf: filo
Patrick Georgi67e11d12016-01-14 20:41:58 +0100257payloads/external/FILO/filo/.config: filo
258payloads/external/FILO/filo/build/version.h: filo
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700259
Martin Roth9369e102016-10-17 10:11:10 -0600260# Grub
261
Bill XIE3dda4da2022-01-01 11:56:00 +0800262GRUB_TARGET_PATH=payloads/external/GRUB2/grub2/build/default_payload.elf
263
264cbfs-files-$(CONFIG_GRUB2_SECONDARY_PAYLOAD) += img/grub2
265img/grub2-file := $(GRUB_TARGET_PATH)
266img/grub2-type := payload
267img/grub2-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
268
Nico Huber4ff44922017-08-14 01:58:28 +0200269grub2: $(obj)/config.h
Martin Rothc8ed3402016-03-16 10:39:30 -0600270 $(MAKE) -C payloads/external/GRUB2 \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700271 HOSTCC="$(HOSTCC)" \
Nico Hubera2ab1fd2017-08-14 01:38:24 +0200272 CC="$(CC_x86_32)" LD="$(LD_x86_32)" \
Stefan Reinauer0fa5d8f2015-06-30 17:09:17 -0700273 OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
Nico Huber4ff44922017-08-14 01:58:28 +0200274 CONFIG_DEP="$(abspath $(obj)/config.h)" \
Jonathan Neuschäfer2eb95f32017-11-20 01:56:41 +0100275 CONFIG_GRUB2_STABLE=$(CONFIG_GRUB2_STABLE) \
Benjamin Barenblat99932862016-06-15 12:08:06 -0700276 CONFIG_GRUB2_MASTER=$(CONFIG_GRUB2_MASTER) \
Denis 'GNUtoo' Carikli08cf1952016-09-14 14:41:36 +0200277 CONFIG_GRUB2_REVISION=$(CONFIG_GRUB2_REVISION) \
278 CONFIG_GRUB2_REVISION_ID=$(CONFIG_GRUB2_REVISION_ID) \
Benjamin Barenblat99932862016-06-15 12:08:06 -0700279 CONFIG_GRUB2_EXTRA_MODULES=$(CONFIG_GRUB2_EXTRA_MODULES)
Patrick Georgi864b48d2015-12-04 16:52:18 +0100280
Bill XIE3dda4da2022-01-01 11:56:00 +0800281$(GRUB_TARGET_PATH): grub2
Martin Rothdbae4d02015-12-11 12:24:33 -0700282
Martin Roth9369e102016-10-17 10:11:10 -0600283# U-Boot
284
Bill XIEd85cee82021-12-11 17:37:57 +0800285payloads/external/U-Boot/build/u-boot.bin u-boot: $(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -0600286 $(MAKE) -C payloads/external/U-Boot \
Bill XIEd85cee82021-12-11 17:37:57 +0800287 STABLE_COMMIT_ID=$(CONFIG_UBOOT_STABLE_COMMIT_ID) \
Martin Rothdbae4d02015-12-11 12:24:33 -0700288 CONFIG_UBOOT_MASTER=$(CONFIG_UBOOT_MASTER) \
289 CONFIG_UBOOT_STABLE=$(CONFIG_UBOOT_STABLE)
Martin Rothbe63a242016-02-28 15:56:27 -0800290
Martin Roth9369e102016-10-17 10:11:10 -0600291# TINT
292
Antonello Dettori4f7d3292016-05-27 23:44:47 +0200293payloads/external/tint/tint/tint.elf tint:
294 $(MAKE) -C payloads/external/tint
295
Martin Roth9369e102016-10-17 10:11:10 -0600296cbfs-files-$(CONFIG_TINT_SECONDARY_PAYLOAD) += img/tint
297img/tint-file := payloads/external/tint/tint/tint.elf
Ronald G. Minnichc6d13492018-05-15 18:05:07 -0700298img/tint-type := payload
Arthur Heymans47dd96d2018-02-07 13:01:43 +0100299img/tint-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
Martin Roth9369e102016-10-17 10:11:10 -0600300
301# Memtest86+
302
Martin Rothbe63a242016-02-28 15:56:27 -0800303cbfs-files-$(CONFIG_MEMTEST_SECONDARY_PAYLOAD) += img/memtest
304img/memtest-file := payloads/external/Memtest86Plus/memtest86plus/memtest
Ronald G. Minnichc6d13492018-05-15 18:05:07 -0700305img/memtest-type := payload
Arthur Heymans47dd96d2018-02-07 13:01:43 +0100306img/memtest-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
Martin Rothbe63a242016-02-28 15:56:27 -0800307
308ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
309 MEMTEST_SERIAL_OPTIONS=SERIAL_CONSOLE_DEFAULT=1 \
310 SERIAL_TTY=$(CONFIG_UART_FOR_CONSOLE) \
311 SERIAL_BAUD_RATE=$(CONFIG_TTYS0_BAUD)
312endif
313
Paul Kocialkowskifde32752016-07-24 12:25:07 +0200314payloads/external/Memtest86Plus/memtest86plus/memtest: $(DOTCONFIG)
Martin Rothc8ed3402016-03-16 10:39:30 -0600315 $(MAKE) -C payloads/external/Memtest86Plus all \
Martin Rothbe63a242016-02-28 15:56:27 -0800316 CC="$(CC_x86_32)" \
317 LD="$(LD_x86_32)" \
318 OBJCOPY="$(OBJCOPY_x86_32)" \
319 AS="$(AS_x86_32)" \
Stefan Taunera07366c2018-08-19 17:48:53 +0200320 CONFIG_MEMTEST_REVISION=$(CONFIG_MEMTEST_REVISION) \
321 CONFIG_MEMTEST_REVISION_ID=$(CONFIG_MEMTEST_REVISION_ID) \
Nicholas Chin981ef522023-06-25 09:54:00 -0600322 CONFIG_MEMTEST_MAIN=$(CONFIG_MEMTEST_MAIN) \
Martin Roth4005d9b2016-04-26 09:51:41 -0600323 CONFIG_MEMTEST_STABLE=$(CONFIG_MEMTEST_STABLE) \
Martin Rothbe63a242016-02-28 15:56:27 -0800324 $(MEMTEST_SERIAL_OPTIONS) \
325 MFLAGS= MAKEFLAGS=
Martin Roth888a98b2016-03-13 13:00:43 -0600326
Martin Roth9369e102016-10-17 10:11:10 -0600327# iPXE
328
Martin Roth888a98b2016-03-13 13:00:43 -0600329PXE_ROM_PCI_ID:=$(subst $(comma),,$(CONFIG_PXE_ROM_ID))
330
331ifeq ($(CONFIG_PXE_ROM),y)
332PXE_ROM_FILE:=$(CONFIG_PXE_ROM_FILE)
333endif
334ifeq ($(CONFIG_BUILD_IPXE),y)
335PXE_ROM_FILE:=payloads/external/iPXE/ipxe/ipxe.rom
336endif
Patrick Rudolph23cb12b2017-07-25 19:36:25 +0200337ifeq ($(CONFIG_PXE_ADD_SCRIPT),y)
338PXE_CONFIG_SCRIPT:=$(abspath $(patsubst "%",%,$(CONFIG_PXE_SCRIPT)))
339endif
Martin Roth888a98b2016-03-13 13:00:43 -0600340ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
341IPXE_UART=COM$(call int-add,$(CONFIG_UART_FOR_CONSOLE) 1)
342endif
343
Michał Żygowski9839eff2018-06-26 13:12:49 +0200344ifeq ($(CONFIG_PXE_SERIAL_CONSOLE),y)
345IPXE_SERIAL_CONSOLE = $(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO)
346else
347IPXE_SERIAL_CONSOLE = n
348endif
349
Martin Roth888a98b2016-03-13 13:00:43 -0600350cbfs-files-$(CONFIG_PXE_ROM)$(CONFIG_BUILD_IPXE) += pci$(CONFIG_PXE_ROM_ID).rom
351pci$(CONFIG_PXE_ROM_ID).rom-file := $(PXE_ROM_FILE)
352pci$(CONFIG_PXE_ROM_ID).rom-type := raw
353
Patrick Rudolph23cb12b2017-07-25 19:36:25 +0200354payloads/external/iPXE/ipxe/ipxe.rom ipxe: $(DOTCONFIG) $(PXE_CONFIG_SCRIPT)
Martin Roth888a98b2016-03-13 13:00:43 -0600355 $(MAKE) -C payloads/external/iPXE all \
356 CROSS_COMPILE="$(CROSS_COMPILE_$(ARCH-ramstage-y))" \
357 PXE_ROM_PCI_ID=$(PXE_ROM_PCI_ID) \
358 CONFIG_IPXE_MASTER=$(CONFIG_IPXE_MASTER) \
359 CONFIG_IPXE_STABLE=$(CONFIG_IPXE_STABLE) \
Michał Żygowski9839eff2018-06-26 13:12:49 +0200360 CONSOLE_SERIAL=$(IPXE_SERIAL_CONSOLE) \
Martin Roth888a98b2016-03-13 13:00:43 -0600361 IPXE_UART=$(IPXE_UART) \
362 CONFIG_TTYS0_BAUD=$(CONFIG_TTYS0_BAUD) \
Patrick Rudolph23cb12b2017-07-25 19:36:25 +0200363 CONFIG_SCRIPT=$(PXE_CONFIG_SCRIPT) \
364 CONFIG_HAS_SCRIPT=$(CONFIG_PXE_ADD_SCRIPT) \
Angel Ponsfa276862020-05-28 23:40:24 +0200365 CONFIG_PXE_NO_PROMPT=$(CONFIG_PXE_NO_PROMPT) \
Felix Singerc7f47362019-01-25 03:44:20 +0100366 CONFIG_PXE_HAS_HTTPS=$(CONFIG_PXE_HAS_HTTPS) \
Martin Roth888a98b2016-03-13 13:00:43 -0600367 MFLAGS= MAKEFLAGS=
Philipp Deppenwiese0f0e4e62018-06-19 20:22:32 +0200368
369# LinuxBoot
Arthur Heymans6f1b7d72023-04-12 11:03:56 +0200370.PHONY: linuxboot
Philipp Deppenwiese0f0e4e62018-06-19 20:22:32 +0200371linuxboot:
372 $(MAKE) -C payloads/external/LinuxBoot \
Philipp Deppenwiese0f0e4e62018-06-19 20:22:32 +0200373 CPUS=$(CPUS) \
Marcello Sylvester Bauer79f92912018-12-05 08:45:26 +0100374 CONFIG_LINUXBOOT_X86_64=$(CONFIG_LINUXBOOT_X86_64) \
375 CONFIG_LINUXBOOT_X86=$(CONFIG_LINUXBOOT_X86) \
376 CONFIG_LINUXBOOT_ARM64=$(CONFIG_LINUXBOOT_ARM64) \
Marcello Sylvester Bauer78d02562018-11-11 18:03:26 +0100377 CONFIG_LINUXBOOT_KERNEL=$(CONFIG_PAYLOAD_FILE) \
378 CONFIG_LINUXBOOT_INITRAMFS=$(CONFIG_LINUX_INITRD) \
Marcello Sylvester Bauere102c5d2018-11-21 17:45:43 +0100379 CONFIG_LINUXBOOT_INITRAMFS_SUFFIX=$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX) \
Marcello Sylvester Bauer78d02562018-11-11 18:03:26 +0100380 CONFIG_LINUXBOOT_COMPILE_KERNEL=$(CONFIG_LINUXBOOT_COMPILE_KERNEL) \
381 CONFIG_LINUXBOOT_BUILD_INITRAMFS=$(CONFIG_LINUXBOOT_BUILD_INITRAMFS) \
Marcello Sylvester Bauer79f92912018-12-05 08:45:26 +0100382 CONFIG_LINUXBOOT_KERNEL_MAINLINE=$(CONFIG_LINUXBOOT_KERNEL_MAINLINE) \
383 CONFIG_LINUXBOOT_KERNEL_STABLE=$(CONFIG_LINUXBOOT_KERNEL_STABLE) \
384 CONFIG_LINUXBOOT_KERNEL_LONGTERM=$(CONFIG_LINUXBOOT_KERNEL_LONGTERM) \
385 CONFIG_LINUXBOOT_KERNEL_CUSTOM=$(CONFIG_LINUXBOOT_KERNEL_CUSTOM) \
386 CONFIG_LINUXBOOT_KERNEL_CUSTOM_VERSION=$(CONFIG_LINUXBOOT_KERNEL_CUSTOM_VERSION) \
387 CONFIG_LINUXBOOT_KERNEL_CUSTOM_CONFIG=$(CONFIG_LINUXBOOT_KERNEL_CUSTOM_CONFIG) \
388 CONFIG_LINUXBOOT_KERNEL_BZIMAGE=$(CONFIG_LINUXBOOT_KERNEL_BZIMAGE) \
389 CONFIG_LINUXBOOT_KERNEL_UIMAGE=$(CONFIG_LINUXBOOT_KERNEL_UIMAGE) \
Philipp Deppenwiese0f0e4e62018-06-19 20:22:32 +0200390 CONFIG_LINUXBOOT_KERNEL_CONFIGFILE=$(CONFIG_LINUXBOOT_KERNEL_CONFIGFILE) \
Marcello Sylvester Bauere102c5d2018-11-21 17:45:43 +0100391 CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ=$(CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ) \
Marcello Sylvester Bauer78d02562018-11-11 18:03:26 +0100392 CONFIG_LINUXBOOT_UROOT=$(CONFIG_LINUXBOOT_UROOT) \
Philipp Deppenwiese0f0e4e62018-06-19 20:22:32 +0200393 CONFIG_LINUXBOOT_UROOT_VERSION=$(CONFIG_LINUXBOOT_UROOT_VERSION) \
Marcello Sylvester Bauere102c5d2018-11-21 17:45:43 +0100394 CONFIG_LINUXBOOT_UROOT_FORMAT=$(CONFIG_LINUXBOOT_UROOT_FORMAT) \
395 CONFIG_LINUXBOOT_UROOT_INITCMD=$(CONFIG_LINUXBOOT_UROOT_INITCMD) \
Patrik Tesarik868282e2020-04-11 16:17:35 +0200396 CONFIG_LINUXBOOT_UROOT_UINITCMD=$(CONFIG_LINUXBOOT_UROOT_UINITCMD)\
Marcello Sylvester Bauere102c5d2018-11-21 17:45:43 +0100397 CONFIG_LINUXBOOT_UROOT_SHELL=$(CONFIG_LINUXBOOT_UROOT_SHELL) \
David Hendricksfb03dd62018-08-08 19:16:55 -0700398 CONFIG_LINUXBOOT_UROOT_COMMANDS=$(CONFIG_LINUXBOOT_UROOT_COMMANDS) \
Patrick Rudolph02c08142018-03-13 11:22:26 +0100399 CONFIG_LINUXBOOT_UROOT_FILES=$(CONFIG_LINUXBOOT_UROOT_FILES) \
Marcello Sylvester Bauer78d02562018-11-11 18:03:26 +0100400 CONFIG_LINUXBOOT_DTB_FILE=$(CONFIG_LINUXBOOT_DTB_FILE)
Patrick Rudolph02c08142018-03-13 11:22:26 +0100401
Marcello Sylvester Bauer78d02562018-11-11 18:03:26 +0100402payloads/external/LinuxBoot/linuxboot/bzImage: linuxboot
403payloads/external/LinuxBoot/linuxboot/uImage: linuxboot
Marcello Sylvester Bauere102c5d2018-11-21 17:45:43 +0100404payloads/external/LinuxBoot/linuxboot/initramfs_u-root.cpio: linuxboot
Philipp Deppenwiese0f0e4e62018-06-19 20:22:32 +0200405
Zoltan Baldasztibe589232020-09-17 19:45:21 +0200406# BOOTBOOT
407
408payloads/external/BOOTBOOT/bootboot/dist/bootbootcb.elf:
409 $(MAKE) -C payloads/external/BOOTBOOT all
Sergii Dmytruka816c292021-10-27 00:23:14 +0300410
411# skiboot
412
413payloads/external/skiboot/build/skiboot.elf:
414 $(MAKE) -C payloads/external/skiboot all \
415 CONFIG_SKIBOOT_GIT_REPO=$(CONFIG_SKIBOOT_GIT_REPO) \
416 CONFIG_SKIBOOT_REVISION=$(CONFIG_SKIBOOT_REVISION)
Nicholas Chin8d885572021-08-28 09:40:41 -0600417# COREDOOM
418
419payloads/external/coreDOOM/coredoom/doomgeneric/coredoom.elf coredoom:
420 $(MAKE) -C payloads/external/coreDOOM
421
422cbfs-files-$(CONFIG_COREDOOM_SECONDARY_PAYLOAD) += img/coreDOOM
423img/coreDOOM-file := payloads/external/coreDOOM/coredoom/doomgeneric/coredoom.elf
424img/coreDOOM-type := payload
425img/coreDOOM-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
426# WAD file
427ifneq ($(strip $(CONFIG_COREDOOM_WAD_FILE)),)
428cbfs-files-y += doom.wad
429doom.wad-file := $(strip $(CONFIG_COREDOOM_WAD_FILE))
430doom.wad-type := raw
431doom.wad-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
432endif