blob: ec1d40c99207c13d273775c43fd41fbb1a318e71 [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
Maximilian Brune085c9732024-01-27 12:14:39 +010043config PAYLOAD_FLAT_BINARY
44 bool "A flat binary"
45 select PAYLOAD_IS_FLAT_BINARY
46 help
47 Select this option if you have a flat binary without any
48 executable format surrounding it which coreboot should run
49 as soon as the basic hardware initialization is completed.
50
51 You will be able to specify the location and file name of the
52 payload image later.
53
Martin Roth21c06502016-02-04 19:52:27 -070054source "payloads/external/*/Kconfig.name"
55
56endchoice
57
58source "payloads/external/*/Kconfig"
59
60config PAYLOAD_FILE
61 string "Payload path and filename"
Ronald G Minniche1ea9652024-03-12 09:45:58 -070062 depends on PAYLOAD_ELF || PAYLOAD_FIT || PAYLOAD_FLAT_BINARY
Patrick Rudolpha892cde2018-04-19 14:39:07 +020063 default "payload.elf" if PAYLOAD_ELF
64 default "uImage" if PAYLOAD_FIT
Martin Roth21c06502016-02-04 19:52:27 -070065 help
66 The path and filename of the ELF executable file to use as payload.
67
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020068choice
69 prompt "Payload compression algorithm"
Arthur Heymans30a6b742018-01-20 12:21:03 +010070 default COMPRESSED_PAYLOAD_LZMA
Ronald G. Minnichf5529d92020-02-21 22:14:01 +000071 default COMPRESSED_PAYLOAD_NONE if PAYLOAD_LINUX || PAYLOAD_LINUXBOOT || PAYLOAD_FIT
Martin Rothffc79fb2022-10-20 13:54:54 -060072 depends on !PAYLOAD_LINUX && !PAYLOAD_LINUXBOOT && !PAYLOAD_FIT
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020073 help
74 Choose the compression algorithm for the chosen payloads.
Ronald G. Minnichf5529d92020-02-21 22:14:01 +000075 You can choose between None, LZMA, or LZ4.
76
77config COMPRESSED_PAYLOAD_NONE
78 bool "Use no compression for payloads"
79 help
80 Do not compress the payload.
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020081
Martin Roth21c06502016-02-04 19:52:27 -070082config COMPRESSED_PAYLOAD_LZMA
83 bool "Use LZMA compression for payloads"
Martin Roth21c06502016-02-04 19:52:27 -070084 help
85 In order to reduce the size payloads take up in the ROM chip
86 coreboot can compress them using the LZMA algorithm.
87
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020088config COMPRESSED_PAYLOAD_LZ4
89 bool "Use LZ4 compression for payloads"
90 help
91 In order to reduce the size payloads take up in the ROM chip
92 coreboot can compress them using the LZ4 algorithm.
93endchoice
94
Martin Rothdbae4d02015-12-11 12:24:33 -070095config PAYLOAD_OPTIONS
Maximilian Brune085c9732024-01-27 12:14:39 +010096 string "Additional cbfstool options" if PAYLOAD_FLAT_BINARY
Martin Rothdbae4d02015-12-11 12:24:33 -070097 default ""
Maximilian Brune085c9732024-01-27 12:14:39 +010098 depends on PAYLOAD_IS_FLAT_BINARY
Martin Rothdbae4d02015-12-11 12:24:33 -070099 help
100 Additional cbfstool options for the payload
101
102config PAYLOAD_IS_FLAT_BINARY
Maximilian Brune085c9732024-01-27 12:14:39 +0100103 bool
Maximilian Brune0825d902024-01-14 19:08:06 +0600104 default n
Martin Rothdbae4d02015-12-11 12:24:33 -0700105
Patrick Rudolpha892cde2018-04-19 14:39:07 +0200106config PAYLOAD_FIT_SUPPORT
107 bool "FIT support"
108 default n
Jonathan Neuschäfer3a4511e2018-12-12 01:08:24 +0100109 default y if PAYLOAD_LINUX && (ARCH_ARM || ARCH_ARM64 || ARCH_RISCV)
Sam Lewiscb2879872020-08-09 15:33:00 +1000110 depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
Patrick Rudolpha892cde2018-04-19 14:39:07 +0200111 select FLATTENED_DEVICE_TREE
112 help
113 Select this option if your payload is of type FIT.
114 Enables FIT parser and devicetree patching. The FIT is non
Paul Menzelab6583e2018-07-02 08:37:09 +0200115 self-extracting and needs to have a compatible compression format.
Patrick Rudolpha892cde2018-04-19 14:39:07 +0200116
Arthur Heymans47dd96d2018-02-07 13:01:43 +0100117config COMPRESS_SECONDARY_PAYLOAD
118 bool "Use LZMA compression for secondary payloads"
119 default y
120 help
121 In order to reduce the size secondary payloads take up in the
122 ROM chip they can be compressed using the LZMA algorithm.
123
Martin Roth5ad9aca2016-03-07 19:21:45 -0700124menu "Secondary Payloads"
125
Martin Roth4351ace2016-02-16 19:40:47 -0700126config COREINFO_SECONDARY_PAYLOAD
127 bool "Load coreinfo as a secondary payload"
128 default n
129 depends on ARCH_X86
130 help
131 coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
132 or any other payload that can load additional payloads.
Martin Roth21c06502016-02-04 19:52:27 -0700133
Bill XIE3dda4da2022-01-01 11:56:00 +0800134config GRUB2_SECONDARY_PAYLOAD
135 bool "Load GRUB2 as a secondary payload"
136 default n
137 depends on !PAYLOAD_GRUB2
138 select PAYLOAD_BUILD_GRUB2
139 help
140 GRUB2 can be loaded as a secondary payload under SeaBIOS or any
141 other payload that can load additional payloads.
142
Martin Rothbe63a242016-02-28 15:56:27 -0800143config MEMTEST_SECONDARY_PAYLOAD
144 bool "Load Memtest86+ as a secondary payload"
145 default n
Martin Roth5ad9aca2016-03-07 19:21:45 -0700146 depends on ARCH_X86
Martin Rothbe63a242016-02-28 15:56:27 -0800147 help
148 Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
149 or any other payload that can load additional payloads.
150
Iru Cai736aa742016-04-15 15:48:14 +0800151config NVRAMCUI_SECONDARY_PAYLOAD
152 bool "Load nvramcui as a secondary payload"
153 default n
Matt DeVillier6670f442020-04-05 22:28:15 -0500154 depends on ARCH_X86 && HAVE_OPTION_TABLE
Iru Cai736aa742016-04-15 15:48:14 +0800155 help
156 nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
157 or any other payload that can load additional payloads.
158
Bill XIE3dda4da2022-01-01 11:56:00 +0800159config SEABIOS_SECONDARY_PAYLOAD
160 bool "Load SeaBIOS as a secondary payload"
161 default n
162 depends on ARCH_X86
163 depends on !PAYLOAD_SEABIOS
164 depends on !PAYLOAD_SEAGRUB
165 select PAYLOAD_BUILD_SEABIOS
166 help
167 SeaBIOS can be loaded as a secondary payload under GRUB or any
168 other payload that can load additional payloads.
169
Antonello Dettori4f7d3292016-05-27 23:44:47 +0200170config TINT_SECONDARY_PAYLOAD
171 bool "Load tint as a secondary payload"
172 default n
173 depends on ARCH_X86
174 help
175 tint can be loaded as a secondary payload under SeaBIOS, GRUB,
176 or any other payload that can load additional payloads.
177
Nicholas Chin8d885572021-08-28 09:40:41 -0600178config COREDOOM_SECONDARY_PAYLOAD
179 bool "Load coreDOOM as a secondary payload"
180 default n
181 depends on ARCH_X86
182 help
183 coreDOOM can be loaded as a secondary payload under SeaBIOS, GRUB,
184 or any other payload that can load additional payloads. Requires a
185 linear framebuffer. If built as a secondary payload for SeaBIOS, the
186 generated VGA BIOS option rom is also required.
187
Stefan Taunera07366c2018-08-19 17:48:53 +0200188source "payloads/external/*/Kconfig.secondary"
189
Martin Roth5ad9aca2016-03-07 19:21:45 -0700190endmenu # "Secondary Payloads"
Martin Rothffc79fb2022-10-20 13:54:54 -0600191
192endif # !PAYLOAD_NONE
193
Martin Roth4351ace2016-02-16 19:40:47 -0700194endmenu