mb/google/parrot: Fix smbus subsystem ID
[coreboot.git] / payloads / Kconfig
blobec1d40c99207c13d273775c43fd41fbb1a318e71
1 ## SPDX-License-Identifier: GPL-2.0-only
3 menu "Payload"
5 config PAYLOAD_NONE
6         bool "Don't add a payload"
7         default y if !ARCH_X86
8         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.
13           For such an image to be useful, you have to use 'cbfstool'
14           to add a payload to the ROM image later.
16 if !PAYLOAD_NONE
17 choice
18         prompt "Payload to add"
19         default PAYLOAD_SEABIOS if ARCH_X86
21 config 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.
28           You will be able to specify the location and file name of the
29           payload image later.
31 config PAYLOAD_FIT
32         bool "A FIT payload"
33         depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
34         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.
40           You will be able to specify the location and file name of the
41           payload image later.
43 config 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.
51           You will be able to specify the location and file name of the
52           payload image later.
54 source "payloads/external/*/Kconfig.name"
56 endchoice
58 source "payloads/external/*/Kconfig"
60 config PAYLOAD_FILE
61         string "Payload path and filename"
62         depends on PAYLOAD_ELF || PAYLOAD_FIT || PAYLOAD_FLAT_BINARY
63         default "payload.elf" if PAYLOAD_ELF
64         default "uImage" if PAYLOAD_FIT
65         help
66           The path and filename of the ELF executable file to use as payload.
68 choice
69         prompt "Payload compression algorithm"
70         default COMPRESSED_PAYLOAD_LZMA
71         default COMPRESSED_PAYLOAD_NONE if PAYLOAD_LINUX || PAYLOAD_LINUXBOOT || PAYLOAD_FIT
72         depends on !PAYLOAD_LINUX && !PAYLOAD_LINUXBOOT && !PAYLOAD_FIT
73         help
74           Choose the compression algorithm for the chosen payloads.
75           You can choose between None, LZMA, or LZ4.
77 config COMPRESSED_PAYLOAD_NONE
78         bool "Use no compression for payloads"
79         help
80           Do not compress the payload.
82 config COMPRESSED_PAYLOAD_LZMA
83         bool "Use LZMA compression for payloads"
84         help
85           In order to reduce the size payloads take up in the ROM chip
86           coreboot can compress them using the LZMA algorithm.
88 config 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.
93 endchoice
95 config PAYLOAD_OPTIONS
96         string "Additional cbfstool options" if PAYLOAD_FLAT_BINARY
97         default ""
98         depends on PAYLOAD_IS_FLAT_BINARY
99         help
100           Additional cbfstool options for the payload
102 config PAYLOAD_IS_FLAT_BINARY
103         bool
104         default n
106 config PAYLOAD_FIT_SUPPORT
107         bool "FIT support"
108         default n
109         default y if PAYLOAD_LINUX && (ARCH_ARM || ARCH_ARM64 || ARCH_RISCV)
110         depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
111         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
115           self-extracting and needs to have a compatible compression format.
117 config 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.
124 menu "Secondary Payloads"
126 config 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.
134 config 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.
143 config MEMTEST_SECONDARY_PAYLOAD
144         bool "Load Memtest86+ as a secondary payload"
145         default n
146         depends on ARCH_X86
147         help
148           Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
149           or any other payload that can load additional payloads.
151 config NVRAMCUI_SECONDARY_PAYLOAD
152         bool "Load nvramcui as a secondary payload"
153         default n
154         depends on ARCH_X86 && HAVE_OPTION_TABLE
155         help
156           nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
157           or any other payload that can load additional payloads.
159 config 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.
170 config 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.
178 config 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.
188 source "payloads/external/*/Kconfig.secondary"
190 endmenu # "Secondary Payloads"
192 endif # !PAYLOAD_NONE
194 endmenu