summaryrefslogtreecommitdiff
path: root/payloads/Kconfig
blob: d18c1b027faa2c3e772e337c89125485b9510b45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
## SPDX-License-Identifier: GPL-2.0-only

menu "Payload"

config PAYLOAD_NONE
	bool "Don't add a payload"
	default y if !ARCH_X86
	help
	  Select this option if you want to create an "empty" coreboot
	  ROM image for a certain mainboard, i.e. a coreboot ROM image
	  which does not yet contain a payload.

	  For such an image to be useful, you have to use 'cbfstool'
	  to add a payload to the ROM image later.

if !PAYLOAD_NONE
choice
	prompt "Payload to add"
	default PAYLOAD_SEABIOS if ARCH_X86

config PAYLOAD_ELF
	bool "An ELF executable payload"
	help
	  Select this option if you have a payload image (an ELF file)
	  which coreboot should run as soon as the basic hardware
	  initialization is completed.

	  You will be able to specify the location and file name of the
	  payload image later.

config PAYLOAD_FIT
	bool "A FIT payload"
	depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
	select PAYLOAD_FIT_SUPPORT
	help
	  Select this option if you have a payload image (a FIT file) which
	  coreboot should run as soon as the basic hardware initialization
	  is completed.

	  You will be able to specify the location and file name of the
	  payload image later.

config PAYLOAD_FLAT_BINARY
	bool "A flat binary"
	select PAYLOAD_IS_FLAT_BINARY
	help
	  Select this option if you have a flat binary without any
	  executable format surrounding it which coreboot should run
	  as soon as the basic hardware initialization is completed.

	  You will be able to specify the location and file name of the
	  payload image later.

source "payloads/external/*/Kconfig.name"

endchoice

source "payloads/external/*/Kconfig"

config PAYLOAD_FILE
	string "Payload path and filename"
	depends on PAYLOAD_ELF || PAYLOAD_FIT
	default "payload.elf" if PAYLOAD_ELF
	default "uImage" if PAYLOAD_FIT
	help
	  The path and filename of the ELF executable file to use as payload.

choice
	prompt "Payload compression algorithm"
	default COMPRESSED_PAYLOAD_LZMA
	default COMPRESSED_PAYLOAD_NONE if PAYLOAD_LINUX || PAYLOAD_LINUXBOOT || PAYLOAD_FIT
	depends on !PAYLOAD_LINUX && !PAYLOAD_LINUXBOOT && !PAYLOAD_FIT
	help
	  Choose the compression algorithm for the chosen payloads.
	  You can choose between None, LZMA, or LZ4.

config COMPRESSED_PAYLOAD_NONE
	bool "Use no compression for payloads"
	help
	  Do not compress the payload.

config COMPRESSED_PAYLOAD_LZMA
	bool "Use LZMA compression for payloads"
	help
	  In order to reduce the size payloads take up in the ROM chip
	  coreboot can compress them using the LZMA algorithm.

config COMPRESSED_PAYLOAD_LZ4
	bool "Use LZ4 compression for payloads"
	help
	  In order to reduce the size payloads take up in the ROM chip
	  coreboot can compress them using the LZ4 algorithm.
endchoice

config PAYLOAD_OPTIONS
	string "Additional cbfstool options" if PAYLOAD_FLAT_BINARY
	default ""
	depends on PAYLOAD_IS_FLAT_BINARY
	help
	  Additional cbfstool options for the payload

config PAYLOAD_IS_FLAT_BINARY
	bool
	default n

config PAYLOAD_FIT_SUPPORT
	bool "FIT support"
	default n
	default y if PAYLOAD_LINUX && (ARCH_ARM || ARCH_ARM64 || ARCH_RISCV)
	depends on ARCH_ARM64 || ARCH_RISCV || ARCH_ARM
	select FLATTENED_DEVICE_TREE
	help
	  Select this option if your payload is of type FIT.
	  Enables FIT parser and devicetree patching. The FIT is non
	  self-extracting and needs to have a compatible compression format.

config COMPRESS_SECONDARY_PAYLOAD
	bool "Use LZMA compression for secondary payloads"
	default y
	help
	  In order to reduce the size secondary payloads take up in the
	  ROM chip they can be compressed using the LZMA algorithm.

menu "Secondary Payloads"

config COREINFO_SECONDARY_PAYLOAD
	bool "Load coreinfo as a secondary payload"
	default n
	depends on ARCH_X86
	help
	  coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads.

config GRUB2_SECONDARY_PAYLOAD
	bool "Load GRUB2 as a secondary payload"
	default n
	depends on !PAYLOAD_GRUB2
	select PAYLOAD_BUILD_GRUB2
	help
	  GRUB2 can be loaded as a secondary payload under SeaBIOS or any
	  other payload that can load additional payloads.

config MEMTEST_SECONDARY_PAYLOAD
	bool "Load Memtest86+ as a secondary payload"
	default n
	depends on ARCH_X86
	help
	  Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads.

config NVRAMCUI_SECONDARY_PAYLOAD
	bool "Load nvramcui as a secondary payload"
	default n
	depends on ARCH_X86 && HAVE_OPTION_TABLE
	help
	  nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads.

config SEABIOS_SECONDARY_PAYLOAD
	bool "Load SeaBIOS as a secondary payload"
	default n
	depends on ARCH_X86
	depends on !PAYLOAD_SEABIOS
	depends on !PAYLOAD_SEAGRUB
	select PAYLOAD_BUILD_SEABIOS
	help
	  SeaBIOS can be loaded as a secondary payload under GRUB or any
	  other payload that can load additional payloads.

config TINT_SECONDARY_PAYLOAD
	bool "Load tint as a secondary payload"
	default n
	depends on ARCH_X86
	help
	  tint can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads.

config COREDOOM_SECONDARY_PAYLOAD
	bool "Load coreDOOM as a secondary payload"
	default n
	depends on ARCH_X86
	help
	  coreDOOM can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads. Requires a
	  linear framebuffer. If built as a secondary payload for SeaBIOS, the
	  generated VGA BIOS option rom is also required.

source "payloads/external/*/Kconfig.secondary"

endmenu # "Secondary Payloads"

endif # !PAYLOAD_NONE

endmenu