blob: 93046298842db51a46c36b72c29443fe24fe0d3a [file] [log] [blame]
Martin Roth21c06502016-02-04 19:52:27 -07001menu "Payload"
2
Martin Roth21c06502016-02-04 19:52:27 -07003config PAYLOAD_NONE
Martin Rothffc79fb2022-10-20 13:54:54 -06004 bool "Don't add a payload"
5 default y if !ARCH_X86
Martin Roth21c06502016-02-04 19:52:27 -07006 help
7 Select this option if you want to create an "empty" coreboot
8 ROM image for a certain mainboard, i.e. a coreboot ROM image
9 which does not yet contain a payload.
10
11 For such an image to be useful, you have to use 'cbfstool'
12 to add a payload to the ROM image later.
13
Martin Rothffc79fb2022-10-20 13:54:54 -060014if !PAYLOAD_NONE
15choice
16 prompt "Payload to add"
17 default PAYLOAD_SEABIOS if ARCH_X86
18
Martin Roth21c06502016-02-04 19:52:27 -070019config PAYLOAD_ELF
20 bool "An ELF executable payload"
21 help
22 Select this option if you have a payload image (an ELF file)
23 which coreboot should run as soon as the basic hardware
24 initialization is completed.
25
26 You will be able to specify the location and file name of the
27 payload image later.
28
Paul Menzel209a1bf2018-07-09 10:42:41 +020029config PAYLOAD_FIT
30 bool "A FIT payload"
Sam Lewiscb2879872020-08-09 15:33:00 +100031 depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
Paul Menzel209a1bf2018-07-09 10:42:41 +020032 select PAYLOAD_FIT_SUPPORT
33 help
34 Select this option if you have a payload image (a FIT file) which
35 coreboot should run as soon as the basic hardware initialization
36 is completed.
37
38 You will be able to specify the location and file name of the
39 payload image later.
40
Martin Roth21c06502016-02-04 19:52:27 -070041source "payloads/external/*/Kconfig.name"
42
43endchoice
44
45source "payloads/external/*/Kconfig"
46
47config PAYLOAD_FILE
48 string "Payload path and filename"
Patrick Rudolpha892cde2018-04-19 14:39:07 +020049 depends on PAYLOAD_ELF || PAYLOAD_FIT
50 default "payload.elf" if PAYLOAD_ELF
51 default "uImage" if PAYLOAD_FIT
Martin Roth21c06502016-02-04 19:52:27 -070052 help
53 The path and filename of the ELF executable file to use as payload.
54
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020055choice
56 prompt "Payload compression algorithm"
Arthur Heymans30a6b742018-01-20 12:21:03 +010057 default COMPRESSED_PAYLOAD_LZMA
Ronald G. Minnichf5529d92020-02-21 22:14:01 +000058 default COMPRESSED_PAYLOAD_NONE if PAYLOAD_LINUX || PAYLOAD_LINUXBOOT || PAYLOAD_FIT
Martin Rothffc79fb2022-10-20 13:54:54 -060059 depends on !PAYLOAD_LINUX && !PAYLOAD_LINUXBOOT && !PAYLOAD_FIT
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020060 help
61 Choose the compression algorithm for the chosen payloads.
Ronald G. Minnichf5529d92020-02-21 22:14:01 +000062 You can choose between None, LZMA, or LZ4.
63
64config COMPRESSED_PAYLOAD_NONE
65 bool "Use no compression for payloads"
66 help
67 Do not compress the payload.
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020068
Martin Roth21c06502016-02-04 19:52:27 -070069config COMPRESSED_PAYLOAD_LZMA
70 bool "Use LZMA compression for payloads"
Martin Roth21c06502016-02-04 19:52:27 -070071 help
72 In order to reduce the size payloads take up in the ROM chip
73 coreboot can compress them using the LZMA algorithm.
74
Antonello Dettorifbcfdaf2016-07-23 17:11:44 +020075config COMPRESSED_PAYLOAD_LZ4
76 bool "Use LZ4 compression for payloads"
77 help
78 In order to reduce the size payloads take up in the ROM chip
79 coreboot can compress them using the LZ4 algorithm.
80endchoice
81
Martin Rothdbae4d02015-12-11 12:24:33 -070082config PAYLOAD_OPTIONS
Maximilian Brune0825d902024-01-14 19:08:06 +060083 string "Additional cbfstool options"
Martin Rothdbae4d02015-12-11 12:24:33 -070084 default ""
85 help
86 Additional cbfstool options for the payload
87
88config PAYLOAD_IS_FLAT_BINARY
Maximilian Brune0825d902024-01-14 19:08:06 +060089 bool "Payload is a flat binary"
90 default n
Martin Rothdbae4d02015-12-11 12:24:33 -070091 help
92 Add the payload to cbfs as a flat binary type instead of as an
93 elf payload
94
Patrick Rudolpha892cde2018-04-19 14:39:07 +020095config PAYLOAD_FIT_SUPPORT
96 bool "FIT support"
97 default n
Jonathan Neuschäfer3a4511e2018-12-12 01:08:24 +010098 default y if PAYLOAD_LINUX && (ARCH_ARM || ARCH_ARM64 || ARCH_RISCV)
Sam Lewiscb2879872020-08-09 15:33:00 +100099 depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
Patrick Rudolpha892cde2018-04-19 14:39:07 +0200100 select FLATTENED_DEVICE_TREE
101 help
102 Select this option if your payload is of type FIT.
103 Enables FIT parser and devicetree patching. The FIT is non
Paul Menzelab6583e2018-07-02 08:37:09 +0200104 self-extracting and needs to have a compatible compression format.
Patrick Rudolpha892cde2018-04-19 14:39:07 +0200105
Arthur Heymans47dd96d2018-02-07 13:01:43 +0100106config COMPRESS_SECONDARY_PAYLOAD
107 bool "Use LZMA compression for secondary payloads"
108 default y
109 help
110 In order to reduce the size secondary payloads take up in the
111 ROM chip they can be compressed using the LZMA algorithm.
112
Martin Roth5ad9aca2016-03-07 19:21:45 -0700113menu "Secondary Payloads"
114
Martin Roth4351ace2016-02-16 19:40:47 -0700115config COREINFO_SECONDARY_PAYLOAD
116 bool "Load coreinfo as a secondary payload"
117 default n
118 depends on ARCH_X86
119 help
120 coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
121 or any other payload that can load additional payloads.
Martin Roth21c06502016-02-04 19:52:27 -0700122
Bill XIE3dda4da2022-01-01 11:56:00 +0800123config GRUB2_SECONDARY_PAYLOAD
124 bool "Load GRUB2 as a secondary payload"
125 default n
126 depends on !PAYLOAD_GRUB2
127 select PAYLOAD_BUILD_GRUB2
128 help
129 GRUB2 can be loaded as a secondary payload under SeaBIOS or any
130 other payload that can load additional payloads.
131
Martin Rothbe63a242016-02-28 15:56:27 -0800132config MEMTEST_SECONDARY_PAYLOAD
133 bool "Load Memtest86+ as a secondary payload"
134 default n
Martin Roth5ad9aca2016-03-07 19:21:45 -0700135 depends on ARCH_X86
Martin Rothbe63a242016-02-28 15:56:27 -0800136 help
137 Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
138 or any other payload that can load additional payloads.
139
Iru Cai736aa742016-04-15 15:48:14 +0800140config NVRAMCUI_SECONDARY_PAYLOAD
141 bool "Load nvramcui as a secondary payload"
142 default n
Matt DeVillier6670f442020-04-05 22:28:15 -0500143 depends on ARCH_X86 && HAVE_OPTION_TABLE
Iru Cai736aa742016-04-15 15:48:14 +0800144 help
145 nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
146 or any other payload that can load additional payloads.
147
Bill XIE3dda4da2022-01-01 11:56:00 +0800148config SEABIOS_SECONDARY_PAYLOAD
149 bool "Load SeaBIOS as a secondary payload"
150 default n
151 depends on ARCH_X86
152 depends on !PAYLOAD_SEABIOS
153 depends on !PAYLOAD_SEAGRUB
154 select PAYLOAD_BUILD_SEABIOS
155 help
156 SeaBIOS can be loaded as a secondary payload under GRUB or any
157 other payload that can load additional payloads.
158
Antonello Dettori4f7d3292016-05-27 23:44:47 +0200159config TINT_SECONDARY_PAYLOAD
160 bool "Load tint as a secondary payload"
161 default n
162 depends on ARCH_X86
163 help
164 tint can be loaded as a secondary payload under SeaBIOS, GRUB,
165 or any other payload that can load additional payloads.
166
Nicholas Chin8d885572021-08-28 09:40:41 -0600167config COREDOOM_SECONDARY_PAYLOAD
168 bool "Load coreDOOM as a secondary payload"
169 default n
170 depends on ARCH_X86
171 help
172 coreDOOM can be loaded as a secondary payload under SeaBIOS, GRUB,
173 or any other payload that can load additional payloads. Requires a
174 linear framebuffer. If built as a secondary payload for SeaBIOS, the
175 generated VGA BIOS option rom is also required.
176
Stefan Taunera07366c2018-08-19 17:48:53 +0200177source "payloads/external/*/Kconfig.secondary"
178
Martin Roth5ad9aca2016-03-07 19:21:45 -0700179endmenu # "Secondary Payloads"
Martin Rothffc79fb2022-10-20 13:54:54 -0600180
181endif # !PAYLOAD_NONE
182
Martin Roth4351ace2016-02-16 19:40:47 -0700183endmenu