summaryrefslogtreecommitdiff
path: root/arch/Kconfig
AgeCommit message (Collapse)Author
4 dayslmb: Rework the LMB_ARCH_MEM_MAP symbolTom Rini
This symbol should not be enabled by the user directly but rather selected when implemented in a given platform. This converts all of the current users of this feature and hides the symbol. Signed-off-by: Tom Rini <[email protected]>
8 dayssata: Rework the CMD_SATA and SATA symbolsTom Rini
Today we typically enable CMD_SATA in order to have the SATA functionality itself enabled, despite there being a clean split between the two symbols. This in turn leads to potential configuration problems. Split things so that SATA continues to be separate and not CMD_SATA instead depends, functionally, on AHCI being enabled. To do all of this: - Have X86 select AHCI directly rather than "default y" it later. - Make CMD_SATA be a default y option, given the split of platforms that enabled SATA and did, or did not, enable CMD_SATA. - Change "imply CMD_SATA" to "imply SATA" - Correct TARGET_VEXPRESS64_JUNO because you cannot select SATA_SIL without PCI (and in turn, SATA is needed for SATA_SIL). - Update a number of defconfigs to have no functional change. Signed-off-by: Tom Rini <[email protected]>
8 daysglobal: Audit Kconfig usage of PARTITION_TYPE_GUIDTom Rini
It is not functionally possible to use the code enabled by PARTITION_TYPE_GUID without having EFI_PARTITION be enabled as well. Not all users of the former had ensured that the latter was enabled however, so audit all current users and then as appropriate select or imply EFI_PARTITION as needed. Signed-off-by: Tom Rini <[email protected]>
8 dayssandbox: Add missing select's to the architecture symbolTom Rini
As exposed by "make randconfig", we have an issues around a number of symbols that we select without making sure to also select their prerequisite symbols. Add these missing symbols. Signed-off-by: Tom Rini <[email protected]>
12 dayssysreset: Rework tests around SYSRESET_CMD_POWEROFFTom Rini
As exposed by "make randconfig", we have an issue around how SYSRESET_CMD_POWEROFF is typically selected. We cannot rely only on CMD_POWEROFF as SYSRESET_CMD_POWEROFF must also be tested for its own dependency of SYSRESET. Signed-off-by: Tom Rini <[email protected]>
2026-03-13sandbox: symbol CONFIG_DM_SOUND does not existHeinrich Schuchardt
The correct configuration symbol is CONFIG_SOUND. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2026-03-10sandbox: don't imply non-existent CONFIG_KEYBOARDHeinrich Schuchardt
Symbol CONFIG_KEYBOARD does not exist. Don't imply it. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2025-12-08RISC-V: implement private GCC libraryHeinrich Schuchardt
The following functions are provided: Count leading zero bits * int __clzsi2 (unsigned int a) * int __clzdi2 (unsigned long a) * int __clzti2 (unsigned long long a) Count trailing zero bits * int __ctzsi2 (unsigned int a) * int __ctzdi2 (unsigned long a) * int __ctzti2 (unsigned long long a) Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-10-10iotrace: Finish migrating this to KconfigTom Rini
When I migrated this to Kconfig in commit 68e54040ccc3 ("sandbox: Move CONFIG_IO_TRACE to Kconfig") I didn't look hard enough for other details. As explained in the README, this is valid for ARM too. So start by making this be a prompted question and CMD_IOTRACE depend on IO_TRACE being enabled. Next, migrate the information out of README and in to the appropriate help text for existing options in Kconfig. Finally, make this option be default y on SANDBOX but not selected as it's valid to build without it. Signed-off-by: Tom Rini <[email protected]>
2025-06-26Merge patch series "sandbox: enable CONFIG_CMD_BOOTEFI_SELFTEST by default"Tom Rini
Heinrich Schuchardt <[email protected]> says: The sandbox is used for a lot of generic development, we should run the UEFI tests there, too. The TPM emulation on the sandbox is incomplete. Disable the TCG test on sandbox. Link: https://lore.kernel.org/r/[email protected]
2025-06-26sandbox: enable CONFIG_CMD_BOOTEFI_SELFTEST by defaultHeinrich Schuchardt
The sandbox is used for a lot of generic development, we should run the UEFI tests there, too. Reported-by: Javier Martinez Canillas <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Javier Martinez Canillas <[email protected]>
2025-06-19dtc: Add Kconfig option to pad device tree blobEric Schikschneit
This will allow arch(s) that use device tree blobs to pad the end of the device tree so they can be modified by board files at run time. This will help prevent errors such as FDT_ERR_NOSPACE from occurring. Signed-off-by: Eric Schikschneit <[email protected]> [trini: Change default order so that X86 && EFI_APP works correctly]
2025-04-23sandbox: add initjmp()Jerome Forissier
Add initjm[() to sandbox, a non-standard extension to setjmp()/ longjmp() allowing to initialize a jump buffer with a function pointer and a stack pointer. This will be useful to later introduce threads. With this new function it becomes possible to longjmp() to a particular function pointer (rather than to a point previously reached during program execution as is the case with setjmp()), and with a custom stack. Both things are needed to spin off a new thread. Then the usual setjmp()/longjmp() pair is enough to save and restore a context, i.e., switch thread. The implementation is taken verbatim from barebox [1] with the exception of the additional stack_sz argument. It is quite complex because contrary to U-Boot platform code we don't know how the system's C library implements the jump buffer, so we can't just write the function and stack pointers into it. [1] https://github.com/barebox/barebox/blob/b2a15c383ddc/arch/sandbox/os/setjmp.c Signed-off-by: Jerome Forissier <[email protected]>
2025-04-23riscv: add initjmp()Jerome Forissier
Implement initjmp() for RISC-V, a non-standard extension to setjmp()/ longjmp() allowing to initialize a jump buffer with a function pointer and a stack pointer. This will be useful to later introduce threads. With this new function it becomes possible to longjmp() to a particular function pointer (rather than to a point previously reached during program execution as is the case with setjmp()), and with a custom stack. Both things are needed to spin off a new thread. Then the usual setjmp()/longjmp() pair is enough to save and restore a context, i.e., switch thread. Signed-off-by: Jerome Forissier <[email protected]>
2025-04-23arm: add initjmp()Jerome Forissier
Implement initjmp() for Arm. a non-standard extension to setjmp()/ longjmp() allowing to initialize a jump buffer with a function pointer and a stack pointer. This will be useful to later introduce threads. With this new function it becomes possible to longjmp() to a particular function pointer (rather than to a point previously reached during program execution as is the case with setjmp()), and with a custom stack. Both things are needed to spin off a new thread. Then the usual setjmp()/longjmp() pair is enough to save and restore a context, i.e., switch thread. Signed-off-by: Jerome Forissier <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2025-04-23arch: introduce initjmp() and Kconfig symbol HAVE_INITJMPJerome Forissier
Add the HAVE_INIJMP symbol to be set by architectures that support initjmp(), a non-standard extension to setjmp()/longjmp() allowing to initialize a jump buffer with a function pointer and a stack pointer. This will be useful to later introduce threads. With this new function it becomes possible to longjmp() to a particular function pointer (rather than to a point previously reached during program execution as is the case with setjmp()), and with a custom stack. Both things are needed to spin off a new thread. Then the usual setjmp()/longjmp() pair is enough to save and restore a context, i.e., switch thread. Add the initjmp() prototype to <include/setjmp.h> since it is common to all architectures. Add an entry to the API documentation: doc/api/setjmp.rst. Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2025-01-20drivers/mmc/Kconfig: Make DM_MMC a hidden symbolTom Rini
At this point in time, DM is always enabled. So if MMC is enabled, it should select DM_MMC. No drivers need to depend on DM_MMC being enabled now, so remove that from dependency lists. This now means that a number of platforms which select'd DM_MMC need to select MMC instead. This also fixes a migration problem with espresso7420 in that MMC is built again with the platform. Reviewed-by: Peter Robinson <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2025-01-16Kconfig: Add a default cache line size for RISC-VYu-Chien Peter Lin
The RISC-V ISA profile RVA23U64 requires extension Zic64b (Cache blocks must be 64 bytes in size, naturally aligned in the address space). Some RISC-V platforms do not define the d-cache line size through SYS_CACHE_SHIFT_n. Set a default value of 64 bytes for such cases. Signed-off-by: Yu-Chien Peter Lin <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2024-12-31x86: select CONFIG_64BIT for X86_64Andrew Goodbody
Select CONFIG_64BIT so that we pass the -m64 option (instead of -m32) to static analysis tools. Introduce CONFIG_SPL_64BIT and select it for architectures other than x86 with 64 bit builds. Do not select it for x86 builds as x86 uses a 32 bit SPL. Ensure that when limits are set they use CONFIG_64BIT for U-Boot proper and CONFIG_SPL_64BIT for SPL. This is to allow for the 32 bit SPL build used by x86. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Andrew Goodbody <[email protected]>
2024-11-13test: run longjmp() test only on supported architecturesHeinrich Schuchardt
We have only implemented longjmp() on the EFI architectures. Define a symbol CONFIG_HAVE_SETJMP and have it selected by the relevant architectures. Use CONFIG_HAVE_SETJMP to decide if the longjmp test shall be built. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2024-11-09sandbox: virtio: Disable the sandbox virtio blk deviceSimon Glass
This is not implemented so cannot actually be used to read blocks. Disable it until it is implemented, to avoid causing a hang with EFI, which probes every available BLK device. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]> Issue: https://source.denx.de/u-boot/u-boot/-/issues/37
2024-07-31Kconfig: Unify endian support optionJiaxun Yang
Move SUPPORT_BIG_ENDIAN, SUPPORT_LITTLE_ENDIAN to top-level arch Kconfig and let architectures select them as necessary. Remove if guard for Endianness selection choice so we can have one of SYS_BIG_ENDIAN, SYS_LITTLE_ENDIAN config symbol defined even on single endian system. Default endian to SYS_BIG_ENDIAN for MIPS || MICROBLAZE and LITTLE_ENDIAN for the rest to retain old config behaviour. Note: PPC, SH, Xtensa are technically bi-endian, but I checked compiled u-boot image with readelf, U-Boot currently only support little endian for SH and Xtensa, Big Endian for PPC. Signed-off-by: Jiaxun Yang <[email protected]>
2024-04-10Merge patch series "Complete decoupling of zboot logic from commands"Tom Rini
Simon Glass <[email protected]> says: This series refactors the zboot code to allow it to be used with CONFIG_COMMAND disabled. A new zboot_run() function is used to boot a zimage.
2024-04-10x86: zboot: Create a separate ZBOOT option for zboot logicSimon Glass
Most of the functionality of zboot is contained in the logic which handles a zimage. Create a separate Kconfig for the logic so that it can (later) be used without the command itself being enabled. Enable ZBOOT by default on x86, with the command depending on that. The existing 'imply' can therefore be removed. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2024-03-13Kconfig: move CONFIG_32/64BIT to arch/KconfigDan Carpenter
These configs are used in multiple places so put them in a shared Kconfig file. Signed-off-by: Dan Carpenter <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2024-02-27Kconfig: Centralize prompting for SYS_CONFIG_NAMETom Rini
Generally speaking, we do not prompt for this value and define it in the board specific Kconfig file. There are some valid use cases however today where we do prompt for this value, so instead of having this be done in a number of locations, do this at the top-level location only. This removes the question from a number of other locations and makes it consistent that when we do set the value directly, we always do it the same way. We don't need to specify the type, it's always string. Signed-off-by: Tom Rini <[email protected]>
2024-01-22mtd: Make CONFIG_MTD be the gate symbol for the menuTom Rini
The help for CONFIG_MTD explains that it needs to be enabled for various things like NAND, etc to be available. It however then doesn't enforce this dependency and so if you have none of these systems present you still need to disable a number of options. Fix this by making places that select/imply one type of flash, but did not do the same, also do this for "MTD". Make boards which hadn't been enabling MTD already but need it now, do so. In a few places, disable CONFIG_CMD_MTDPARTS as it wasn't previously enabled but was now being implied. Signed-off-by: Tom Rini <[email protected]>
2024-01-07riscv: allow usage of ACPIHeinrich Schuchardt
Select CONFIG_SUPPORT_ACPI to allow usage of ACPI tables with RISC-V. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-11-07scsi: Forceably finish migration to DM_SCSITom Rini
The migration deadline for moving to DM_SCSI was v2023.04. A further reminder was sent out in August 2023 to the remaining platforms that had not migrated already, and that a few more over the line (or configs deleted). With this commit we: - Rename CONFIG_DM_SCSI to CONFIG_SCSI. - Remove all of the non-DM SCSI code. This includes removing other legacy symbols and code and removes some legacy non-DM AHCI code. - Some platforms that had previously been DM_SCSI=y && SCSI=n are now fully migrated to DM_SCSI as a few corner cases in the code assumed DM_SCSI=y meant SCSI=y. Signed-off-by: Tom Rini <[email protected]>
2023-11-07sandbox: Avoid requiring CMDLINESimon Glass
Add some dependencies on features that we had been selecting so that we can still disable CMDLINE. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2023-11-07sandbox: Disable CONFIG_DISTRO_DEFAULTSSimon Glass
This is not used for sandbox, so drop it. Enable the things that it controls to avoid dstrastic changes in the config settings for sandbox builds. The end result is that these are enabled: BOOTMETH_DISTRO BOOTSTD_DEFAULTS and these are disabled: USE_BOOTCOMMAND BOOTCOMMAND (was "run distro_bootcmd") DISTRO_DEFAULTS Note that the tools-only build has already disabled DISTRO_DEFAULTS and BOOTSTD_FULL Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2023-10-24cmd: mbr: Allow 4 MBR partitions without need for extendedAlexander Gendin
Current code allows up to 3 MBR partitions without extended one. If more than 3 partitions are required, then extended partition(s) must be used. This commit allows up to 4 primary MBR partitions without the need for extended partition. Add mbr test unit. In order to run the test manually, mmc6.img file of size 12 MiB or greater is required in the same directory as u-boot. Test also runs automatically via ./test/py/test.py tool. Running mbr test is only supported in sandbox mode. Signed-off-by: Alex Gendin <[email protected]> [ And due to some further changes for testing ] Signed-off-by: Simon Glass <[email protected]>
2023-09-06arch: m68k: Implement relocationMarek Vasut
Implement relocation for M68K. Perform all the updates in start.S relocate_code in assemby, since it is a simple matter of traversing the dynsym table and adding relocation offset - MONITOR_BASE to all the items in that table. The necessity to deal with MONITOR_BASE is a specific of M68K, where the ELF entry point is at offset 0x400, which is the MONITOR_BASE, while TEXT_BASE is at offset 0 . This also removes the one last user of NEEDS_MANUAL_RELOC, so that could be finally cleaned up . Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2023-08-31event: Use an event to replace last_stage_init()Simon Glass
Add a new event which handles this function. Convert existing use of the function to use the new event instead. Make sure that EVENT is enabled by affected boards, by selecting it from the LAST_STAGE_INIT option. For x86, enable it by default since all boards need it. For controlcenterdc, inline the get_tpm() function and make sure the event is not built in SPL. Signed-off-by: Simon Glass <[email protected]>
2023-05-11acpi: Create a new Kconfig for ACPISimon Glass
We have several Kconfig options for ACPI, but all relate to specific functions, such as generating tables and AML code. Add a new option which controls including basic ACPI library code, including the lib/acpi directory. This will allow us to add functions which are available even if table generation is not supported. Adjust the command to avoid a build error when ACPIGEN is not enabled. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2023-03-15arch: enable private libgcc for m68kAngelo Dureghello
This patch fixes u-boot hanging on the first printf("%x", val). Some toolchains built without multilib enabled may produce u-boot freezing on first u64 shift operation, as in lib/vsprintf.c number() function. Using our private libgcc solves the issue. Setting private libgcc enabled at architecture level to avoid similar issues, it should not harm. Signed-off-by: Angelo Durgehello <[email protected]>
2023-01-18event: Correct dependencies on the EVENT frameworkTom Rini
The event framework is just that, a framework. Enabling it by itself does nothing, so we shouldn't ask the user about it. Reword (and correct typos) around this the option and help text. This also applies to DM_EVENT and EVENT_DYNAMIC. Only EVENT_DEBUG and CMD_EVENT should be visible to the user to select, when EVENT is selected. With this, it's time to address the larger problems. When functionality uses events, typically via EVENT_SPY, the appropriate framework then must be select'd and NOT imply'd. As the functionality will cease to work (and so, platforms will fail to boot) this is non-optional and where select is appropriate. Audit the current users of EVENT_SPY to have a more fine-grained approach to select'ing the framework where used. Also ensure the current users of event_register and also select EVENT_DYNAMIC. Cc: AKASHI Takahiro <[email protected]> Cc: Heinrich Schuchardt <[email protected]> Reported-by: Oliver Graute <[email protected]> Reported-by: Francesco Dolcini <[email protected]> Fixes: 7fe32b3442f0 ("event: Convert arch_cpu_init_dm() to use events") Fixes: 42fdcebf859f ("event: Convert misc_init_f() to use events") Fixes: c5ef2025579e ("dm: fix DM_EVENT dependencies") Signed-off-by: Tom Rini <[email protected]> Tested-by: Simon Glass <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2023-01-11Kconfig: clean up skipping low-level initializationHeinrich Schuchardt
Put all entries for skipping low-level initialization into a sub-menu. Use different titles for main U-Boot, SPL, TPL. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2022-12-22Convert CONFIG_MONITOR_IS_IN_RAM to KconfigTom Rini
This converts the following to Kconfig: CONFIG_MONITOR_IS_IN_RAM As part of this, reword some of the documentation slightly to reflect that this is in Kconfig and not a define now. Signed-off-by: Tom Rini <[email protected]>
2022-12-21Merge tag 'v2023.01-rc4' into nextTom Rini
Prepare v2023.01-rc4 Signed-off-by: Tom Rini <[email protected]>
2022-12-08riscv: use imply instead of select for SPL_SEPARATE_BSSZong Li
Use imply instead of select, then it can still be disabled by board-specific defconfig, or be set to n manually. Signed-off-by: Zong Li <[email protected]> Reviewed-by: Rick Chen <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2022-12-07global: Remove extraneous DM_ETH imply/selectTom Rini
We only need to enable DM_ETH if we have a networking driver. All networking drivers depend on DM_ETH being enabled, and their selection ensures DM_ETH will be enabled. Signed-off-by: Tom Rini <[email protected]>
2022-12-05sandbox: Move CONFIG_IO_TRACE to KconfigTom Rini
This is only used on sandbox, so select it there. Cc: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-11-10Convert CONFIG_SYS_NONCACHED_MEMORY to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_NONCACHED_MEMORY To do this we introduce CONFIG_SYS_HAS_NONCACHED_MEMORY as a bool to gate if we are going to have noncached_... functions available and then continue to use CONFIG_SYS_NONCACHED_MEMORY to store the size of said cache. We make this new option depend on both the architectures which implement support and the drivers which make use of it. Cc: Tom Warren <[email protected]> Cc: Mingming lee <[email protected]> Cc: "Ying-Chun Liu (PaulLiu)" <[email protected]> Cc: Alban Bedel <[email protected]> Cc: Stephen Warren <[email protected]> Cc: Marcel Ziswiler <[email protected]> Cc: Allen Martin <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-10-30video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEOSimon Glass
Now that all the old code is gone, rename this option. Driver model migration is now complete. Signed-off-by: Simon Glass <[email protected]>
2022-09-25sandbox: Convert to use driver model for SCSISimon Glass
At present sandbox is producing a warning about SCSI migration. Drop the legacy code and replace it with a new implementation. Also drop the SATA command, which does not work with driver model. Signed-off-by: Simon Glass <[email protected]>
2022-09-16sandbox: Avoid defining HAVE_BLOCK_DEVICE in KonfigSimon Glass
This is not needed as it is implied or selected by other options anyway. Signed-off-by: Simon Glass <[email protected]>
2022-08-12arc: Move SYS_LITTLE_ENDIAN / SYS_BIG_ENDIAN selection to KconfigTom Rini
We can determine which of these we need given CPU_BIG_ENDIAN being enabled or not, so move that logic to Kconfig from config.mk. Cc: Alexey Brodkin <[email protected]> Cc: Eugeniy Paltsev <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-07-05nxp: Rename board/freescale/common/Kconfig to arch/Kconfig.nxpTom Rini
Now that board/freescale/common/Kconfig is safe to be included once, globally, rename this to arch/Kconfig.nxp to better reflect that it contains options that are valid on multiple architectures and SoC families, and not specific to NXP reference platforms either. Cc: Stefano Babic <[email protected]> Cc: Peng Fan <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-07-05nxp: Make board/freescale/common/Kconfig safe to include once in arch/KconfigTom Rini
The way that we use this file currently means that we have to guard it in every platform Kconfig. But it is also required in all NXP platforms, including non-reference platforms. Make all options in it have appropriate dependencies so that we can include it a single time under arch/Kconfig Signed-off-by: Tom Rini <[email protected]>