blob: dc11310829de420b8c9ee92a4d302e094d0a411b [file] [log] [blame]
Martin Roth969b7002024-02-16 10:29:01 -07001## SPDX-License-Identifier: GPL-2.0-only
2
Martin Roth21c06502016-02-04 19:52:27 -07003menu "Payload"
4
Martin Roth21c06502016-02-04 19:52:27 -07005config PAYLOAD_NONE
Martin Rothffc79fb2022-10-20 13:54:54 -06006 bool "Don't add a payload"
7 default y if !ARCH_X86
Martin Roth21c06502016-02-04 19:52:27 -07008 help
9 Select this option if you want to create an "empty" coreboot
10 ROM image for a certain mainboard, i.e. a coreboot ROM image
11 which does not yet contain a payload.
12
13 For such an image to be useful, you have to use 'cbfstool'
14 to add a payload to the ROM image later.
15
Martin Rothffc79fb2022-10-20 13:54:54 -060016if !PAYLOAD_NONE
17choice
18 prompt "Payload to add"
19 default PAYLOAD_SEABIOS if ARCH_X86
20
Martin Roth21c06502016-02-04 19:52:27 -070021config PAYLOAD_ELF
22 bool "An ELF executable payload"
23 help
24 Select this option if you have a payload image (an ELF file)
25 which coreboot should run as soon as the basic hardware
26 initialization is completed.
27
28 You will be able to specify the location and file name of the
29 payload image later.
30
Paul Menzel209a1bf2018-07-09 10:42:41 +020031config PAYLOAD_FIT
32 bool "A FIT payload"
Sam Lewiscb2879872020-08-09 15:33:00 +100033 depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
Paul Menzel209a1bf2018-07-09 10:42:41 +020034 select PAYLOAD_FIT_SUPPORT
35 help
36 Select this option if you have a payload image (a FIT file) which
37 coreboot should run as soon as the basic hardware initialization
38 is completed.
39
40 You will be able to specify the location and file name of the
41 payload image later.
42
Martin Roth21c06502016-02-04 19:52:27 -070043source "payloads/external/*/Kconfig.name"
44
45endchoice
46
47source "payloads/external/*/Kconfig"
48
49config PAYLOAD_FILE
50 string "Payload path and filename"
Patrick Rudolpha892cde2018-04-19 14:39:07 +020051 depends on PAYLOAD_ELF || PAYLOAD_FIT
52 default "payload.elf" if PAYLOAD_ELF
53 default "uImage" if PAYLOAD_FIT
Martin Roth21c06502016-02-04 19:52:27 -070054 help
55 The path and filename of the ELF executable file to use as payload.
56
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020057choice
58 prompt "Payload compression algorithm"
Arthur Heymans30a6b742018-01-20 12:21:03 +010059 default COMPRESSED_PAYLOAD_LZMA
Ronald G. Minnichf5529d92020-02-21 22:14:01 +000060 default COMPRESSED_PAYLOAD_NONE if PAYLOAD_LINUX || PAYLOAD_LINUXBOOT || PAYLOAD_FIT
Martin Rothffc79fb2022-10-20 13:54:54 -060061 depends on !PAYLOAD_LINUX && !PAYLOAD_LINUXBOOT && !PAYLOAD_FIT
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020062 help
63 Choose the compression algorithm for the chosen payloads.
Ronald G. Minnichf5529d92020-02-21 22:14:01 +000064 You can choose between None, LZMA, or LZ4.
65
66config COMPRESSED_PAYLOAD_NONE
67 bool "Use no compression for payloads"
68 help
69 Do not compress the payload.
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020070
Martin Roth21c06502016-02-04 19:52:27 -070071config COMPRESSED_PAYLOAD_LZMA
72 bool "Use LZMA compression for payloads"
Martin Roth21c06502016-02-04 19:52:27 -070073 help
74 In order to reduce the size payloads take up in the ROM chip
75 coreboot can compress them using the LZMA algorithm.
76
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020077config COMPRESSED_PAYLOAD_LZ4
78 bool "Use LZ4 compression for payloads"
79 help
80 In order to reduce the size payloads take up in the ROM chip
81 coreboot can compress them using the LZ4 algorithm.
82endchoice
83
Martin Rothdbae4d02015-12-11 12:24:33 -070084config PAYLOAD_OPTIONS
Maximilian Brune0825d902024-01-14 19:08:06 +060085 string "Additional cbfstool options"
Martin Rothdbae4d02015-12-11 12:24:33 -070086 default ""
87 help
88 Additional cbfstool options for the payload
89
90config PAYLOAD_IS_FLAT_BINARY
Maximilian Brune0825d902024-01-14 19:08:06 +060091 bool "Payload is a flat binary"
92 default n
Martin Rothdbae4d02015-12-11 12:24:33 -070093 help
94 Add the payload to cbfs as a flat binary type instead of as an
95 elf payload
96
Patrick Rudolpha892cde2018-04-19 14:39:07 +020097config PAYLOAD_FIT_SUPPORT
98 bool "FIT support"
99 default n
Jonathan Neuschäfer3a4511e2018-12-12 01:08:24 +0100100 default y if PAYLOAD_LINUX && (ARCH_ARM || ARCH_ARM64 || ARCH_RISCV)
Sam Lewiscb2879872020-08-09 15:33:00 +1000101 depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
Patrick Rudolpha892cde2018-04-19 14:39:07 +0200102 select FLATTENED_DEVICE_TREE
103 help
104 Select this option if your payload is of type FIT.
105 Enables FIT parser and devicetree patching. The FIT is non
Paul Menzelab6583e2018-07-02 08:37:09 +0200106 self-extracting and needs to have a compatible compression format.
Patrick Rudolpha892cde2018-04-19 14:39:07 +0200107
Arthur Heymans47dd96d2018-02-07 13:01:43 +0100108config COMPRESS_SECONDARY_PAYLOAD
109 bool "Use LZMA compression for secondary payloads"
110 default y
111 help
112 In order to reduce the size secondary payloads take up in the
113 ROM chip they can be compressed using the LZMA algorithm.
114
Martin Roth5ad9aca2016-03-07 19:21:45 -0700115menu "Secondary Payloads"
116
Martin Roth4351ace2016-02-16 19:40:47 -0700117config COREINFO_SECONDARY_PAYLOAD
118 bool "Load coreinfo as a secondary payload"
119 default n
120 depends on ARCH_X86
121 help
122 coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
123 or any other payload that can load additional payloads.
Martin Roth21c06502016-02-04 19:52:27 -0700124
Bill XIE3dda4da2022-01-01 11:56:00 +0800125config GRUB2_SECONDARY_PAYLOAD
126 bool "Load GRUB2 as a secondary payload"
127 default n
128 depends on !PAYLOAD_GRUB2
129 select PAYLOAD_BUILD_GRUB2
130 help
131 GRUB2 can be loaded as a secondary payload under SeaBIOS or any
132 other payload that can load additional payloads.
133
Martin Rothbe63a242016-02-28 15:56:27 -0800134config MEMTEST_SECONDARY_PAYLOAD
135 bool "Load Memtest86+ as a secondary payload"
136 default n
Martin Roth5ad9aca2016-03-07 19:21:45 -0700137 depends on ARCH_X86
Martin Rothbe63a242016-02-28 15:56:27 -0800138 help
139 Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
140 or any other payload that can load additional payloads.
141
Iru Cai736aa742016-04-15 15:48:14 +0800142config NVRAMCUI_SECONDARY_PAYLOAD
143 bool "Load nvramcui as a secondary payload"
144 default n
Matt DeVillier6670f442020-04-05 22:28:15 -0500145 depends on ARCH_X86 && HAVE_OPTION_TABLE
Iru Cai736aa742016-04-15 15:48:14 +0800146 help
147 nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
148 or any other payload that can load additional payloads.
149
Bill XIE3dda4da2022-01-01 11:56:00 +0800150config SEABIOS_SECONDARY_PAYLOAD
151 bool "Load SeaBIOS as a secondary payload"
152 default n
153 depends on ARCH_X86
154 depends on !PAYLOAD_SEABIOS
155 depends on !PAYLOAD_SEAGRUB
156 select PAYLOAD_BUILD_SEABIOS
157 help
158 SeaBIOS can be loaded as a secondary payload under GRUB or any
159 other payload that can load additional payloads.
160
Antonello Dettori4f7d3292016-05-27 23:44:47 +0200161config TINT_SECONDARY_PAYLOAD
162 bool "Load tint as a secondary payload"
163 default n
164 depends on ARCH_X86
165 help
166 tint can be loaded as a secondary payload under SeaBIOS, GRUB,
167 or any other payload that can load additional payloads.
168
Nicholas Chin8d885572021-08-28 09:40:41 -0600169config COREDOOM_SECONDARY_PAYLOAD
170 bool "Load coreDOOM as a secondary payload"
171 default n
172 depends on ARCH_X86
173 help
174 coreDOOM can be loaded as a secondary payload under SeaBIOS, GRUB,
175 or any other payload that can load additional payloads. Requires a
176 linear framebuffer. If built as a secondary payload for SeaBIOS, the
177 generated VGA BIOS option rom is also required.
178
Stefan Taunera07366c2018-08-19 17:48:53 +0200179source "payloads/external/*/Kconfig.secondary"
180
Martin Roth5ad9aca2016-03-07 19:21:45 -0700181endmenu # "Secondary Payloads"
Martin Rothffc79fb2022-10-20 13:54:54 -0600182
183endif # !PAYLOAD_NONE
184
Martin Roth4351ace2016-02-16 19:40:47 -0700185endmenu