mb/google/*: Explicitly include static.h for DEV_PTR
[coreboot.git] / payloads / Kconfig
blob49486246c6b41f8ae55691d1a69bbc68eb28264d
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 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.
113 menu "Secondary Payloads"
115 config 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.
123 config 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.
132 config MEMTEST_SECONDARY_PAYLOAD
133         bool "Load Memtest86+ as a secondary payload"
134         default n
135         depends on ARCH_X86
136         help
137           Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
138           or any other payload that can load additional payloads.
140 config NVRAMCUI_SECONDARY_PAYLOAD
141         bool "Load nvramcui as a secondary payload"
142         default n
143         depends on ARCH_X86 && HAVE_OPTION_TABLE
144         help
145           nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
146           or any other payload that can load additional payloads.
148 config 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.
159 config 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.
167 config 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.
177 source "payloads/external/*/Kconfig.secondary"
179 endmenu # "Secondary Payloads"
181 endif # !PAYLOAD_NONE
183 config PAYLOAD_FIT_SUPPORT
184         bool "FIT support"
185         default n
186         default y if PAYLOAD_LINUX && (ARCH_ARM || ARCH_ARM64 || ARCH_RISCV)
187         depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
188         select FLATTENED_DEVICE_TREE
189         help
190           Select this option if your payload is of type FIT.
191           Enables FIT parser and devicetree patching. The FIT is non
192           self-extracting and needs to have a compatible compression format.
194 endmenu