summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)Author
2024-03-01pylibfdt: Fix "invalid escape sequence '\w'" in setup.pyFlorian Schmaus
Once u-boot's build system invokes python3 scripts/dtc/pylibfdt/setup.py --quiet build_ext --inplace it may fail with scripts/dtc/pylibfdt/setup.py:40: SyntaxWarning: invalid escape sequence '\w' RE_KEY_VALUE = re.compile('(?P<key>\w+) *(?P<plus>[+])?= *(?P<value>.*)$') depending on the used Python version. Explicitly mark the regex string as raw string to avoid the warning. Signed-off-by: Florian Schmaus <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2024-02-06scripts/gen_compile_commands: update to Linux v6.7Brandon Maier
Adds support for assembly files and updates the LINE_PATTERN so it supports both "cmd" and "savedcmd", which allows reverting the U-Boot modification in commit 97fbb2eb016b ("scripts/gen_compile_commands.py: adapt _LINE_PATTERN"). Upstream commits: - 880946158b011 gen_compile_commands.py: fix path resolve with symlinks in it - 9e56d3be4bfd2 gen_compile_commands: Sort output compile commands by file name - 52c15e7e79285 gen_compile_commands: Allow the line prefix to still be cmd_ - 1c67921444bf6 gen_compile_commands: add assembly files to compilation database Signed-off-by: Brandon Maier <[email protected]> Cc: Joao Marcos Costa <[email protected]>
2024-01-18get_maintainer.pl: slightly modify penguin_chiefAnthony Loiseau
Penguin chiefs are actually stripped out from get_maintainer results unless --git-chief-penguins is provided, which appends them to all results instead. This is a issue for U-Boot since Tom Rini (penguin chief) is also maintainer of some sub-trees ("ARM", "ARM TI" and "THE REST"). Hopefully, this match is performed case-senditive over name and email, therefore upper-casing Tom Rini last name workarounds the issue. Important note: This also fixes "THE REST" catch all section resulting in Tom Rini listed as (maintainer:THE REST) for all files. Hope there is not too much developers scripting their patch email header from get_maintainer.pl output, otherwise Tom Rini may be flooded. Cc: Tom Rini <[email protected]> Signed-off-by: Anthony Loiseau <[email protected]>
2024-01-12Makefile: Run defconfig files through the C preprocessorAndrew Davis
This allows us to use some of the normal preprocessor directives inside defconfig files. Such as #define and #include. Signed-off-by: Andrew Davis <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2023-12-31Makefile: Use the fdtgrep -u flagSimon Glass
Use this flag so that the bootph binding is obeyed correctly. Add a comment about what is going on. Signed-off-by: Simon Glass <[email protected]> Fixes: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/12 Reviewed-by: Tom Rini <[email protected]>
2023-12-31sandbox: Correct SPL condition for building devicetreeSimon Glass
With sandbox, CONFIG_SANDBOX is y so the current rule ends up building the devicetree for only those SPL builds where it is unwanted. Correct the condition. This allows sandbox_vpl to produce a u-boot-vpl.dtb file. Fixes: e7fb789612e ("sandbox: Remove OF_HOSTFILE") Signed-off-by: Simon Glass <[email protected]>
2023-12-18Merge tag 'v2024.01-rc5' into nextTom Rini
Prepare v2024.01-rc5
2023-12-13tools/make_pip: Add mention of u_boot_pylib in tool listSimon Glass
This is not a tool but it is handled by the script, so update the help to include it. Signed-off-by: Simon Glass <[email protected]>
2023-12-13tools: Keep test_util and patman test files in the pip releaseSimon Glass
The test_util module is actually imported by some tools, e.g. binman so include it in the pip release. The patman tool uses its test code when starting up, so keep that too. Show a list of deleted files so it is clear what is happening. Signed-off-by: Simon Glass <[email protected]>
2023-12-05scripts/Makefile.lib: print error when no public key is specifiedMasahisa Kojima
The current build system embeds the EFI Signature List(ESL) into the dtb to be used in the EFI capsule authentication. This ESL file is specified through the CONFIG_EFI_CAPSULE_ESL_FILE Kconfig option. If CONFIG_EFI_CAPSULE_ESL_FILE is not specified, U-boot build ends up with failure but the cause of failure is not easily understandable. Current error message is as follows. FATAL ERROR: Error reading file into data: Is a directoryCheck /home/ubuntu/src/ledge/u-boot/arch/arm/dts/.synquacer-sc2a11-developerbox.dtb.pre.tmp for errors make[2]: *** [scripts/Makefile.lib:355: arch/arm/dts/synquacer-sc2a11-developerbox.dtb] Error 1 make[1]: *** [dts/Makefile:44: arch-dtbs] Error 2 make: *** [Makefile:1165: dts/dt.dtb] Error 2 make: *** Waiting for unfinished jobs.... This commit shows the error message that CONFIG_EFI_CAPSULE_ESL_FILE must be specified when the EFI capsule authentication is enabled, then terminate the build with error. Signed-off-by: Masahisa Kojima <[email protected]> Reviewed-by: Weizhao Ouyang <[email protected]>
2023-11-10tree-wide: Replace http:// link with https:// link for ti.comNishanth Menon
Replace instances of http://www.ti.com with https://www.ti.com Signed-off-by: Nishanth Menon <[email protected]>
2023-10-30get_maintainer.pl: update from Linux kernel v6.5Tom Rini
Update U-Boot's version of scripts/get_maintainer.pl to sync it up with the latest changes to the Linux kernel's version of the same script. The last sync was with Linux kernel version v5.13-rc6. The commits to the kernel's get_maintainer.pl since then (starting with the most recent) are: 11fb48961e52 get_maintainer: Honor mailmap for in file emails 26d98e9f78da get_maintainer: don't remind about no git repo when --nogit is used Signed-off-by: Tom Rini <[email protected]>
2023-10-24checkpatch.pl: Make common.h check boarderTom Rini
At this point in time we should not add common.h to any new files, so make checkpatch.pl complain. Signed-off-by: Tom Rini <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2023-10-11scripts/gen_compile_commands: fix usage messageJoao Marcos Costa
Replace mentions to 'kernel' by 'U-Boot' to avoid confusion. Signed-off-by: Joao Marcos Costa <[email protected]> Tested-by: Joao Paulo Goncalves <[email protected]>
2023-10-11doc: add documentation for gen_compile_commands.pyJoao Marcos Costa
This documentation briefly explains what is a compilation database, and how to use the script to generate one. This is not a portage, as there was no original documentation in the Linux sources. Acknowledge the documentation in the script's header and in doc/build index. Signed-off-by: Joao Marcos Costa <[email protected]> Tested-by: Joao Paulo Goncalves <[email protected]>
2023-10-11scripts/gen_compile_commands.py: add acknowledgmentsJoao Marcos Costa
Add acknowledgments for porting and modifying the script. Of course, the license, author, and copyright notice remain the same as in the original script. Signed-off-by: Joao Marcos Costa <[email protected]> Tested-by: Joao Paulo Goncalves <[email protected]>
2023-10-11scripts/gen_compile_commands.py: fix docstringJoao Marcos Costa
The referred tool is now in U-Boot. Replace "the Linux kernel" by "U-Boot" to make the docstring coherent. Signed-off-by: Joao Marcos Costa <[email protected]> Tested-by: Joao Paulo Goncalves <[email protected]>
2023-10-11scripts/gen_compile_commands.py: adapt _LINE_PATTERNJoao Marcos Costa
For U-Boot's context, the regular expression defined by _LINE_PATTERN should be adapted. Replace 'savedcmd' by 'cmd'. Signed-off-by: Joao Marcos Costa <[email protected]> Tested-by: Joao Paulo Goncalves <[email protected]>
2023-10-11scripts: Port Linux's gen_compile_commands.py to U-BootJoao Marcos Costa
This script generates a database of compiler flags, namely compile_commands.json. It is quite useful for text editors that use clangd LSP (e.g. Vim, Neovim). It was ported from Linux's sources: - tag: v6.4 - revision 6995e2de6891c724bfeb2db33d7b87775f913ad1 Modifications for U-Boot compatibility will be added in a follow-up commit. Signed-off-by: Joao Marcos Costa <[email protected]> Tested-by: Joao Paulo Goncalves <[email protected]>
2023-10-11checkpatch: skip fdtdec_* check for toolsLars Feyaerts
Have checkpatch.pl skip warnings for use of fdtdec_* functions in ooling; livetree isn't used there. Signed-off-by: Lars Feyaerts <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-10-09Makefile: Allow for board directories to not have a MakefileTom Rini
It is entirely possible at this point to have platforms in U-Boot that do not have board-specific C code (just Kconfig or environment) and so make it optional to have to descend in to and then build in the board directory. Signed-off-by: Tom Rini <[email protected]>
2023-09-22Allow Python packages to be droppedSimon Glass
When building in a portage chroot, we do not have the environment needed to build pylibfdt. It is instead build as a separate package. Provide a build option to tell U-Boot to skip this part of the build. We still need it to use binman, etc. but don't need it to build its dependencies. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Mike Frysinger <[email protected]> [s/build bytes/builds bytes in tools.rst] Signed-off-by: Bin Meng <[email protected]>
2023-08-31event: Support a simple spy recordSimon Glass
The current event spy is always passed the event context and the event. The context is always NULL for a static spy. The event is not often used. Introduce a 'simple' spy which takes no arguments. This allows us to drop the adaptation code that many of these spy records use. Update the event script to find these in the image. Signed-off-by: Simon Glass <[email protected]>
2023-08-29scripts/Makefile.lib: Embed capsule public key in platform's dtbSughosh Ganu
The EFI capsule authentication logic in u-boot expects the public key in the form of an EFI Signature List(ESL) to be provided as part of the platform's dtb. Currently, the embedding of the ESL file into the dtb needs to be done manually. Add a target for generating a dtsi file which contains the signature node with the ESL file included as a property under the signature node. Include the dtsi file in the dtb. This brings the embedding of the ESL in the dtb into the U-Boot build flow. The path to the ESL file is specified through the CONFIG_EFI_CAPSULE_ESL_FILE symbol. Signed-off-by: Sughosh Ganu <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-08-29scripts/Makefile.lib: Add dtsi include files as deps for building DTBSughosh Ganu
At the time of building the DTB, some dtsi files can be selected for inclusion. Have these dtsi files as dependencies for the DTB target. This also ensures generation or updating the dtsi files if need be. Signed-off-by: Sughosh Ganu <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-08-29scripts/Makefile.lib: Collate all dtsi files for inclusionSughosh Ganu
At the time of building a device-tree file, all the *u-boot.dtsi files are looked for, in a particular order, and the first file found is included. Then, the list of files specified in the CONFIG_DEVICE_TREE_INCLUDES symbol are included. Combine these files that are to be included into a variable, and then include all these files in one go. Signed-off-by: Sughosh Ganu <[email protected]> Reviewed-by: Tom Rini <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2023-08-09scripts: kconfig: Add config fragment support in board/../Jason Kacines
Add support to config fragments (.config) located in the /board directory. This will allow only base defconfigs to live in /configs and all fragments to live in their respective device directory in /board/.. Signed-off-by: Jason Kacines <[email protected]>
2023-05-31scripts/Makefile.lib: change spelling of $(srctree)/arch/$(ARCH)/dts in ↵Rasmus Villemoes
dtc_cpp_flags Currently, all in-tree .dts files (apart from some under test/ and tools/), reside in arch/$ARCH/dts. However, in the linux kernel tree, dts files for arm64 boards, and probably in the not too distant future [1], arm boards as well, live in subdirectories of that. For private forks, using a vendor or project subdirectory is also more convenient to clearly separate private code from upstream - in the same way that code under board/ is also split and easy to maintain. In order to prepare for us to follow suit and do the splitting of the in-tree .dts files, and to make life a little easier for private forks that already place dts files not directly in arch/$ARCH/dts, change the $(srctree)/arch/$(ARCH)/dts path to instead refer to the directory of the .dts file being compiled. This should be a no-op for all existing cases. [1] https://lore.kernel.org/lkml/[email protected]/ Signed-off-by: Rasmus Villemoes <[email protected]>
2023-05-15kbuild: Allow DTB overlays to built from .dtso named source filesRasmus Villemoes
[Linux commit 363547d2191c] Currently DTB Overlays (.dtbo) are build from source files with the same extension (.dts) as the base DTs (.dtb). This may become confusing and even lead to wrong results. For example, a composite DTB (created from a base DTB and a set of overlays) might have the same name as one of the overlays that create it. Different files should be generated from differently named sources. .dtb <-> .dts .dtbo <-> .dtso We do not remove the ability to compile DTBO files from .dts files here, only add a new rule allowing the .dtso file name. The current .dts named overlays can be renamed with time. After all have been renamed we can remove the other rule. [Import notes: Adapt to U-Boot by using the cmd_dtco function instead of cmd_dtc just like the current .dts -> .dtbo rule.] Signed-off-by: Rasmus Villemoes <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-05-15kbuild: add dtc as dependency on .dtb filesRasmus Villemoes
[Linux commit b8fc5b2157b1] If dtc is rebuilt, we should rebuild .dtb files with the new dtc. [Import notes: Back then there was no .dtbo rule in Linux's Makefile.lib, but the current .dtbo rules in Linux also have the $(DTC) dependency, so also add it to our .dtbo rule.] Signed-off-by: Rasmus Villemoes <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-05-15scripts/Makefile.dts: tweak logic for deciding which dtbs to buildRasmus Villemoes
The idea in 3609e1dc5f4d (dts: automatically build necessary .dtb files) was fine, but the implementation was suboptimal due to some misunderstandings on my part (and possibly defects in some defconfig files): - Sometimes DEFAULT_DEVICE_TREE is not included in OF_LIST or SPL_OF_LIST - SPL_OF_LIST is not always a subset of OF_LIST - While SPL_OF_LIST governs the list of dtbs relevant to SPL (i.e., may be built into an SPL-with-bunch-of-dtbs-to-choose-between-at-runtime), those dtbs are not actually _built_ during the SPL build phase, i.e. when $(SPL_) would expand to SPL_. fdtgrep runs on the artifacts produced during the ordinary U-Boot build. Tweak the logic so that we simply add the union of all dtbs mentioned in either DEFAULT_DEVICE_TREE, OF_LIST and SPL_OF_LIST to dtb-y. That should, for real, ensure that we always build all the dtbs that is relevant to the current board, and should in turn enable us to massively simplify arch/*/dts/Makefile. Signed-off-by: Rasmus Villemoes <[email protected]> Tested-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-05-15scripts: dtc-version: support git version strings tooMartin Hundebøll
Building dtc from git causes the version number to start with a 'v' (e.g. v1.7.0). printf then fails to parse 'v1' as a decimal value, and prints '000700' instead of '010700'. Subsequently, the build fails, because '000700' is less than the required '010400' version. Signed-off-by: Martin Hundebøll <[email protected]>
2023-03-25efI: Allow packaging a kernel in the debugging scriptSimon Glass
Add an option to package a kernel into the debugging script used for EFI. The name of the kernel must be added to the script. By default it is assumed that the kernel is built in the /tmp/kernel directory. Signed-off-by: Simon Glass <[email protected]>
2023-03-14Merge tag 'v2023.04-rc4' into nextTom Rini
Prepare v2023.04-rc4 Signed-off-by: Tom Rini <[email protected]>
2023-03-13efi: Adjust script to show pre-relocation output on terminalSimon Glass
When running with video enabled, the pre-relocation output of U-Boot is currently lost. Add a -serial flag to show it on the terminal. Signed-off-by: Simon Glass <[email protected]>
2023-03-08script: Add a script to build a PyPi packageSimon Glass
Create a script which can package a tool for use with PyPi and the 'pip' tool. This involves quite a few steps so is best automated. Future work will enable use of this for some of the tools in U-Boot. Signed-off-by: Simon Glass <[email protected]>
2023-03-08patman: Move library functions into a library directorySimon Glass
The patman directory has a number of modules which are used by other tools in U-Boot. This makes it hard to package the tools using pypi since the common files must be copied along with the tool that uses them. To address this, move these files into a new u_boot_pylib library. This can be packaged separately and listed as a dependency of each tool. Signed-off-by: Simon Glass <[email protected]>
2023-03-01RFC: tools: Add a camel-case conversion scriptSimon Glass
This is only for posterity, since once the conversion is done, the script is of no use. Signed-off-by: Simon Glass <[email protected]>
2023-02-14checkpatch: Add a warning for pre-schema driver model tagsSimon Glass
Help ensure that these don't creep into development by adding a check in checkpatch for them. 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-01-11Use `grep -E` or plain `grep` instead of `egrep`Ville Skyttä
`egrep` has been deprecated in GNU grep since 2007, and since 3.8 it emits obsolescence warnings: https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 Acked-by: Dhruva Gole <[email protected]>
2023-01-09Merge branch 'next'Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2023-01-07pylibfdt: Allow version normalization to failTom Rini
In some cases, we might not have the sic portion of setuputils available. Make our import and use of this be done in try/except blocks as this is done to suppress a run-time warning that is otherwise non-fatal. Reported-by: Pali Rohár <[email protected]> Fixes: 141659187667 ("pylibfdt: Fix disable version normalization") Signed-off-by: Tom Rini <[email protected]>
2023-01-06pylibfdt: Fix disable version normalizationPhilippe Schenker
On Arch Linux based systems python setuptools does not contain "setuptools.extern" hence it is failing with the following error-message: " ModuleNotFoundError: No module named 'setuptools.extern' " According to a eschwartz `setuptools.extern` is not a public API and shall not be assumed to be present in the setuptools package. He mentions that the setuptools project anyway wants to drop this. [1] Use the correct solution introduced by python setuptools developers to disable normalization. [2] [1] https://bbs.archlinux.org/viewtopic.php?id=259608 [2] https://github.com/pypa/setuptools/pull/2026 Fixes: 440098c42e73 ("pylibfdt: Fix version normalization warning") Signed-off-by: Philippe Schenker <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-23kbuild: Remove checking for adhoc CONFIG symbolsTom Rini
At this point all listed adhoc CONFIG symbols have been migrated to Kconfig or removed from the tree or renamed to CFG (or similar). We also now have CI tests that will error on any new introductions, and checkpatch.pl also looks. We can now remove these hooks and related scripts. Signed-off-by: Tom Rini <[email protected]>
2022-12-23checkpatch.pl: Update CONFIG logic in U-Boot sectionTom Rini
Now that all CONFIG symbols are in Kconfig, checkpatch.pl should check for and error on any case of define/undef CONFIG_*. Signed-off-by: Tom Rini <[email protected]>
2022-12-23kbuild: Remove uncmd_spl logicTom Rini
At this point in the conversion there should be no need to have logic to disable some symbol during the SPL build as all symbols should have an SPL counterpart. The main real changes done here are that we now must make proper use of CONFIG_IS_ENABLED(DM_SERIAL) rather than many of the odd tricks we developed prior to CONFIG_IS_ENABLED() being available. Signed-off-by: Tom Rini <[email protected]>
2022-12-23global: Migrate CONFIG_BOARDDIR to CFGTom Rini
Perform a simple rename of CONFIG_BOARDDIR to CFG_BOARDDIR Signed-off-by: Tom Rini <[email protected]>
2022-12-22pylibfdt: Fix version normalization warningMarek Vasut
Fix the following version normalization warning: " /usr/lib/python3/dist-packages/setuptools/dist.py:530: UserWarning: Normalizing '2023.01' to '2023.1' " Using suggestion from Richard Jones: https://github.com/pypa/setuptools/issues/308#issuecomment-405817468 Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-21Merge tag 'v2023.01-rc4' into nextTom Rini
Prepare v2023.01-rc4 Signed-off-by: Tom Rini <[email protected]>