1## SPDX-License-Identifier: GPL-2.0-only 2 3menu "Payload" 4 5config 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. 12 13 For such an image to be useful, you have to use 'cbfstool' 14 to add a payload to the ROM image later. 15 16if !PAYLOAD_NONE 17choice 18 prompt "Payload to add" 19 default PAYLOAD_SEABIOS if ARCH_X86 20 21config 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. 27 28 You will be able to specify the location and file name of the 29 payload image later. 30 31config 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. 39 40 You will be able to specify the location and file name of the 41 payload image later. 42 43config 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. 50 51 You will be able to specify the location and file name of the 52 payload image later. 53 54source "payloads/external/*/Kconfig.name" 55 56endchoice 57 58source "payloads/external/*/Kconfig" 59 60config 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. 67 68choice 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. 76 77config COMPRESSED_PAYLOAD_NONE 78 bool "Use no compression for payloads" 79 help 80 Do not compress the payload. 81 82config 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. 87 88config 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. 93endchoice 94 95config 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 101 102config PAYLOAD_IS_FLAT_BINARY 103 bool 104 default n 105 106config 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. 116 117config 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. 123 124menu "Secondary Payloads" 125 126config 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. 133 134config 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. 142 143config 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. 150 151config 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. 158 159config 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. 169 170config 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. 177 178config 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. 187 188source "payloads/external/*/Kconfig.secondary" 189 190endmenu # "Secondary Payloads" 191 192endif # !PAYLOAD_NONE 193 194endmenu 195