blob: 9d09ce3edfee2d1d0f24f9ee69b4b56bf984b9c2 [file] [log] [blame]
Ulf Magnussonbd6e0442019-11-01 13:45:29 +01001# General configuration options
Anas Nashif7d4163d2015-08-22 14:43:07 -04002
Anas Nashif7d4163d2015-08-22 14:43:07 -04003# Copyright (c) 2014-2015 Wind River Systems, Inc.
Daniel Leung8df10d42016-03-25 14:30:50 -07004# Copyright (c) 2016 Intel Corporation
David B. Kinderac74d8b2017-01-18 17:01:01 -08005# SPDX-License-Identifier: Apache-2.0
Sebastian Bøe4b61bd12018-01-09 14:12:07 +01006
Anas Nashif658f6bc2019-05-28 14:22:51 -04007
Ulf Magnussone63b6522020-01-26 23:47:41 +01008# Include Kconfig.defconfig files first so that they can override defaults and
9# other symbol/choice properties by adding extra symbol/choice definitions.
10# After merging all definitions for a symbol/choice, Kconfig picks the first
11# property (e.g. the first default) with a satisfied condition.
Ulf Magnussonec3eff52018-07-30 10:57:47 +020012#
Ulf Magnussone63b6522020-01-26 23:47:41 +010013# Shield defaults should have precedence over board defaults, which should have
14# precedence over SoC defaults, so include them in that order.
Ulf Magnussonec3eff52018-07-30 10:57:47 +020015#
Ulf Magnussone63b6522020-01-26 23:47:41 +010016# $ARCH and $BOARD_DIR will be glob patterns when building documentation.
Torsten Rasmussen4558ba72020-10-27 11:08:28 +010017source "$(KCONFIG_BINARY_DIR)/Kconfig.shield.defconfig"
Ulf Magnussond7130332018-09-05 13:10:19 +020018source "$(BOARD_DIR)/Kconfig.defconfig"
Torsten Rasmussen5f7cc8d2020-07-06 12:53:39 +020019source "$(KCONFIG_BINARY_DIR)/Kconfig.soc.defconfig"
Ulf Magnussonec3eff52018-07-30 10:57:47 +020020
Ioannis Glaropoulosc5203852020-12-07 18:42:52 +010021menu "Modules"
22
Ioannis Glaropoulosc5203852020-12-07 18:42:52 +010023source "modules/Kconfig"
24
25endmenu
26
Anas Nashifabcf2ad2018-09-04 08:32:07 -050027source "boards/Kconfig"
Torsten Rasmussen5f7cc8d2020-07-06 12:53:39 +020028source "soc/Kconfig"
Anas Nashif77ba3c32015-10-09 06:20:52 -040029source "arch/Kconfig"
Anas Nashif77ba3c32015-10-09 06:20:52 -040030source "kernel/Kconfig"
Anas Nashifc6ba67f2017-08-03 07:47:44 -040031source "dts/Kconfig"
Anas Nashif77ba3c32015-10-09 06:20:52 -040032source "drivers/Kconfig"
Anas Nashif0b2c44a2016-05-14 23:10:51 -040033source "lib/Kconfig"
Ramesh Thomase354ad22016-10-29 04:10:36 -070034source "subsys/Kconfig"
Kumar Gala7584a122016-05-24 14:23:26 -050035
Kumar Gala2630fba2020-01-24 09:39:40 -060036osource "$(TOOLCHAIN_KCONFIG_DIR)/Kconfig"
Anas Nashif8017c592019-05-23 17:19:41 -040037
Anas Nashif86ad37a2018-11-02 07:12:07 -040038menu "Build and Link Features"
39
40menu "Linker Options"
41
Daniel Leung6600c642018-10-19 10:15:19 -070042choice
43 prompt "Linker Orphan Section Handling"
44 default LINKER_ORPHAN_SECTION_WARN
45
46config LINKER_ORPHAN_SECTION_PLACE
47 bool "Place"
48 help
49 Linker puts orphan sections in place without warnings
50 or errors.
51
52config LINKER_ORPHAN_SECTION_WARN
53 bool "Warn"
54 help
Anas Nashiff2cb20c2019-06-18 14:45:40 -040055 Linker places the orphan sections in output and issues
Daniel Leung6600c642018-10-19 10:15:19 -070056 warning about those sections.
57
58config LINKER_ORPHAN_SECTION_ERROR
59 bool "Error"
60 help
61 Linker exits with error when an orphan section is found.
62
63endchoice
Anas Nashif86ad37a2018-11-02 07:12:07 -040064
65config HAS_FLASH_LOAD_OFFSET
66 bool
67 help
68 This option is selected by targets having a FLASH_LOAD_OFFSET
69 and FLASH_LOAD_SIZE.
70
Ulf Magnussonfd9981a2019-11-16 01:33:09 +010071if HAS_FLASH_LOAD_OFFSET
72
Ulf Magnusson90b9eb32019-11-16 01:22:16 +010073config USE_DT_CODE_PARTITION
Ulf Magnusson1f9c5f12019-11-16 01:16:57 +010074 bool "Link application into /chosen/zephyr,code-partition from devicetree"
Andrzej Puzdrowski2b1227f2019-03-18 14:02:11 +010075 help
Ulf Magnusson1f9c5f12019-11-16 01:16:57 +010076 When enabled, the application will be linked into the flash partition
77 selected by the zephyr,code-partition property in /chosen in devicetree.
78 When this is disabled, the flash load offset and size can be set manually
79 below.
Andrzej Puzdrowski2b1227f2019-03-18 14:02:11 +010080
Kumar Gala8ce0cf02019-08-28 09:29:26 -050081# Workaround for not being able to have commas in macro arguments
82DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition
83
Anas Nashif86ad37a2018-11-02 07:12:07 -040084config FLASH_LOAD_OFFSET
Ulf Magnusson90b9eb32019-11-16 01:22:16 +010085 # Only user-configurable when USE_DT_CODE_PARTITION is disabled
86 hex "Kernel load offset" if !USE_DT_CODE_PARTITION
87 default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) if USE_DT_CODE_PARTITION
Anas Nashif86ad37a2018-11-02 07:12:07 -040088 default 0
Anas Nashif86ad37a2018-11-02 07:12:07 -040089 help
90 This option specifies the byte offset from the beginning of flash that
91 the kernel should be loaded into. Changing this value from zero will
92 affect the Zephyr image's link, and will decrease the total amount of
93 flash available for use by application code.
94
95 If unsure, leave at the default value 0.
96
97config FLASH_LOAD_SIZE
Ulf Magnusson90b9eb32019-11-16 01:22:16 +010098 # Only user-configurable when USE_DT_CODE_PARTITION is disabled
99 hex "Kernel load size" if !USE_DT_CODE_PARTITION
100 default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) if USE_DT_CODE_PARTITION
Anas Nashif86ad37a2018-11-02 07:12:07 -0400101 default 0
Anas Nashif86ad37a2018-11-02 07:12:07 -0400102 help
103 If non-zero, this option specifies the size, in bytes, of the flash
104 area that the Zephyr image will be allowed to occupy. If zero, the
105 image will be able to occupy from the FLASH_LOAD_OFFSET to the end of
106 the device.
107
108 If unsure, leave at the default value 0.
Anas Nashif86ad37a2018-11-02 07:12:07 -0400109
Ulf Magnussonfd9981a2019-11-16 01:33:09 +0100110endif # HAS_FLASH_LOAD_OFFSET
111
Stephanos Ioannidis33224892020-02-10 16:37:24 +0900112config ROM_START_OFFSET
Ole Sæther985446a2019-01-23 14:13:03 +0100113 hex
Stephanos Ioannidis33224892020-02-10 16:37:24 +0900114 prompt "ROM start offset" if !BOOTLOADER_MCUBOOT
Anas Nashif86ad37a2018-11-02 07:12:07 -0400115 default 0x200 if BOOTLOADER_MCUBOOT
116 default 0
117 help
118 If the application is built for chain-loading by a bootloader this
119 variable is required to be set to value that leaves sufficient
Stephanos Ioannidis33224892020-02-10 16:37:24 +0900120 space between the beginning of the image and the start of the first
Anas Nashif86ad37a2018-11-02 07:12:07 -0400121 section to store an image header or any other metadata.
122 In the particular case of the MCUboot bootloader this reserves enough
123 space to store the image header, which should also meet vector table
124 alignment requirements on most ARM targets, although some targets
125 may require smaller or larger values.
126
127config HAVE_CUSTOM_LINKER_SCRIPT
128 bool "Custom linker scripts provided"
129 help
130 Set this option if you have a custom linker script which needed to
131 be define in CUSTOM_LINKER_SCRIPT.
132
133config CUSTOM_LINKER_SCRIPT
134 string "Path to custom linker script"
135 depends on HAVE_CUSTOM_LINKER_SCRIPT
136 help
137 Path to the linker script to be used instead of the one define by the
138 board.
139
140 The linker script must be based on a version provided by Zephyr since
141 the kernel can expect a certain layout/certain regions.
142
143 This is useful when an application needs to add sections into the
144 linker script and avoid having to change the script provided by
145 Zephyr.
146
Anas Nashif86ad37a2018-11-02 07:12:07 -0400147config KERNEL_ENTRY
148 string "Kernel entry symbol"
149 default "__start"
150 help
151 Code entry symbol, to be set at linking phase.
152
Sebastian Bøe3a0597f2019-03-15 14:05:09 +0100153config LINKER_SORT_BY_ALIGNMENT
154 bool "Sort input sections by alignment"
155 default y
156 help
157 This turns on the linker flag to sort sections by alignment
158 in decreasing size of symbols. This helps to minimize
159 padding between symbols.
160
Jordan Yates318ee972021-04-17 20:04:33 +1000161config SRAM_VECTOR_TABLE
162 bool "Place the vector table in SRAM instead of flash"
163 help
164 The option specifies that the vector table should be placed at the
165 start of SRAM instead of the start of flash.
166
Daniel Leungece9cad2021-02-20 11:02:17 -0800167config HAS_SRAM_OFFSET
168 bool
169 help
170 This option is selected by targets that require SRAM_OFFSET.
171
172config SRAM_OFFSET
173 hex "Kernel SRAM offset" if HAS_SRAM_OFFSET
174 default 0
175 help
176 This option specifies the byte offset from the beginning of SRAM
177 where the kernel begins. Changing this value from zero will affect
178 the Zephyr image's link, and will decrease the total amount of
179 SRAM available for use by application code.
180
181 If unsure, leave at the default value 0.
182
Daniel Leungd8127282021-02-24 10:18:34 -0800183menu "Linker Sections"
184
185config LINKER_USE_BOOT_SECTION
186 bool "Enable Usage of Boot Linker Section"
187 help
188 If enabled, the symbols which are needed for the boot process
189 will be put into another linker section reserved for these
190 symbols.
191
192 Requires that boot sections exist in the architecture, SoC,
193 board or custom linker script.
194
Daniel Leung1310ad62021-02-23 13:33:38 -0800195config LINKER_USE_PINNED_SECTION
196 bool "Enable Usage of Pinned Linker Section"
197 help
198 If enabled, the symbols which need to be pinned in memory
199 will be put into another linker section reserved for pinned
200 symbols. During boot, the corresponding memory will be marked
201 as pinned.
202
203 Requires that pinned sections exist in the architecture, SoC,
204 board or custom linker script.
205
Daniel Leungd8127282021-02-24 10:18:34 -0800206endmenu # "Linker Sections"
207
Anas Nashif86ad37a2018-11-02 07:12:07 -0400208endmenu
209
210menu "Compiler Options"
211
Flavio Ceolinb587e8d2020-08-26 09:48:33 -0700212config CODING_GUIDELINE_CHECK
213 bool "Enforce coding guideline rules"
214 help
215 Use available compiler flags to check coding guideline rules during
216 the build.
217
Anas Nashif86ad37a2018-11-02 07:12:07 -0400218config NATIVE_APPLICATION
219 bool "Build as a native host application"
220 help
221 Build as a native application that can run on the host and using
222 resources and libraries provided by the host.
223
224choice
225 prompt "Optimization level"
226 default NO_OPTIMIZATIONS if COVERAGE
227 default DEBUG_OPTIMIZATIONS if DEBUG
228 default SIZE_OPTIMIZATIONS
229 help
230 Note that these flags shall only control the compiler
231 optimization level, and that no extra debug code shall be
232 conditionally compiled based on them.
233
234config SIZE_OPTIMIZATIONS
235 bool "Optimize for size"
236 help
237 Compiler optimizations will be set to -Os independently of other
238 options.
239
240config SPEED_OPTIMIZATIONS
241 bool "Optimize for speed"
242 help
243 Compiler optimizations will be set to -O2 independently of other
244 options.
245
246config DEBUG_OPTIMIZATIONS
247 bool "Optimize debugging experience"
248 help
249 Compiler optimizations will be set to -Og independently of other
250 options.
251
252config NO_OPTIMIZATIONS
253 bool "Optimize nothing"
254 help
255 Compiler optimizations will be set to -O0 independently of other
256 options.
257
258endchoice
259
Arvin Farahmande430b7b2021-04-15 11:20:10 -0400260config COMPILER_COLOR_DIAGNOSTICS
261 bool "Enable colored diganostics"
262 default y
263 help
264 Compiler diagnostic messages are colorized.
265
Anas Nashif86ad37a2018-11-02 07:12:07 -0400266config COMPILER_OPT
267 string "Custom compiler options"
268 help
269 This option is a free-form string that is passed to the compiler
270 when building all parts of a project (i.e. kernel).
271 The compiler options specified by this string supplement the
272 predefined set of compiler supplied by the build system,
273 and can be used to change compiler optimization, warning and error
274 messages, and so on.
275
276endmenu
277
Anas Nashif22b95a22019-11-24 11:28:38 -0500278choice
279 prompt "Error checking behavior for CHECK macro"
280 default RUNTIME_ERROR_CHECKS
281
282config ASSERT_ON_ERRORS
283 bool "Assert on all errors"
284 help
285 Assert on errors covered with the CHECK macro.
286
287config NO_RUNTIME_CHECKS
288 bool "No runtime error checks"
289 help
290 Do not do any runtime checks or asserts when using the CHECK macro.
291
292config RUNTIME_ERROR_CHECKS
293 bool "Enable runtime error checks"
294 help
295 Always perform runtime checks covered with the CHECK macro. This
296 option is the default and the only option used during testing.
297
298endchoice
299
Anas Nashif86ad37a2018-11-02 07:12:07 -0400300menu "Build Options"
301
302config KERNEL_BIN_NAME
303 string "The kernel binary name"
304 default "zephyr"
305 help
306 This option sets the name of the generated kernel binary.
307
308config OUTPUT_STAT
309 bool "Create a statistics file"
310 default y
311 help
312 Create a stat file using readelf -e <elf>
313
314config OUTPUT_DISASSEMBLY
315 bool "Create a disassembly file"
316 default y
317 help
318 Create an .lst file with the assembly listing of the firmware.
319
Rohit Gujarathi35713f22020-05-07 10:08:37 +0530320config OUTPUT_DISASSEMBLE_ALL
321 bool "Disassemble all sections with source. Fill zeros."
322 default n
323 depends on OUTPUT_DISASSEMBLY
324 help
325 The .lst file will contain complete disassembly of the firmware
326 not just those expected to contain instructions including zeros
327
Anas Nashif86ad37a2018-11-02 07:12:07 -0400328config OUTPUT_PRINT_MEMORY_USAGE
329 bool "Print memory usage to stdout"
330 default y
331 help
332 If the toolchain supports it, this option will pass
333 --print-memory-region to the linker when it is doing it's first
334 linker pass. Note that the memory regions are symbolic concepts
335 defined by the linker scripts and do not necessarily map
336 directly to the real physical address space. Take also note that
337 some platforms do two passes of the linker so the results do not
338 match exactly to the final elf file. See also rom_report,
339 ram_report and
340 https://sourceware.org/binutils/docs/ld/MEMORY.html
341
Anas Nashiffdbf2db2020-10-20 14:31:56 -0400342config CLEANUP_INTERMEDIATE_FILES
343 bool "Remove all intermediate files"
344 help
345 Delete intermediate files to save space and cleanup clutter resulting
346 from the build process.
347
Martí Bolívarf39fdc42020-08-06 14:57:17 -0700348config BUILD_NO_GAP_FILL
349 bool "Don't fill gaps in generated hex/bin/s19 files."
350
Anas Nashif86ad37a2018-11-02 07:12:07 -0400351config BUILD_OUTPUT_HEX
352 bool "Build a binary in HEX format"
353 help
Martí Bolívarf39fdc42020-08-06 14:57:17 -0700354 Build an Intel HEX binary zephyr/zephyr.hex in the build directory.
355 The name of this file can be customized with CONFIG_KERNEL_BIN_NAME.
Anas Nashif86ad37a2018-11-02 07:12:07 -0400356
357config BUILD_OUTPUT_BIN
358 bool "Build a binary in BIN format"
359 default y
360 help
Martí Bolívarf39fdc42020-08-06 14:57:17 -0700361 Build a "raw" binary zephyr/zephyr.bin in the build directory.
362 The name of this file can be customized with CONFIG_KERNEL_BIN_NAME.
Anas Nashif86ad37a2018-11-02 07:12:07 -0400363
Anas Nashif51c34bb2021-01-26 06:58:30 -0500364config BUILD_OUTPUT_EFI
365 bool "Build as an EFI application"
366 default n
367 depends on X86_64
368 help
369 Build as an EFI application.
370
371 This works by creating a "zephyr.efi" EFI binary containing a zephyr
372 image extracted from a built zephyr.elf file. EFI applications are
373 relocatable, and cannot be placed at specific locations in memory.
374 Instead, the stub code will copy the embedded zephyr sections to the
375 appropriate locations at startup, clear any zero-filled (BSS, etc...)
376 areas, then jump into the 64 bit entry point.
377
Anas Nashif86ad37a2018-11-02 07:12:07 -0400378config BUILD_OUTPUT_EXE
379 bool "Build a binary in ELF format with .exe extension"
380 help
Martí Bolívarf39fdc42020-08-06 14:57:17 -0700381 Build an ELF binary that can run in the host system at
382 zephyr/zephyr.exe in the build directory.
383 The name of this file can be customized with CONFIG_KERNEL_BIN_NAME.
Anas Nashif86ad37a2018-11-02 07:12:07 -0400384
385config BUILD_OUTPUT_S19
386 bool "Build a binary in S19 format"
387 help
Martí Bolívarf39fdc42020-08-06 14:57:17 -0700388 Build an S19 binary zephyr/zephyr.s19 in the build directory.
389 The name of this file can be customized with CONFIG_KERNEL_BIN_NAME.
Håkon Øye Amundsenc086b932018-11-26 09:47:16 +0000390
Pete Johanson310a4642020-12-31 16:51:52 -0500391config BUILD_OUTPUT_UF2
392 bool "Build a binary in UF2 format"
393 depends on BUILD_OUTPUT_BIN
394 help
395 Build a UF2 binary zephyr/zephyr.uf2 in the build directory.
396 The name of this file can be customized with CONFIG_KERNEL_BIN_NAME.
397
398if BUILD_OUTPUT_UF2
399
400config BUILD_OUTPUT_UF2_FAMILY_ID
Pete Johansonff01a002021-02-16 09:35:11 -0500401 string "UF2 device family ID"
402 default "0x1c5f21b0" if SOC_ESP32
403 default "0xada52840" if SOC_NRF52840_QIAA
404 default "0x4fb2d5bd" if SOC_SERIES_IMX_RT
405 default "0x2abc77ec" if SOC_SERIES_LPC55XXX
406 default "0x68ed2b88" if SOC_SERIES_SAMD21
407 default "0x55114460" if SOC_SERIES_SAMD51
408 default "0x647824b6" if SOC_SERIES_STM32F0X
409 default "0x5d1a0a2e" if SOC_SERIES_STM32F2X
410 default "0x6b846188" if SOC_SERIES_STM32F3X
411 default "0x53b80f00" if SOC_SERIES_STM32F7X
412 default "0x300f5633" if SOC_SERIES_STM32G0X
413 default "0x4c71240a" if SOC_SERIES_STM32G4X
414 default "0x6db66082" if SOC_SERIES_STM32H7X
415 default "0x202e3a91" if SOC_SERIES_STM32L0X
416 default "0x1e1f432d" if SOC_SERIES_STM32L1X
417 default "0x00ff6919" if SOC_SERIES_STM32L4X
418 default "0x04240bdf" if SOC_SERIES_STM32L5X
419 default "0x70d16653" if SOC_SERIES_STM32WBX
420 default "0x5ee21072" if SOC_STM32F103XE
421 default "0x57755a57" if SOC_STM32F401XC || SOC_STM32F401XE
422 default "0x6d0922fa" if SOC_STM32F407XE
423 default "0x8fb060fe" if SOC_STM32F407XG
Pete Johanson310a4642020-12-31 16:51:52 -0500424 help
425 UF2 bootloaders only accept UF2 files with a matching family ID.
426 This can be either a hex, e.g. 0x68ed2b88, or well-known family
Pete Johansonff01a002021-02-16 09:35:11 -0500427 name string. If the SoC in use is known by UF2, the Family ID will
428 be pre-filled with the known value.
Pete Johanson310a4642020-12-31 16:51:52 -0500429
430endif # BUILD_OUTPUT_UF2
431
Anas Nashif86ad37a2018-11-02 07:12:07 -0400432config BUILD_OUTPUT_STRIPPED
433 bool "Build a stripped binary"
434 help
Martí Bolívarf39fdc42020-08-06 14:57:17 -0700435 Build a stripped binary zephyr/zephyr.strip in the build directory.
436 The name of this file can be customized with CONFIG_KERNEL_BIN_NAME.
Anas Nashif86ad37a2018-11-02 07:12:07 -0400437
438config APPLICATION_DEFINED_SYSCALL
439 bool "Scan application folder for any syscall definition"
440 help
441 Scan additional folders inside application source folder
442 for application defined syscalls.
443
Sebastian Bøed3a8fd42019-10-17 14:25:34 +0200444config MAKEFILE_EXPORTS
445 bool "Generate build metadata files named Makefile.exports"
446 help
447 Generates a file with build information that can be read by
448 third party Makefile-based build systems.
449
Anas Nashif86ad37a2018-11-02 07:12:07 -0400450endmenu
451endmenu
452
453
454menu "Boot Options"
455
456config IS_BOOTLOADER
457 bool "Act as a bootloader"
458 depends on XIP
459 depends on ARM
460 help
461 This option indicates that Zephyr will act as a bootloader to execute
462 a separate Zephyr image payload.
463
464config BOOTLOADER_SRAM_SIZE
465 int "SRAM reserved for bootloader"
466 default 16
467 depends on !XIP || IS_BOOTLOADER
Rajavardhan Gundie584b052018-12-14 16:55:43 +0530468 depends on ARM || XTENSA
Anas Nashif86ad37a2018-11-02 07:12:07 -0400469 help
470 This option specifies the amount of SRAM (measure in kB) reserved for
471 a bootloader image, when either:
472 - the Zephyr image itself is to act as the bootloader, or
473 - Zephyr is a !XIP image, which implicitly assumes existence of a
474 bootloader that loads the Zephyr !XIP image onto SRAM.
475
Håkon Øye Amundsenc92a60b2020-09-17 12:05:15 +0000476config MCUBOOT
477 bool
478 help
479 Hidden option used to indicate that the current image is MCUBoot
480
Anas Nashif86ad37a2018-11-02 07:12:07 -0400481config BOOTLOADER_MCUBOOT
482 bool "MCUboot bootloader support"
Ulf Magnusson90b9eb32019-11-16 01:22:16 +0100483 select USE_DT_CODE_PARTITION
Ioannis Glaropoulos071ab4a2020-10-21 15:56:38 +0200484 imply INIT_ARCH_HW_AT_BOOT if ARCH_SUPPORTS_ARCH_HW_INIT
Håkon Øye Amundsenc92a60b2020-09-17 12:05:15 +0000485 depends on !MCUBOOT
Anas Nashif86ad37a2018-11-02 07:12:07 -0400486 help
487 This option signifies that the target uses MCUboot as a bootloader,
488 or in other words that the image is to be chain-loaded by MCUboot.
489 This sets several required build system and Device Tree options in
490 order for the image generated to be bootable using the MCUboot open
491 source bootloader. Currently this includes:
492
Stephanos Ioannidis33224892020-02-10 16:37:24 +0900493 * Setting ROM_START_OFFSET to a default value that allows space
Anas Nashif86ad37a2018-11-02 07:12:07 -0400494 for the MCUboot image header
Andrzej Puzdrowskic7ab1a12020-07-03 16:01:33 +0200495 * Activating SW_VECTOR_RELAY_CLIENT on Cortex-M0
496 (or Armv8-M baseline) targets with no built-in vector relocation
497 mechanisms
Anas Nashif86ad37a2018-11-02 07:12:07 -0400498
Ioannis Glaropoulos071ab4a2020-10-21 15:56:38 +0200499 By default, this option instructs Zephyr to initialize the core
500 architecture HW registers during boot, when this is supported by
501 the application. This removes the need by MCUboot to reset
502 the core registers' state itself.
503
Martí Bolívarf66a0c32020-08-18 11:28:04 -0700504if BOOTLOADER_MCUBOOT
505
506config MCUBOOT_SIGNATURE_KEY_FILE
507 string "Path to the mcuboot signing key file"
508 default ""
509 help
510 The file contains a key pair whose public half is verified
511 by your target's MCUboot image. The file is in PEM format.
512
513 If set to a non-empty value, the build system tries to
514 sign the final binaries using a 'west sign -t imgtool' command.
515 The signed binaries are placed in the build directory
516 at zephyr/zephyr.signed.bin and zephyr/zephyr.signed.hex.
517
518 The file names can be customized with CONFIG_KERNEL_BIN_NAME.
519 The existence of bin and hex files depends on CONFIG_BUILD_OUTPUT_BIN
520 and CONFIG_BUILD_OUTPUT_HEX.
521
522 This option should contain an absolute path to the same file
523 as the BOOT_SIGNATURE_KEY_FILE option in your MCUboot
524 .config. (The MCUboot config option is used for the MCUboot
525 bootloader image; this option is for your application which
526 is to be loaded by MCUboot. The MCUboot config option can be
527 a relative path from the MCUboot repository root; this option's
528 behavior is undefined for relative paths.)
529
530 If left empty, you must sign the Zephyr binaries manually.
531
532config MCUBOOT_EXTRA_IMGTOOL_ARGS
533 string "Extra arguments to pass to imgtool"
534 default ""
535 help
536 If CONFIG_MCUBOOT_SIGNATURE_KEY_FILE is a non-empty string,
537 you can use this option to pass extra options to imgtool.
538 For example, you could set this to "--version 1.2".
539
540config MCUBOOT_GENERATE_CONFIRMED_IMAGE
Henrik Brix Andersen7e39e1d2020-09-03 20:37:31 +0200541 bool "Also generate a padded, confirmed image"
Martí Bolívarf66a0c32020-08-18 11:28:04 -0700542 help
Henrik Brix Andersen7e39e1d2020-09-03 20:37:31 +0200543 The signed, padded, and confirmed binaries are placed in the build
544 directory at zephyr/zephyr.signed.confirmed.bin and
Martí Bolívarf66a0c32020-08-18 11:28:04 -0700545 zephyr/zephyr.signed.confirmed.hex.
546
547 The file names can be customized with CONFIG_KERNEL_BIN_NAME.
548 The existence of bin and hex files depends on CONFIG_BUILD_OUTPUT_BIN
549 and CONFIG_BUILD_OUTPUT_HEX.
550
551endif # BOOTLOADER_MCUBOOT
552
Anas Nashif86ad37a2018-11-02 07:12:07 -0400553config BOOTLOADER_ESP_IDF
554 bool "ESP-IDF bootloader support"
555 depends on SOC_ESP32
556 help
557 This option will trigger the compilation of the ESP-IDF bootloader
558 inside the build folder.
559 At flash time, the bootloader will be flashed with the zephyr image
560
Michael Hope8c1f1862020-06-13 21:32:11 +0200561config BOOTLOADER_BOSSA
562 bool "BOSSA bootloader support"
563 select USE_DT_CODE_PARTITION
564 depends on SOC_FAMILY_SAM0
565
566 help
567 Signifies that the target uses a BOSSA compatible bootloader. If CDC
568 ACM USB support is also enabled then the board will reboot into the
569 bootloader automatically when bossac is run.
570
571config BOOTLOADER_BOSSA_DEVICE_NAME
572 string "BOSSA CDC ACM device name"
573 depends on BOOTLOADER_BOSSA && CDC_ACM_DTE_RATE_CALLBACK_SUPPORT
574 default "CDC_ACM_0"
575 help
576 Sets the CDC ACM port to watch for reboot commands.
577
578choice
579 prompt "BOSSA bootloader variant"
580 depends on BOOTLOADER_BOSSA
581
582config BOOTLOADER_BOSSA_ARDUINO
583 bool "Arduino"
584 help
585 Select the Arduino variant of the BOSSA bootloader. Uses 0x07738135
586 as the magic value to enter the bootloader.
587
588config BOOTLOADER_BOSSA_ADAFRUIT_UF2
589 bool "Adafruit UF2"
590 help
591 Select the Adafruit UF2 variant of the BOSSA bootloader. Uses
592 0xf01669ef as the magic value to enter the bootloader.
593
594endchoice
595
Andy Rossfe04adf2019-02-27 11:53:18 -0800596config MISRA_SANE
597 bool "MISRA standards compliance features"
598 help
599 Causes the source code to build in "MISRA" mode, which
600 disallows some otherwise-permitted features of the C
601 standard for safety reasons. Specifically variable length
602 arrays are not permitted (and gcc will enforce this).
603
Anas Nashif86ad37a2018-11-02 07:12:07 -0400604endmenu
Carlo Caioned048faa2019-12-17 17:13:47 +0000605
606menu "Compatibility"
607
608config COMPAT_INCLUDES
609 bool "Suppress warnings when using header shims"
610 default y
611 help
612 Suppress any warnings from the pre-processor when including
613 deprecated header files.
614
615endmenu