summaryrefslogtreecommitdiffstats
path: root/common/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'common/Kconfig')
-rw-r--r--common/Kconfig304
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.