xref: /aosp_15_r20/external/coreboot/payloads/Kconfig (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1*b9411a12SAndroid Build Coastguard Worker## SPDX-License-Identifier: GPL-2.0-only
2*b9411a12SAndroid Build Coastguard Worker
3*b9411a12SAndroid Build Coastguard Workermenu "Payload"
4*b9411a12SAndroid Build Coastguard Worker
5*b9411a12SAndroid Build Coastguard Workerconfig PAYLOAD_NONE
6*b9411a12SAndroid Build Coastguard Worker	bool "Don't add a payload"
7*b9411a12SAndroid Build Coastguard Worker	default y if !ARCH_X86
8*b9411a12SAndroid Build Coastguard Worker	help
9*b9411a12SAndroid Build Coastguard Worker	  Select this option if you want to create an "empty" coreboot
10*b9411a12SAndroid Build Coastguard Worker	  ROM image for a certain mainboard, i.e. a coreboot ROM image
11*b9411a12SAndroid Build Coastguard Worker	  which does not yet contain a payload.
12*b9411a12SAndroid Build Coastguard Worker
13*b9411a12SAndroid Build Coastguard Worker	  For such an image to be useful, you have to use 'cbfstool'
14*b9411a12SAndroid Build Coastguard Worker	  to add a payload to the ROM image later.
15*b9411a12SAndroid Build Coastguard Worker
16*b9411a12SAndroid Build Coastguard Workerif !PAYLOAD_NONE
17*b9411a12SAndroid Build Coastguard Workerchoice
18*b9411a12SAndroid Build Coastguard Worker	prompt "Payload to add"
19*b9411a12SAndroid Build Coastguard Worker	default PAYLOAD_SEABIOS if ARCH_X86
20*b9411a12SAndroid Build Coastguard Worker
21*b9411a12SAndroid Build Coastguard Workerconfig PAYLOAD_ELF
22*b9411a12SAndroid Build Coastguard Worker	bool "An ELF executable payload"
23*b9411a12SAndroid Build Coastguard Worker	help
24*b9411a12SAndroid Build Coastguard Worker	  Select this option if you have a payload image (an ELF file)
25*b9411a12SAndroid Build Coastguard Worker	  which coreboot should run as soon as the basic hardware
26*b9411a12SAndroid Build Coastguard Worker	  initialization is completed.
27*b9411a12SAndroid Build Coastguard Worker
28*b9411a12SAndroid Build Coastguard Worker	  You will be able to specify the location and file name of the
29*b9411a12SAndroid Build Coastguard Worker	  payload image later.
30*b9411a12SAndroid Build Coastguard Worker
31*b9411a12SAndroid Build Coastguard Workerconfig PAYLOAD_FIT
32*b9411a12SAndroid Build Coastguard Worker	bool "A FIT payload"
33*b9411a12SAndroid Build Coastguard Worker	depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
34*b9411a12SAndroid Build Coastguard Worker	select PAYLOAD_FIT_SUPPORT
35*b9411a12SAndroid Build Coastguard Worker	help
36*b9411a12SAndroid Build Coastguard Worker	  Select this option if you have a payload image (a FIT file) which
37*b9411a12SAndroid Build Coastguard Worker	  coreboot should run as soon as the basic hardware initialization
38*b9411a12SAndroid Build Coastguard Worker	  is completed.
39*b9411a12SAndroid Build Coastguard Worker
40*b9411a12SAndroid Build Coastguard Worker	  You will be able to specify the location and file name of the
41*b9411a12SAndroid Build Coastguard Worker	  payload image later.
42*b9411a12SAndroid Build Coastguard Worker
43*b9411a12SAndroid Build Coastguard Workerconfig PAYLOAD_FLAT_BINARY
44*b9411a12SAndroid Build Coastguard Worker	bool "A flat binary"
45*b9411a12SAndroid Build Coastguard Worker	select PAYLOAD_IS_FLAT_BINARY
46*b9411a12SAndroid Build Coastguard Worker	help
47*b9411a12SAndroid Build Coastguard Worker	  Select this option if you have a flat binary without any
48*b9411a12SAndroid Build Coastguard Worker	  executable format surrounding it which coreboot should run
49*b9411a12SAndroid Build Coastguard Worker	  as soon as the basic hardware initialization is completed.
50*b9411a12SAndroid Build Coastguard Worker
51*b9411a12SAndroid Build Coastguard Worker	  You will be able to specify the location and file name of the
52*b9411a12SAndroid Build Coastguard Worker	  payload image later.
53*b9411a12SAndroid Build Coastguard Worker
54*b9411a12SAndroid Build Coastguard Workersource "payloads/external/*/Kconfig.name"
55*b9411a12SAndroid Build Coastguard Worker
56*b9411a12SAndroid Build Coastguard Workerendchoice
57*b9411a12SAndroid Build Coastguard Worker
58*b9411a12SAndroid Build Coastguard Workersource "payloads/external/*/Kconfig"
59*b9411a12SAndroid Build Coastguard Worker
60*b9411a12SAndroid Build Coastguard Workerconfig PAYLOAD_FILE
61*b9411a12SAndroid Build Coastguard Worker	string "Payload path and filename"
62*b9411a12SAndroid Build Coastguard Worker	depends on PAYLOAD_ELF || PAYLOAD_FIT || PAYLOAD_FLAT_BINARY
63*b9411a12SAndroid Build Coastguard Worker	default "payload.elf" if PAYLOAD_ELF
64*b9411a12SAndroid Build Coastguard Worker	default "uImage" if PAYLOAD_FIT
65*b9411a12SAndroid Build Coastguard Worker	help
66*b9411a12SAndroid Build Coastguard Worker	  The path and filename of the ELF executable file to use as payload.
67*b9411a12SAndroid Build Coastguard Worker
68*b9411a12SAndroid Build Coastguard Workerchoice
69*b9411a12SAndroid Build Coastguard Worker	prompt "Payload compression algorithm"
70*b9411a12SAndroid Build Coastguard Worker	default COMPRESSED_PAYLOAD_LZMA
71*b9411a12SAndroid Build Coastguard Worker	default COMPRESSED_PAYLOAD_NONE if PAYLOAD_LINUX || PAYLOAD_LINUXBOOT || PAYLOAD_FIT
72*b9411a12SAndroid Build Coastguard Worker	depends on !PAYLOAD_LINUX && !PAYLOAD_LINUXBOOT && !PAYLOAD_FIT
73*b9411a12SAndroid Build Coastguard Worker	help
74*b9411a12SAndroid Build Coastguard Worker	  Choose the compression algorithm for the chosen payloads.
75*b9411a12SAndroid Build Coastguard Worker	  You can choose between None, LZMA, or LZ4.
76*b9411a12SAndroid Build Coastguard Worker
77*b9411a12SAndroid Build Coastguard Workerconfig COMPRESSED_PAYLOAD_NONE
78*b9411a12SAndroid Build Coastguard Worker	bool "Use no compression for payloads"
79*b9411a12SAndroid Build Coastguard Worker	help
80*b9411a12SAndroid Build Coastguard Worker	  Do not compress the payload.
81*b9411a12SAndroid Build Coastguard Worker
82*b9411a12SAndroid Build Coastguard Workerconfig COMPRESSED_PAYLOAD_LZMA
83*b9411a12SAndroid Build Coastguard Worker	bool "Use LZMA compression for payloads"
84*b9411a12SAndroid Build Coastguard Worker	help
85*b9411a12SAndroid Build Coastguard Worker	  In order to reduce the size payloads take up in the ROM chip
86*b9411a12SAndroid Build Coastguard Worker	  coreboot can compress them using the LZMA algorithm.
87*b9411a12SAndroid Build Coastguard Worker
88*b9411a12SAndroid Build Coastguard Workerconfig COMPRESSED_PAYLOAD_LZ4
89*b9411a12SAndroid Build Coastguard Worker	bool "Use LZ4 compression for payloads"
90*b9411a12SAndroid Build Coastguard Worker	help
91*b9411a12SAndroid Build Coastguard Worker	  In order to reduce the size payloads take up in the ROM chip
92*b9411a12SAndroid Build Coastguard Worker	  coreboot can compress them using the LZ4 algorithm.
93*b9411a12SAndroid Build Coastguard Workerendchoice
94*b9411a12SAndroid Build Coastguard Worker
95*b9411a12SAndroid Build Coastguard Workerconfig PAYLOAD_OPTIONS
96*b9411a12SAndroid Build Coastguard Worker	string "Additional cbfstool options" if PAYLOAD_FLAT_BINARY
97*b9411a12SAndroid Build Coastguard Worker	default ""
98*b9411a12SAndroid Build Coastguard Worker	depends on PAYLOAD_IS_FLAT_BINARY
99*b9411a12SAndroid Build Coastguard Worker	help
100*b9411a12SAndroid Build Coastguard Worker	  Additional cbfstool options for the payload
101*b9411a12SAndroid Build Coastguard Worker
102*b9411a12SAndroid Build Coastguard Workerconfig PAYLOAD_IS_FLAT_BINARY
103*b9411a12SAndroid Build Coastguard Worker	bool
104*b9411a12SAndroid Build Coastguard Worker	default n
105*b9411a12SAndroid Build Coastguard Worker
106*b9411a12SAndroid Build Coastguard Workerconfig PAYLOAD_FIT_SUPPORT
107*b9411a12SAndroid Build Coastguard Worker	bool "FIT support"
108*b9411a12SAndroid Build Coastguard Worker	default n
109*b9411a12SAndroid Build Coastguard Worker	default y if PAYLOAD_LINUX && (ARCH_ARM || ARCH_ARM64 || ARCH_RISCV)
110*b9411a12SAndroid Build Coastguard Worker	depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
111*b9411a12SAndroid Build Coastguard Worker	select FLATTENED_DEVICE_TREE
112*b9411a12SAndroid Build Coastguard Worker	help
113*b9411a12SAndroid Build Coastguard Worker	  Select this option if your payload is of type FIT.
114*b9411a12SAndroid Build Coastguard Worker	  Enables FIT parser and devicetree patching. The FIT is non
115*b9411a12SAndroid Build Coastguard Worker	  self-extracting and needs to have a compatible compression format.
116*b9411a12SAndroid Build Coastguard Worker
117*b9411a12SAndroid Build Coastguard Workerconfig COMPRESS_SECONDARY_PAYLOAD
118*b9411a12SAndroid Build Coastguard Worker	bool "Use LZMA compression for secondary payloads"
119*b9411a12SAndroid Build Coastguard Worker	default y
120*b9411a12SAndroid Build Coastguard Worker	help
121*b9411a12SAndroid Build Coastguard Worker	  In order to reduce the size secondary payloads take up in the
122*b9411a12SAndroid Build Coastguard Worker	  ROM chip they can be compressed using the LZMA algorithm.
123*b9411a12SAndroid Build Coastguard Worker
124*b9411a12SAndroid Build Coastguard Workermenu "Secondary Payloads"
125*b9411a12SAndroid Build Coastguard Worker
126*b9411a12SAndroid Build Coastguard Workerconfig COREINFO_SECONDARY_PAYLOAD
127*b9411a12SAndroid Build Coastguard Worker	bool "Load coreinfo as a secondary payload"
128*b9411a12SAndroid Build Coastguard Worker	default n
129*b9411a12SAndroid Build Coastguard Worker	depends on ARCH_X86
130*b9411a12SAndroid Build Coastguard Worker	help
131*b9411a12SAndroid Build Coastguard Worker	  coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
132*b9411a12SAndroid Build Coastguard Worker	  or any other payload that can load additional payloads.
133*b9411a12SAndroid Build Coastguard Worker
134*b9411a12SAndroid Build Coastguard Workerconfig GRUB2_SECONDARY_PAYLOAD
135*b9411a12SAndroid Build Coastguard Worker	bool "Load GRUB2 as a secondary payload"
136*b9411a12SAndroid Build Coastguard Worker	default n
137*b9411a12SAndroid Build Coastguard Worker	depends on !PAYLOAD_GRUB2
138*b9411a12SAndroid Build Coastguard Worker	select PAYLOAD_BUILD_GRUB2
139*b9411a12SAndroid Build Coastguard Worker	help
140*b9411a12SAndroid Build Coastguard Worker	  GRUB2 can be loaded as a secondary payload under SeaBIOS or any
141*b9411a12SAndroid Build Coastguard Worker	  other payload that can load additional payloads.
142*b9411a12SAndroid Build Coastguard Worker
143*b9411a12SAndroid Build Coastguard Workerconfig MEMTEST_SECONDARY_PAYLOAD
144*b9411a12SAndroid Build Coastguard Worker	bool "Load Memtest86+ as a secondary payload"
145*b9411a12SAndroid Build Coastguard Worker	default n
146*b9411a12SAndroid Build Coastguard Worker	depends on ARCH_X86
147*b9411a12SAndroid Build Coastguard Worker	help
148*b9411a12SAndroid Build Coastguard Worker	  Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
149*b9411a12SAndroid Build Coastguard Worker	  or any other payload that can load additional payloads.
150*b9411a12SAndroid Build Coastguard Worker
151*b9411a12SAndroid Build Coastguard Workerconfig NVRAMCUI_SECONDARY_PAYLOAD
152*b9411a12SAndroid Build Coastguard Worker	bool "Load nvramcui as a secondary payload"
153*b9411a12SAndroid Build Coastguard Worker	default n
154*b9411a12SAndroid Build Coastguard Worker	depends on ARCH_X86 && HAVE_OPTION_TABLE
155*b9411a12SAndroid Build Coastguard Worker	help
156*b9411a12SAndroid Build Coastguard Worker	  nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
157*b9411a12SAndroid Build Coastguard Worker	  or any other payload that can load additional payloads.
158*b9411a12SAndroid Build Coastguard Worker
159*b9411a12SAndroid Build Coastguard Workerconfig SEABIOS_SECONDARY_PAYLOAD
160*b9411a12SAndroid Build Coastguard Worker	bool "Load SeaBIOS as a secondary payload"
161*b9411a12SAndroid Build Coastguard Worker	default n
162*b9411a12SAndroid Build Coastguard Worker	depends on ARCH_X86
163*b9411a12SAndroid Build Coastguard Worker	depends on !PAYLOAD_SEABIOS
164*b9411a12SAndroid Build Coastguard Worker	depends on !PAYLOAD_SEAGRUB
165*b9411a12SAndroid Build Coastguard Worker	select PAYLOAD_BUILD_SEABIOS
166*b9411a12SAndroid Build Coastguard Worker	help
167*b9411a12SAndroid Build Coastguard Worker	  SeaBIOS can be loaded as a secondary payload under GRUB or any
168*b9411a12SAndroid Build Coastguard Worker	  other payload that can load additional payloads.
169*b9411a12SAndroid Build Coastguard Worker
170*b9411a12SAndroid Build Coastguard Workerconfig TINT_SECONDARY_PAYLOAD
171*b9411a12SAndroid Build Coastguard Worker	bool "Load tint as a secondary payload"
172*b9411a12SAndroid Build Coastguard Worker	default n
173*b9411a12SAndroid Build Coastguard Worker	depends on ARCH_X86
174*b9411a12SAndroid Build Coastguard Worker	help
175*b9411a12SAndroid Build Coastguard Worker	  tint can be loaded as a secondary payload under SeaBIOS, GRUB,
176*b9411a12SAndroid Build Coastguard Worker	  or any other payload that can load additional payloads.
177*b9411a12SAndroid Build Coastguard Worker
178*b9411a12SAndroid Build Coastguard Workerconfig COREDOOM_SECONDARY_PAYLOAD
179*b9411a12SAndroid Build Coastguard Worker	bool "Load coreDOOM as a secondary payload"
180*b9411a12SAndroid Build Coastguard Worker	default n
181*b9411a12SAndroid Build Coastguard Worker	depends on ARCH_X86
182*b9411a12SAndroid Build Coastguard Worker	help
183*b9411a12SAndroid Build Coastguard Worker	  coreDOOM can be loaded as a secondary payload under SeaBIOS, GRUB,
184*b9411a12SAndroid Build Coastguard Worker	  or any other payload that can load additional payloads. Requires a
185*b9411a12SAndroid Build Coastguard Worker	  linear framebuffer. If built as a secondary payload for SeaBIOS, the
186*b9411a12SAndroid Build Coastguard Worker	  generated VGA BIOS option rom is also required.
187*b9411a12SAndroid Build Coastguard Worker
188*b9411a12SAndroid Build Coastguard Workersource "payloads/external/*/Kconfig.secondary"
189*b9411a12SAndroid Build Coastguard Worker
190*b9411a12SAndroid Build Coastguard Workerendmenu # "Secondary Payloads"
191*b9411a12SAndroid Build Coastguard Worker
192*b9411a12SAndroid Build Coastguard Workerendif # !PAYLOAD_NONE
193*b9411a12SAndroid Build Coastguard Worker
194*b9411a12SAndroid Build Coastguard Workerendmenu
195