summaryrefslogtreecommitdiff
path: root/dts/Kconfig
AgeCommit message (Collapse)Author
4 daystpl: Correct dependencies for TPL_OF_CONTROLTom Rini
The TPL_OF_CONTROL option can only select TPL_OF_LIBFDT functionality if we also have enabled TPL_LIBGENERIC_SUPPORT, so express this dependency in Kconfig. Signed-off-by: Tom Rini <[email protected]>
4 daysdts: Disallow OF_UPSTREAM for sandboxTom Rini
Our sandbox platform are not appropriate for OF_UPSTREAM, reflect this in Kconfig. Signed-off-by: Tom Rini <[email protected]>
2026-01-29dts: add Exynos vendor support for OF_UPSTREAM_VENDORKaustabh Chakraborty
When building Exynos boards, configure OF_UPSTREAM_VENDOR to build all device trees in: - "samsung/" for 32-bit ARM platforms. - "exynos/" for 64-bit ARM platforms. Signed-off-by: Kaustabh Chakraborty <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-11-10dm: Remove pre-schema tag supportTom Rini
Support for using "u-boot,dm-..." rather than "bootph-..." has been deprecated since February 2023. Any platforms using this have had a console message saying to migrate by 2023.07. Go and remove all support here now, for the v2026.01 release. The results of this change that aren't clear from the above are that we still have a checkpatch.pl error message, and document in doc/develop/spl.rst that they have been migrated since 2023. We also change the key2dtsi.py tool to use the correct bootph phase rather than the legacy phase. Signed-off-by: Tom Rini <[email protected]>
2025-10-10dts: Set a default value for DEFAULT_DEVICE_TREE for SANDBOXTom Rini
As part of building with "allyesconfig" we need to have the correct default value for the sandbox architecture provided here. Signed-off-by: Tom Rini <[email protected]>
2025-10-08Kconfig: Make further use of testing for !COMPILE_TESTTom Rini
We have a large number of library symbols that should not be prompted for by the user really but rather selected by the platform (or SoC) as needed. To start with however, make these depend on !COMPILE_TEST. Signed-off-by: Tom Rini <[email protected]>
2025-01-22emulation: fdt: Relax condition for OF_HAS_PRIOR_STAGESimon Glass
QEMU always gets its devicetree from the OF_BOARD mechanism so we should not depend on !BLOBLIST here. It's not clear why we need to have any relationship with BLOBLIST so let's remove the entire condition. Signed-off-by: Simon Glass <[email protected]> Fixes: 2b71470628c dts: OF_HAS_PRIOR_STAGE should depend on !BLOBLIST Reviewed-by: Tom Rini <[email protected]>
2024-10-18Merge tag 'u-boot-imx-master-20241018a' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22796 - Switch to using upstream DT on DH i.MX8MP DHCOM PDK2/PDK3. - Add ability to build fallback DTBOs from arch/$(ARCH)/dts. - Remove fdt_high and initrd_high env variables from imx6-dhcom. - Add dummy clk for imx8. - Fix DT corruption in imx8_cpu. - Improve DDR stability on pico-imx7d.
2024-10-18dts: Add ability to build fallback DTBOs from arch/$(ARCH)/dtsMarek Vasut
Currently the enablement of OF_UPSTREAM results on the build system searching for DTs only in dts/upstream/ . There are platforms which use U-Boot specific DTBOs applied on top of U-Boot control DT during SPL stage, and source DTs for these are located in arch/$(ARCH)/dtb. Add dedicated 'dtbos' target which builds only .dtbos and not .dtbs and in case CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS is enabled, build this target for arch/$(ARCH)/dtb to generate local U-Boot specific DTBOs. Adjust top level Makefile so binman would search for .dtb and .dtbo in both OF_UPSTREAM specific paths and arch/$(ARCH)/dtb for the .dtbo case in case CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS is enabled. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2024-10-17Extend usage for OF_OVERLAY_LIST beyond SPLJan Kiszka
Allow to use OF_OVERLAY_LIST also for the case that the overlays just need be built, e.g. when they will be picked up by binman as artifacts of the final U-Boot image. The IOT2050 boards have such a need when switching to OF_UPSTREAM. Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-07-12board_f: Add support for CONFIG_OF_BOARD_FIXUP for XIP imagesPali Rohár
When U-Boot is running from flash memory (execute in place) then gd->fdt_blob before relocation points to read-only flash memory. So U-Boot calls board_fix_fdt() with read-only gd->fdt_blob pointer which cause immediate CPU crash when callback is trying to modify gd->fdt_blob. Fix this issue by introducing a new config option OF_INITIAL_DTB_READONLY which moves fix_fdt callback after the reloc_fdt callback. This makes CONFIG_OF_BOARD_FIXUP working also if U-Boot before relocation is not running from read/write (S)RAM memory. This is required for mpc85xx boards when booting from flash NOR. Signed-off-by: Pali Rohár <[email protected]> Signed-off-by: Marek Mojík <[email protected]> Reviewed-by: Marek Behún <[email protected]>
2024-04-29dts: support building all dtb files for a specific vendorCaleb Connolly
This adjusts OF_UPSTREAM to behave more like the kernel by allowing for all the devicetree files for a given vendor to be compiled. This is useful for Qualcomm in particular as most boards are supported by a single U-Boot build just provided with a different DT. Signed-off-by: Caleb Connolly <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Tested-by: Neil Armstrong <[email protected]> # on Amlogic boards builds
2024-02-29dts: Add alternative location for upstream DTB buildsSumit Garg
Allow platform owners to mirror devicetree files from devitree-rebasing directory into dts/upstream/src/$(ARCH) (special case for arm64). Then build then along with any *-u-boot.dtsi file present in arch/$(ARCH)/dts directory. Also add a new Makefile for arm64. This will help easy migration for platforms which currently are compliant with upstream Linux kernel devicetree files. Signed-off-by: Sumit Garg <[email protected]>
2024-02-29dts: OF_HAS_PRIOR_STAGE should depend on !BLOBLISTRaymond Mao
When BLOBLIST is enabled, FDT is expected to be from bloblist carried from previous stage, instead of from OF_BOARD, therefore only enable OF_HAS_PRIOR_STAGE when BLOBLIST is disabled. Signed-off-by: Raymond Mao <[email protected]>
2023-10-17spl: Allow enabling SPL_OF_REAL and SPL_OF_PLATDATA at the same timeSean Anderson
Sandbox unit tests in U-Boot proper load a test device tree to have some devices to work with. In order to do the same in SPL, we must enable SPL_OF_REAL. However, we already have SPL_OF_PLATDATA enabled. When generating platdata from a devicetree, it is expected that we will not need devicetree access functions (even though SPL_OF_CONTROL is enabled). This expectation does not hold for sandbox, so allow user control of SPL_OF_REAL. There are several places in the tree where conditions involving OF_PLATDATA or OF_REAL no longer function correctly when both of these options can be selected at the same time. Adjust these conditions accordingly. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-06-12global: Use proper project name U-BootMichal Simek
Use proper project name in comments, Kconfig, readmes. Reviewed-by: Neil Armstrong <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Reviewed-by: Qu Wenruo <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/0dbdf0432405c1c38ffca55703b6737a48219e79.1684307818.git.michal.simek@amd.com
2023-02-14dm: treewide: Complete migration to new driver model schemaSimon Glass
Update various build and test components to use the new schema. Signed-off-by: Simon Glass <[email protected]>
2023-02-14dm: Add support for handling old u-boot,dm- tagsSimon Glass
Add a CONFIG option to deal with this automatically, printing a warning when U-Boot starts up. This can be useful if the device tree comes from another project. We will maintain this through the 2023.07 release, providing 6 months for people to notice. Signed-off-by: Simon Glass <[email protected]> Version 4: Acked-by: Michal Simek <[email protected]>
2023-02-07fdt: Drop use of non-existent OF_PLATDATA optionSimon Glass
These are only present in SPL. Drop the references to non-SPL versions. Signed-off-by: Simon Glass <[email protected]>
2022-06-28vpl: Ensure all VPL symbols in Kconfig have some VPL dependencyTom Rini
Tighten up symbol dependencies in a number of places. Ensure that a VPL specific option has at least a direct dependency on VPL. In places where it's clear that we depend on something more specific, use that dependency instead. Reported-by: Pali Rohár <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-05-02vpl: Add Kconfig options for VPLSimon Glass
Add VPL versions of commonly used Kconfig options. Signed-off-by: Simon Glass <[email protected]>
2022-02-09dts: automatically build necessary .dtb filesRasmus Villemoes
When building for a custom board, it is quite common to maintain a private branch which include some defconfig and .dts files. But to hook up those .dts files requires modifying a file "belonging" to upstream U-Boot, the arch/*/dts/Makefile. Forward-porting that branch to a newer upstream then often results in a conflict which, while it is trivial to resolve by hand, makes it harder to have a CI do "try to build our board against latest upstream". The .config usually includes information on precisely what .dtb(s) are needed, so to avoid having to modify the Makefile, simply add the files in (SPL_)OF_LIST to dtb-y. A technicality is that (SPL_)OF_LIST is not always defined, so rework the Kconfig symbols so that (SPL_)OF_LIST is always defined (when (SPL_)OF_CONTROL), but only prompted for in the cases which used to be their "depends on". nios2 and microblaze already have something like this in their dts/Makefile, and the rationale in commit 41f59f68539 is similar to the above. So this simply generalizes existing practice. Followup patches could remove the logic in those two makefiles, just as there's potential for moving some common boilerplate from all the arch/*/dts/Makefile files to the new scripts/Makefile.dts. Signed-off-by: Rasmus Villemoes <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-01-25introduce CONFIG_DEVICE_TREE_INCLUDESRasmus Villemoes
The build system already automatically looks for and includes an in-tree *-u-boot.dtsi when building the control .dtb. However, there are some things that are awkward to maintain in such an in-tree file, most notably the metadata associated to public keys used for verified boot. The only "official" API to get that metadata into the .dtb is via mkimage, as a side effect of building an actual signed image. But there are multiple problems with that. First of all, the final U-Boot (be it U-Boot proper or an SPL) image is built based on a binary image, the .dtb, and possibly some other binary artifacts. So modifying the .dtb after the build requires the meta-buildsystem (Yocto, buildroot, whatnot) to know about and repeat some of the steps that are already known to and handled by U-Boot's build system, resulting in needless duplication of code. It's also somewhat annoying and inconsistent to have a .dtb file in the build folder which is not generated by the command listed in the corresponding .cmd file (that of course applies to any generated file). So the contents of the /signature node really needs to be baked into the .dtb file when it is first created, which means providing the relevant data in the form of a .dtsi file. One could in theory put that data into the *-u-boot.dtsi file, but it's more convenient to be able to provide it externally: For example, when developing for a customer, it's common to use a set of dummy keys for development, while the consultants do not (and should not) have access to the actual keys used in production. For such a setup, it's easier if the keys used are chosen via the meta-buildsystem and the path(s) patched in during the configure step. And of course, nothing prevents anybody from having DEVICE_TREE_INCLUDES point at files maintained in git, or for that matter from including the public key metadata in the *-u-boot.dtsi directly and ignore this feature. There are other uses for this, e.g. in combination with ENV_IMPORT_FDT it can be used for providing the contents of the /config/environment node, so I don't want to tie this exclusively to use for verified boot. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]> Fix doc formatting error (make htmldocs) Signed-off-by: Simon Glass <[email protected]>
2021-12-23fdt: Avoid emitting an device tree when not neededSimon Glass
U-Boot always needs some sort of a device tree in the build. Some boards never actually use this, at least in production systems, since a prior firmware stage sets one up and passes it to U-Boot. At present the only mechanism to do that is with custom function (OF_BOARD), but future work will include a standard way of doing this ('standard passage'). It can be confusing to see a device tree emitted from the U-Boot build in this situation. Add an option to drop it. Signed-off-by: Simon Glass <[email protected]>
2021-12-23fdt: Add a Kconfig for boards with a prior stageSimon Glass
When U-Boot is started from another firmware program, not just a prior phase of U-Boot, special behaviour is typically used. In particular, the device tree may come from that prior stage. At present this is sort-of indicated by OF_BOARD, although the correlation is not 1:1, since that option simply means that the board has a custom mechanism for obtaining the device tree. For example, sandbox defines OF_BOARD. Also the board_fdt_blob_setup() function can in fact make use of the devicetree in U-Boot if it wishes, as used by dragonboard410c until very recently. Add an explicit Kconfig for this situation. Update the OF_BOARD option to more-accurately reflect what it is doing, e.g. for sandbox. Drop the docs in the README as it is out of date. Signed-off-by: Simon Glass <[email protected]>
2021-12-23fdt: Drop #ifdefs with MULTI_DTB_FITSimon Glass
Refactor the code to drop the #ifdefs for this feature. Signed-off-by: Simon Glass <[email protected]>
2021-12-23fdt: Drop CONFIG_BINMAN_STANDALONE_FDTSimon Glass
This was added as a hack to work around not having an in-tree devicetree. Now that this is fixed it is not needed. Drop it. Signed-off-by: Simon Glass <[email protected]>
2021-12-23fdt: Make OF_BOARD a bool optionSimon Glass
This should not be a separate option from OF_SEPARATE. It is a run-time option to override the devicetree, even if present. Move the option out of the choice. Disable BINMAN_FDT for a few boards which don't actually use it. Signed-off-by: Simon Glass <[email protected]>
2021-10-27sandbox: Remove OF_HOSTFILEIlias Apalodimas
OF_HOSTFILE is used on sandbox configs only. Although it's pretty unique and not causing any confusions, we are better of having simpler config options for the DTB. So let's replace that with the existing OF_BOARD. U-Boot would then have only three config options for the DTB origin. - OF_SEPARATE, build separately from U-Boot - OF_BOARD, board specific way of providing the DTB - OF_EMBED embedded in the u-boot binary(should not be used in production Signed-off-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-10-19Makefile: Only build dtc if neededSimon Glass
At present U-Boot always builds dtc if CONFIG_OF_CONTROL is defined, even when DTC is provided. The built dtc is not actually used, so this is a waste of time. Update the Makefile logic to build dtc only if one is not provided to the build with the DTC variable. Add documentation to explain this. This saves about 3.5 seconds of elapsed time on a clean build of sandbox_spl for me. Signed-off-by: Simon Glass <[email protected]>
2021-10-18treewide: Remove OF_PRIOR_STAGEIlias Apalodimas
The previous patches removed OF_PRIOR_STAGE from the last consumers of the Kconfig option. Cleanup any references to it in documentation, code and configuration options. Signed-off-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-10-18riscv: Remove OF_PRIOR_STAGE from RISC-V boardsIlias Apalodimas
At some point back in 2018 prior_stage_fdt_address and OF_PRIOR_STAGE got introduced, in order to support a DTB handed over by an earlier stage boo loader. However we have another option in the Kconfig (OF_BOARD) which has identical semantics. On RISC-V some of the boards pick up the DTB from a1 and copy it in their private gd_t. Apart from that they copy it to prior_stage_fdt_address, if the Kconfig option is selected, which is unnecessary. So let's switch the config option for those boards to OF_BOARD and define the required board_fdt_blob_setup() for them. Signed-off-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2021-09-25treewide: Simply conditions with the new OF_REALSimon Glass
Use this new Kconfig to simplify the compilation conditions where appropriate. Signed-off-by: Simon Glass <[email protected]>
2021-09-25fdt: Create a new OF_REAL KconfigSimon Glass
The condition to indicate whether there is a runtime devicetree available is OF_CONTROL && !OF_PLATDATA. This is a bit unweidly and is repeated in a lot of places. Add a new OF_REAL Kconfig which provides this information directly. Note: This is similar in effect to LIBFDT. We might consider dropping LIBFDT and using this instead, but this is left for now as we also have OF_LIBFDT_OVERLAY which it would not make sense to change. Signed-off-by: Simon Glass <[email protected]>
2021-05-19binman: Support packaging U-Boot for scenarios like OF_BOARD or OF_PRIOR_STAGEBin Meng
For scenarios like OF_BOARD or OF_PRIOR_STAGE, no device tree blob is provided in the U-Boot build phase hence the binman node information is not available. In order to support such use case, a new Kconfig option BINMAN_STANDALONE_FDT is introduced, to tell the build system that a device tree blob containing binman node is explicitly required when using binman to package U-Boot. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-03-26dm: core: Create a struct for device runtime infoSimon Glass
At present when driver model needs to change a device it simply updates the struct udevice structure. But with of-platdata-inst most of the fields are not modified at runtime. In fact, typically only the flags need to change. For systems running SPL from read-only memory it is convenient to separate out the runtime information, so that the devices don't need to be copied before being used. Create a new udevice_rt table, similar to the existing driver_rt. For now it just holds the flags, although they are not used in this patch. Add a new Kconfig for the driver_rt data, since this is not needed when of-platdata-inst is used. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2021-03-26dm: core: Add an option to support SPL in read-only memorySimon Glass
Some systems (e.g. x86 APL) run SPL from read-only memory. The device instances created by dtoc are therefore not writeable. To make things work we would need to copy the devices to read/write memory. To avoid this, add an option to use a separate runtime struct for devices, just as is done for drivers. This can be used to hold information that changes at runtime, avoiding the need for a copy. Also add a Kconfig option for read-only SPL, which selects this feature. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2021-03-22dm: core: Allow dropping run-time binding of devicesSimon Glass
With OF_PLATDATA_INST devices are bound at build time. We should not need binding of devices at runtime in most cases. However it is inflexible to absolutely prohibit it, so add an option to control this. Update the driver model core so that it does not bind devices. Update device_bind() to return an error if called. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2021-03-22dm: of-platadata: Add option for device instantiationSimon Glass
Add Kconfig options to support build-time device instantiation. When fully implemented, this will allow dtoc to create U-Boot devices (i.e. struct udevice records) at build time, thus reducing code space in SPL. For now this defaults to off, but will be enabled when the rest of the implementation is in place. Signed-off-by: Simon Glass <[email protected]>
2021-03-03dts: Fix OF_LIVE dependencyBin Meng
lib/of_live.c references the following 2 ofnode APIs: of_alias_scan() and of_get_property(). These APIs get built only when DM is on. Fix the dependency then. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-01-05dm: Rename U_BOOT_DEVICE() to U_BOOT_DRVINFO()Simon Glass
The current macro is a misnomer since it does not declare a device directly. Instead, it declares driver_info record which U-Boot uses at runtime to create a device. The distinction seems somewhat minor most of the time, but is becomes quite confusing when we actually want to declare a device, with of-platdata. We are left trying to distinguish between a device which isn't actually device, and a device that is (perhaps an 'instance'?) It seems better to rename this macro to describe what it actually is. The macros is not widely used, since boards should use devicetree to declare devices. Rename it to U_BOOT_DRVINFO(), which indicates clearly that this is declaring a new driver_info record, not a device. Signed-off-by: Simon Glass <[email protected]>
2020-10-29dm: Support parent devices with of-platdataSimon Glass
At present of-platdata does not provide parent information. But this is useful for I2C devices, for example, since it allows them to determine which bus they are on. Add support for setting the parent correctly, by storing the parent driver_info index in dtoc and reading this in lists_bind_drivers(). This needs multiple passes since we must process children after their parents already have been bound. Signed-off-by: Simon Glass <[email protected]>
2020-10-09Kconfig: Create a new tools menuSimon Glass
At present MKIMAGE_DTC_PATH is in the devicetree menu but not within 'devicetree control' since it does not relate to that. As a result it shows up in the top menu. It actually relates to the mkimage tool, so create a new tools menu for it and move it there. Signed-off-by: Simon Glass <[email protected]>
2020-01-27dts: add property removal option CONFIG_OF_REMOVE_PROPSAnatolij Gustschin
This can be used for device tree size reduction similar as CONFIG_OF_SPL_REMOVE_PROPS option. Some boards must pass the built-in DTB unchanged to the kernel, thus we may not cut it down unconditionally. Therefore enable the property removal list option only if CONFIG_OF_DTB_PROPS_REMOVE is selected. Signed-off-by: Anatolij Gustschin <[email protected]>
2020-01-15Add dependencies for MALLOC_F and OF_LIBFDTSean Anderson
Some features implicitly depended on MALLOC_F and OF_LIBFDT and would fail at link-time if these features were not enabled. Signed-off-by: Sean Anderson <[email protected]>
2020-01-07dts: Add support for adding DT overlays in u-boot.imgJean-Jacques Hiblot
If u-boot.img is a FIT image, CONFIG_OF_OVERLAY_LIST can be used to add DT overlays to u-boot.img. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2019-10-31dts: fix MULTI_DTB_FIT compression choice promptBaruch Siach
This choice is not about SPL for which we have a separate choice. Fixes: 95f4bbd581 ("lib: fdt: Allow LZO and GZIP DT compression in U-Boot") Cc: Marek Vasut <[email protected]> Signed-off-by: Baruch Siach <[email protected]>
2019-10-30dts: Kconfig: Fix help for SPL_OF_CONTROLWalter Lozano
As initially this feature was implemented as a negative CONFIG and later it was redesigned to be positive the help text should be updated to reflect this change. This commit updates the help text to match the current implementation. Signed-off-by: Walter Lozano <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2019-04-11dm: Also remove interrupts property from SPL DTMichal Simek
interrupt-parent property is removed already that's why there is no reason to keep interrupts property if parent doesn't exist. Signed-off-by: Michal Simek <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2019-04-09lib: fdt: Allow LZO and GZIP DT compression in U-BootMarek Vasut
Add required Kconfig symbols, Makefile bits and macro fixes in a few places to support LZO and DT compression in U-Boot. This can save a lot of space with multi-DTB fitImages. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]> Signed-off-by: Marek Vasut <[email protected]>