diff options
Diffstat (limited to 'common/Kconfig')
-rw-r--r-- | common/Kconfig | 304 |
1 files changed, 254 insertions, 50 deletions
diff --git a/common/Kconfig b/common/Kconfig index 43dd92b08a..0000dac874 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -27,7 +27,7 @@ config HAS_DMA Drivers that depend on a DMA implementation can depend on this config, so that you don't get a compilation error. -config HAS_ARCH_SJLJ +config ARCH_HAS_SJLJ bool help Architecture has support implemented for setjmp()/longjmp()/initjmp() @@ -78,7 +78,7 @@ config ARCH_DMA_ADDR_T_64BIT config BAREBOX_UPDATE_IMX_NAND_FCB bool - depends on ARCH_IMX6 || ARCH_IMX28 + depends on ARCH_IMX7 || ARCH_IMX6 || ARCH_IMX28 depends on BAREBOX_UPDATE depends on MTD_WRITE depends on NAND_MXS @@ -144,6 +144,9 @@ config MEMINFO bool "display memory info" default y +config MEMTEST + bool + config ENVIRONMENT_VARIABLES bool "environment variables support" @@ -185,14 +188,8 @@ config MMU to enable the data cache which depends on the MMU. See Documentation/mmu.txt for further information. -config MMU_EARLY - bool "Enable MMU early" - depends on ARM - depends on MMU - default y - help - This enables the MMU during early startup. This speeds up things during startup - of barebox, but may lead to harder to debug code. If unsure say yes here. +config MMUINFO + bool config HAVE_CONFIGURABLE_TEXT_BASE bool @@ -201,9 +198,13 @@ config TEXT_BASE depends on HAVE_CONFIGURABLE_TEXT_BASE prompt "TEXT_BASE" hex + range 0 0xffffffff default ARCH_TEXT_BASE help - The Address barebox gets linked at. + The 32-bit address barebox gets linked at. This is forced + to zero for relocatable barebox and fixed up at runtime, + so barebox is executable on arbitrary addresses (given + sufficient alignment). config BAREBOX_MAX_IMAGE_SIZE prompt "Maximum size of barebox" @@ -276,6 +277,11 @@ config MALLOC_SIZE hex default 0x400000 prompt "malloc area size" + +config MALLOC_ALIGNMENT + hex + default 8 + endmenu config BROKEN @@ -347,16 +353,40 @@ config RELOCATABLE allowing it to relocate to the end of the available RAM. This way you have the whole memory in a single piece. -config PANIC_HANG - bool "hang the system in case of a fatal error" - help - This option enables stop of the system in case of a - fatal error, so that you have to reset it manually. - This is probably NOT a good idea for an embedded - system where you want the system to reboot - automatically as fast as possible, but it may be - useful during development since you can try to debug - the conditions that lead to the situation. +choice + prompt "Configure action on fatal error" + default PANIC_RESET + + config PANIC_POWEROFF + bool "power off the system" + help + This option shuts down the system in case of a + fatal error, so that you have to power it on manually. + This is probably NOT a good idea for an embedded + system where you want the system to reboot + automatically as fast as possible, but it may be + useful in emulation, because the system returns + to parent shell immediately. + + config PANIC_HANG + bool "hang the system" + help + This option enables stop of the system in case of a + fatal error, so that you have to reset it manually. + This is probably NOT a good idea for an embedded + system where you want the system to reboot + automatically as fast as possible, but it may be + useful during development since you can try to debug + the conditions that lead to the situation. + + config PANIC_RESET + bool "reset the system" + help + This option enables reset of the system in case of a + fatal error, so you don't have to reset it manually. + This is the recommended configuration in production. + +endchoice config PROMPT string @@ -518,15 +548,6 @@ endchoice endif -config DYNAMIC_CRC_TABLE - bool - depends on CRC32 - prompt "Generate the crc32 table dynamically" - default y - help - Saying yes to this option saves around 800 bytes of binary size. - If unsure say yes. - config ERRNO_MESSAGES bool prompt "print error values as text" @@ -536,12 +557,11 @@ config TIMESTAMP bool default y select GREGORIAN_CALENDER - prompt "print timestamp information from images" + prompt "print timestamp information from uImages" help When CONFIG_TIMESTAMP is selected, the timestamp - (date and time) of an image is printed by image - commands like bootm or iminfo. This option is - automatically enabled when you select CFG_CMD_DATE . + (date and time) of an uImage is printed by image + commands like bootm or uimage. menuconfig BOOTM select UIMAGE @@ -603,6 +623,9 @@ config BOOTM_AIMAGE help Support using Android Images. +config PE + bool "PE/COFF Support" if COMPILE_TEST + config ELF bool "ELF Support" if COMPILE_TEST @@ -643,9 +666,10 @@ config BOOTM_FITIMAGE_PUBKEY_ENV bool "Specify path to public key in environment" depends on BOOTM_FITIMAGE_SIGNATURE help - If this option is enabled the path to the public key for verifying - FIT images signature is taken from environment which allows for - better integration with build systems. + If this option is enabled the path to the device tree snippet + containing the public key for verifying FIT images signature is taken + from make's build-time environment, which can allow for better + integration with some build systems. The environment variable has the same name as the corresponding Kconfig variable: @@ -663,6 +687,10 @@ config BOOTM_FITIMAGE_PUBKEY snippet can then be included in a device tree with "#include CONFIG_BOOTM_FITIMAGE_PUBKEY". + This snippet is usually generated by decompiling a device tree produced + by mkimage. An alternative is CONFIG_CRYPTO_RSA_KEY, which takes a PEM + file or a PKCS#11 URI. + endif config BOOTM_FORCE_SIGNED_IMAGES @@ -683,8 +711,8 @@ config BLSPEC bool prompt "Support bootloader spec" help - Enable this to let barebox support the Freedesktop bootloader spec, - see: http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/ + Enable this to let barebox support the UAPI bootloader spec, + see: https://uapi-group.org/specifications/specs/boot_loader_specification/ The bootloader spec is a standard interface between the bootloader and the kernel. It allows the bootloader to discover boot options on a device and it allows the Operating System to install / update @@ -714,7 +742,7 @@ config MMCBLKDEV_ROOTARG kernel doesn't contain commit [1]. The first linux kernel release containing that commit is v5.10-rc1. - The appending only happen if barebox 'linux.bootargs.bootm.appendroot' + The appending only happens if barebox' 'linux.bootargs.bootm.appendroot' variable is set or the used blspec entry contains 'linux-appendroot'. Note: It is crucial that the kernel device tree and the barebox device @@ -812,6 +840,16 @@ config CONSOLE_ALLOW_COLOR compile time default for colored console output. After boot it can be controlled using global.allow_color. +config CONSOLE_FLUSH_LINE_BREAK + bool "Flush consoles on new line" if COMPILE_TEST + help + Many serial drivers configure and use hardware FIFOs as not to + delay the boot. When debuging some king of bugs, such as clock + issues that hang the SoC, this can falsify debugging output, + because the UART doesn't output a submitted message fully, before + the SoC hangs. This option will flush serial FIFOs when processing + the new line feed characters. + config CONSOLE_DISABLE_INPUT prompt "Disable input on all consoles by default (non-interactive)" def_bool CONSOLE_NONE @@ -840,6 +878,9 @@ config PARTITION bool prompt "Enable Partitions" +config PARTITION_MANIPULATION + bool + source "common/partitions/Kconfig" config ENV_HANDLING @@ -1004,7 +1045,7 @@ config POLLER config BTHREAD bool "barebox co-operative (green) thread infrastructure" select HAS_SCHED - depends on HAS_ARCH_SJLJ + depends on ARCH_HAS_SJLJ help barebox threads are lightweight cooperative (green) threads that are scheduled within delay loops and the console idle to asynchronously @@ -1016,6 +1057,8 @@ config STATE select ENVIRONMENT_VARIABLES select OFTREE select PARAMETER + imply STATE_DRV + imply CMD_STATE help barebox state is a generic framework for atomic power fail-safe variable storage and retrieval. It can be used to safely maintain @@ -1119,20 +1162,38 @@ config EXTERNAL_DTS_FRAGMENTS menu "OP-TEE loading" +config HAVE_OPTEE + bool + help + This symbol is selected by configuration where barebox either + starts OP-TEE or runs while OP-TEE is running. Actual + bidirectional communication with OP-TEE is enabled via + CONFIG_OPTEE. + config OPTEE_SIZE hex default 0x02000000 prompt "OP-TEE Memory Size" - depends on BOOTM_OPTEE || PBL_OPTEE + depends on HAVE_OPTEE help Size to reserve in main memory for OP-TEE. Can be smaller than the actual size used by OP-TEE, this is used to prevent barebox from allocating memory in this area. +config OPTEE_SHM_SIZE + hex + default 0x400000 + prompt "OP-TEE Shared Memory Size" + depends on HAVE_OPTEE + help + Size to reserve in main memory for OP-TEE shared memory communication. + Can be used for fixing up the OP-TEE OF node. + config BOOTM_OPTEE bool prompt "support booting OP-TEE" - depends on BOOTM && ARM + depends on BOOTM && ARM && 32BIT + select HAVE_OPTEE help OP-TEE is a trusted execution environment (TEE). With this option enabled barebox supports starting optee_os as part of the bootm command. @@ -1144,6 +1205,7 @@ config PBL_OPTEE bool "Enable OP-TEE early start" depends on ARM depends on !THUMB2_BAREBOX + select HAVE_OPTEE help Allows starting OP-TEE during lowlevel initialization of the PBL. Requires explicit support in the board's lowlevel file. @@ -1244,6 +1306,18 @@ config FRAME_POINTER will be slightly larger and slower, but it can give precise debugging information when print stack traces. +config DEBUG_IMX_UART + bool + +config DEBUG_ROCKCHIP_UART + bool + +config DEBUG_OMAP_UART + bool + +config DEBUG_BCM283X_UART + bool + choice prompt "Kernel low-level debugging port" depends on DEBUG_LL @@ -1251,6 +1325,7 @@ choice config DEBUG_IMX1_UART bool "i.MX1 Debug UART" depends on ARCH_IMX1 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX1. @@ -1258,6 +1333,7 @@ config DEBUG_IMX1_UART config DEBUG_IMX21_UART bool "i.MX21 Debug UART" depends on ARCH_IMX21 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX21. @@ -1265,6 +1341,7 @@ config DEBUG_IMX21_UART config DEBUG_IMX25_UART bool "i.MX25 Debug UART" depends on ARCH_IMX25 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX25. @@ -1272,6 +1349,7 @@ config DEBUG_IMX25_UART config DEBUG_IMX27_UART bool "i.MX27 Debug UART" depends on ARCH_IMX27 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX27. @@ -1279,6 +1357,7 @@ config DEBUG_IMX27_UART config DEBUG_IMX31_UART bool "i.MX31 Debug UART" depends on ARCH_IMX31 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX31. @@ -1286,6 +1365,7 @@ config DEBUG_IMX31_UART config DEBUG_IMX35_UART bool "i.MX35 Debug UART" depends on ARCH_IMX35 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX35. @@ -1293,6 +1373,7 @@ config DEBUG_IMX35_UART config DEBUG_IMX50_UART bool "i.MX50 Debug UART" depends on ARCH_IMX50 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX50. @@ -1300,6 +1381,7 @@ config DEBUG_IMX50_UART config DEBUG_IMX51_UART bool "i.MX51 Debug UART" depends on ARCH_IMX51 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX51. @@ -1307,6 +1389,7 @@ config DEBUG_IMX51_UART config DEBUG_IMX53_UART bool "i.MX53 Debug UART" depends on ARCH_IMX53 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX53. @@ -1314,6 +1397,7 @@ config DEBUG_IMX53_UART config DEBUG_IMX6Q_UART bool "i.MX6Q Debug UART" depends on ARCH_IMX6 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on i.MX6Q. @@ -1321,6 +1405,7 @@ config DEBUG_IMX6Q_UART config DEBUG_IMX7D_UART bool "i.MX7D Debug UART" depends on ARCH_IMX7 + select DEBUG_IMX_UART help Say Y here if you want barebox low-level debugging support on i.MX7D. @@ -1328,13 +1413,27 @@ config DEBUG_IMX7D_UART config DEBUG_IMX8M_UART bool "i.MX8M Debug UART" depends on ARCH_IMX8M + select DEBUG_IMX_UART help Say Y here if you want barebox low-level debugging support on i.MX8M*. +config DEBUG_IMX9_UART + bool "i.MX9 Debug UART" + depends on ARCH_IMX93 + select DEBUG_IMX_UART + +config DEBUG_VEXPRESS_UART + bool "Vexpress Debug UART" + depends on ARCH_VEXPRESS + help + Say Y here if you want barebox low-level debugging support + on Vexpress. + config DEBUG_VF610_UART bool "VF610 Debug UART" depends on ARCH_VF610 + select DEBUG_IMX_UART help Say Y here if you want kernel low-level debugging support on VF610. @@ -1342,6 +1441,7 @@ config DEBUG_VF610_UART config DEBUG_OMAP3_UART bool "OMAP3 Debug UART" depends on ARCH_OMAP3 + select DEBUG_OMAP_UART help Say Y here if you want kernel low-level debugging support on OMAP3. @@ -1349,6 +1449,7 @@ config DEBUG_OMAP3_UART config DEBUG_OMAP4_UART bool "OMAP4 Debug UART" depends on ARCH_OMAP4 + select DEBUG_OMAP_UART help Say Y here if you want kernel low-level debugging support on OMAP4. @@ -1356,6 +1457,7 @@ config DEBUG_OMAP4_UART config DEBUG_AM33XX_UART bool "AM33XX Debug UART" depends on ARCH_AM33XX + select DEBUG_OMAP_UART help Say Y here if you want kernel low-level debugging support on AM33XX. @@ -1363,6 +1465,7 @@ config DEBUG_AM33XX_UART config DEBUG_ROCKCHIP_RK3188_UART bool "RK3188 Debug UART" depends on ARCH_RK3188 + select DEBUG_ROCKCHIP_UART help Say Y here if you want kernel low-level debugging support on RK3188. @@ -1370,6 +1473,7 @@ config DEBUG_ROCKCHIP_RK3188_UART config DEBUG_ROCKCHIP_RK3288_UART bool "RK3288 Debug UART" depends on ARCH_RK3288 + select DEBUG_ROCKCHIP_UART help Say Y here if you want kernel low-level debugging support on RK3288. @@ -1377,13 +1481,23 @@ config DEBUG_ROCKCHIP_RK3288_UART config DEBUG_ROCKCHIP_RK3568_UART bool "RK3568 Debug UART" depends on ARCH_RK3568 + select DEBUG_ROCKCHIP_UART help Say Y here if you want kernel low-level debugging support on RK3568. +config DEBUG_ROCKCHIP_RK3588_UART + bool "RK3588 Debug UART" + depends on ARCH_RK3588 + select DEBUG_ROCKCHIP_UART + help + Say Y here if you want kernel low-level debugging support + on RK3588. + config DEBUG_ROCKCHIP_RK3399_UART bool "RK3399 Debug UART" depends on ARCH_RK3399 + select DEBUG_ROCKCHIP_UART help Say Y here if you want kernel low-level debugging support on RK3399. @@ -1402,9 +1516,17 @@ config DEBUG_SOCFPGA_UART1 Say Y here if you want kernel low-level debugging support on SOCFPGA(Arria 10) based platforms. +config DEBUG_STM32MP_UART + bool "Use STM32MP UART4 for low-level debug" + depends on ARCH_STM32 + help + Say Y here if you want kernel low-level debugging support + on STM32MP. + config DEBUG_RPI1_UART bool "RaspberryPi 1 PL011 UART" depends on ARCH_BCM283X + select DEBUG_BCM283X_UART help Say Y here if you want low-level debugging support on RaspberryPi 1 boards. @@ -1419,6 +1541,7 @@ config DEBUG_AT91_UART config DEBUG_RPI2_3_UART bool "RaspberryPi 2/3 PL011 UART" depends on ARCH_BCM283X + select DEBUG_BCM283X_UART help Say Y here if you want low-level debugging support on RaspberryPi 2 and 3 boards. @@ -1426,6 +1549,7 @@ config DEBUG_RPI2_3_UART config DEBUG_RPI3_MINI_UART bool "RaspberryPi 3 mini UART" depends on ARCH_BCM283X + select DEBUG_BCM283X_UART help Say Y here if you want low-level debugging support on RaspberryPi 3 board mini UART. @@ -1433,10 +1557,18 @@ config DEBUG_RPI3_MINI_UART config DEBUG_RPI4_MINI_UART bool "RaspberryPi 4 mini UART" depends on ARCH_BCM283X + select DEBUG_BCM283X_UART help Say Y here if you want low-level debugging support on RaspberryPi 4 board mini UART. +config DEBUG_ZYNQMP_UART + bool "Zynqmp Debug UART" + depends on ARCH_ZYNQMP + help + Say Y here if you want kernel low-level debugging support + on Zynqmp. + config DEBUG_ERIZO bool "Erizo ns16550 port" depends on SOC_ERIZO @@ -1469,6 +1601,19 @@ config DEBUG_LITEX bool "LiteX serial port" depends on SOC_LITEX +config DEBUG_SUN20I + bool "Allwinner Sun20i ns16550 serial0 port" + depends on SOC_ALLWINNER_SUN20I + select DEBUG_LL_NS16550 + +config DEBUG_AM62X_UART + bool "Texas Instruments AM62X debug UART" + depends on ARCH_K3 + +config DEBUG_QEMU_ARM64_VIRT + bool "QEMU ARM64 Virt PL011 console" + depends on ARCH_ARM64_VIRT + endchoice config DEBUG_LL_NS16550 @@ -1488,6 +1633,7 @@ config DEBUG_IMX_UART_PORT DEBUG_IMX6Q_UART || \ DEBUG_IMX7D_UART || \ DEBUG_IMX8M_UART || \ + DEBUG_IMX9_UART || \ DEBUG_VF610_UART default 1 depends on ARCH_IMX @@ -1495,10 +1641,20 @@ config DEBUG_IMX_UART_PORT Choose UART port on which kernel low-level debug messages should be output. +config DEBUG_K3_UART_PORT + int "K3 Debug UART Port Selection" if DEBUG_AM62X_UART + default 0 + depends on ARCH_K3 + help + Choose UART port on which kernel low-level debug messages + should be output. Possible values are: + AM62x: 0 - 6 + config DEBUG_OMAP_UART_PORT int "OMAP Debug UART Port Selection" if DEBUG_OMAP3_UART || \ DEBUG_OMAP4_UART || \ - DEBUG_AM33XX_UART + DEBUG_AM33XX_UART || \ + DEBUG_AM62X_UART default 1 depends on ARCH_OMAP help @@ -1512,6 +1668,7 @@ config DEBUG_ROCKCHIP_UART_PORT int "RK3xxx UART debug port" if DEBUG_ROCKCHIP_RK3188_UART || \ DEBUG_ROCKCHIP_RK3288_UART || \ DEBUG_ROCKCHIP_RK3568_UART || \ + DEBUG_ROCKCHIP_RK3588_UART || \ DEBUG_ROCKCHIP_RK3399_UART default 2 depends on ARCH_ROCKCHIP @@ -1558,11 +1715,22 @@ config DEBUG_AT91_UART_BASE config DEBUG_INITCALLS bool "Trace initcalls" + select CONSOLE_FLUSH_LINE_BREAK help If enabled this will print initcall traces. +config DEBUG_PBL + bool "Print PBL debugging information" + depends on PBL_CONSOLE + help + If enabled this will enable all debug prints in the prebootloader. + For this to work, a console needs to be configured in the + board-specific entry point and configured for either DEBUG_LL + or PBL_CONSOLE. + config DEBUG_PROBES bool "Trace driver probes/removes" + select CONSOLE_FLUSH_LINE_BREAK help If enabled this will log driver probe and remove traces. If DEBUG_LL is enabled, probes will be printed even before registering consoles. If it's disabled, they @@ -1572,6 +1740,28 @@ config DEBUG_PROBES Most consoles do not implement a remove callback to remain operable until the very end. Consoles using DMA, however, must be removed. +config DMA_API_DEBUG + bool "Enable debugging of DMA-API usage" + depends on HAS_DMA + help + Enable this option to debug the use of the DMA API by device drivers. + With this option you will be able to detect common bugs in device + drivers like double-freeing of DMA mappings or freeing mappings that + were never allocated. + + This option causes a performance degradation. Use only if you want to + debug device drivers and dma interactions. + + If unsure, say N. + +config DEBUG_LIST + bool "Debug linked list manipulation" + help + Enable this to turn on extended checks in the linked-list + walking routines. + + If unsure, say N. + config PBL_BREAK bool "Execute software break on pbl start" depends on ARM && (!CPU_32v4T && !ARCH_TEGRA) @@ -1609,16 +1799,24 @@ config COMPILE_TEST say Y here. If you are a user, say N here to avoid being prompted for inclusion of unrelated drivers. -endmenu +config WERROR + bool "Compile barebox with warnings as errors" + default COMPILE_TEST + help + A barebox build should not cause any compiler warnings, and this + enables the '-Werror' flags to enforce that rule by default. -source "common/efi/Kconfig" + However, if you have a new (or very old) compiler with odd and + unusual warnings, or you have some architecture with problems, + you may need to disable this config option in order to + successfully build barebox. -config HAS_DEBUG_LL - bool + If in doubt, say Y. + +endmenu -config HAS_ASM_DEBUG_LL +config HAS_DEBUG_LL bool - select HAS_DEBUG_LL config DDR_SPD bool @@ -1626,3 +1824,9 @@ config DDR_SPD config HAVE_ARCH_ASAN bool + +config ARCH_USE_SYM_ANNOTATIONS + bool + help + This is selected by architectures that exclusively use the new SYM_ + macros in their assembly code and not the deprecated ENTRY/PROC. |