aboutsummaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)AuthorFilesLines
2024-01-05fw_env: autodetect NAND erase size and env sectorsWIP/2024-01-05-fw_env-fixesAnthony Loiseau2-2/+12
As already done for NOR chips, if device ESIZE and ENVSECTORS static configurations are both zero, then autodetect them at runtime. Cc: Joe Hershberger <joe.hershberger@ni.com> cc: Stefan Agner <stefan@agner.ch> cc: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Anthony Loiseau <anthony.loiseau@allcircuits.com>
2024-01-05fw_env: keep calling read() until whole flash block is readRafał Miłecki1-19/+15
It's totally valid for read() to provide less bytes than requested maximum. It may happen if there is no more data available yet or source pushes data in small chunks. This actually happens when trying to read env data from NVMEM device. Kernel may provide NVMEM content in page size parts (like 4096 B). This fixes warnings like: Warning on /sys/bus/nvmem/devices/u-boot-env0/nvmem: Attempted to read 16384 bytes but got 4096 Warning on /sys/bus/nvmem/devices/u-boot-env0/nvmem: Attempted to read 12288 bytes but got 4096 Warning on /sys/bus/nvmem/devices/u-boot-env0/nvmem: Attempted to read 8192 bytes but got 4096 Since the main loop in flash_read_buf() is used to read blocks this patch adds a new nested one. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-01-05fw_env: rename variables holding env data contentRafał Miłecki1-21/+18
Rename "addr0" and "addr1" to "buf0" and "buf1" accordingly. Name "addr" suggests that variable contains a numeric value being some kind of address. Name "buf" is de facto a standard name for pointer to allocated memory for reading data to. While at it drop redundant checks for NULL before calling free(). Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-01-05fw_env: fix reading NVMEM device's "compatible" valueRafał Miłecki1-4/+14
Call to fread() was changed to check for return value. The problem is it can't be checked for returning 1 (as it is) to determine success. We call fread() with buffer size as "size" argument. Reading any "compatible" value shorter than buffer size will result in returning 0 even on success. Modify code to use fstat() to determine expected read length. This fixes regression that broke using fw_env with NVMEM devices. Fixes: c059a22b7776 ("tools: env: fw_env: Fix unused-result warning") Cc: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-01-04Merge patch series "ATF and OP-TEE Firewalling for K3 devices."WIP/04Jan2024-nextTom Rini7-4/+192
Manorit Chawdhry <m-chawdhry@ti.com> says: K3 devices have firewalls that are used to prevent illegal accesses to memory regions that are deemed secure. The series prevents the illegal accesses to ATF and OP-TEE regions that are present in different K3 devices. AM62X, AM62AX and AM64X are currently in hold due to some firewall configurations that our System Controller (TIFS) needs to handle. The devices that are not configured with the firewalling nodes will not be affected and can continue to work fine until the firewall nodes are added so will be a non-blocking merge. Test Logs: https://gist.github.com/manorit2001/4cead2fb3a19eb5d19005b3f54682627 CICD Run: https://github.com/u-boot/u-boot/pull/442
2024-01-04binman: ftest: Add test for ti-secure firewall nodeManorit Chawdhry3-0/+79
Add test for TI firewalling node in ti-secure. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-01-04binman: ti-secure: Add support for firewalling entitiesManorit Chawdhry3-3/+112
We can now firewall entities while loading them through our secure entity TIFS, the required information should be present in the certificate that is being parsed by TIFS. The following commit adds the support to enable the certificates to be generated if the firewall configurations are present in the binman dtsi nodes. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-01-04dtoc: Change dst to self in debug messageManorit Chawdhry1-1/+1
Fix the error message to not use dst and use self as it is copying the properties to self. While using templating if there are no subnodes defined, we end up in this situation where "dst" isn't defined and it tries to print the error message and fails. 'UnboundLocalError: local variable 'dst' referenced before assignment' Fixes: 55e1278d5eca ("dtoc: Allow inserting a list of nodes into another") Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-31fdtgrep: Allow propagating properties up to supernodesSimon Glass1-1/+17
The existing bootph binding is defined such that properties in a subnode are also implied in the supernode also, as in this example: buttons { /* bootph,pre-ram is implied by btn1 */ compatible = "gpio-keys"; btn1 { bootph,pre-ram; gpios = <&gpio_a 3 0>; label = "button1"; linux,code = <BTN_1>; }; Provide an option to implement this in fdtgrep. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-31fdtgrep: Move property checking into a functionSimon Glass1-13/+35
The h_include() function includes a piece which checks if a node contains a property being searched for. Move this into its own function to reduce the size of the h_include() function. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-31fdtgrep: Simplify code to inverting the matchSimon Glass1-8/+2
The code to invert the match in h_include() is a bit convoluted. Simplify it by using disp->invert only once. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-31fdtgrep: Tidy up comment for h_include()Simon Glass1-3/+9
Copy the comment from fdt_first_region() so that it is clear what value this function returns. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-31fdtgrep: Correct references to fdt_find_regions()Simon Glass1-3/+3
The function name is actually fdtgrep_find_regions() so update the name in comments accordinging. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-31fdtgrep: Correct ordering of flagsSimon Glass1-7/+7
Two of the flags are out of order, so fix this. Also adjust the ordering of one flag in the main switch() Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-31fdtgrep: Tidy up a few type warnings and commentsSimon Glass1-9/+10
Align the code with the upstream version at fdt-tools which had a few tweaks before being applied. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-31binman: used-before-assignment in ftest.pyHeinrich Schuchardt1-5/+15
Pytest 7.4.3 complains if a variable is used in a finally clause without having been initialized before the try clause. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-31buildman: type cotainingHeinrich Schuchardt1-1/+1
%s/cotaining/containing/ Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-21global: Restrict use of '#include <linux/kconfig.h>'Tom Rini1-1/+0
In general terms, we -include include/linux/kconfig.h and so normal U-Boot code does not need to also #include it. However, for code which is shared with userspace we may need to add it so that either our full config is available or so that macros such as CONFIG_IS_ENABLED() can be evaluated. In this case make sure that we guard these includes with a test for USE_HOSTCC so that it clear as to why we're doing this. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com>
2023-12-15board: stm32f469-disco: add splash screen with stmicroelectronics logoDario Binacchi1-0/+0
Display the STMicroelectronics logo with features VIDEO_LOGO and SPLASH_SCREEN on stm32f469-disco board. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-14Merge tag 'u-boot-imx-next-20231214' of ↵Tom Rini1-1/+1
https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next - Add TPM support for venice boards - Add networking support for imx93-evk - Enable TCP, IPv6, wget for DHCOM and Data Modul boards - Enable fastboot support for Toradex boards - Allow pico-imx7d to boot from SD - Enable fastboot for beacon imx8m beacon boards, disabled SYS_CONSOLE_IS_IN_ENV - Fix mxsboot to prevent NAND blocks being reported as bad - Add imx8mm PWM clock support - Several devicetree syncs with the kernel - Add support for i.MX8MP Polyhex Debix Model A SBC - Reworked ddr_load_train_firmware() to get a 50ms boot time improvement
2023-12-13binman: elf: Using variable 'old_val' before assignmentHeinrich Schuchardt1-4/+4
old_val can only be assumed initialized in the finally block if it is assigned a value before the try statement. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13binman: etype: dm: Add entry type for TI DMNeha Malcom Francis4-0/+56
K3 devices introduces the concept of centralized power, resource and security management to System Firmware. This is to overcome challenges by the traditional approach that implements system control functions on each of the processing units. The software interface for System Firmware is split into TIFS and DM. DM (Device Manager) is responsible for resource and power management from secure and non-secure hosts. This additional binary is necessary for specific platforms' ROM boot images and is to be packaged into tispl.bin Add an entry for DM. The entry can be used for the packaging of tispl.bin by binman along with ATF and TEE. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Andrew Davis <afd@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13binman: doc: fix typoDario Binacchi1-1/+1
s/use set/set/ Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-By: Michael Trimarchi <michael@amarulasolutions.com>
2023-12-13tools: Move python tools to version 0.0.6Simon Glass5-9/+9
A new release has been done with this version, so update it. Use the version numbers in dependencies also. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13patman: Update the run scriptSimon Glass1-1/+1
Patman now has its main program in a function, so update the toml file to match. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13u_boot_pylib: Correct files used for pip releaseSimon Glass1-3/+2
The files list is incorrect and dates from a time when the script was run from a different directory. Update it to match all the other tools. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13u_boot_pylib: Correct readme formattingSimon Glass1-1/+1
Correct a heading which is too short in the readme. Fixes: 75554dfac29 ("patman: Add support for building a u_boot_tools...") Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13doc: Update documentation URLSimon Glass5-5/+5
Update to use the new docs.u-boot.org URL for documentation. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13tools: mxsboot: pre-fill buffer with 0xff, not 0Alessandro Rubini1-1/+1
The tool works for me, with imx28 and NAND memory, but the resulting blocks are reported as bad, both by u-boot and the kernel. This makes it impossible to erase from Linux (for an upgrade without console access, for example -- u-boot can "nand scrub" but linux can't). pre-filling with 0xff creates a proper boot loader image, but no bad-block marker is there when written to flash. Signed-off-by: Alessandro Rubini <rubini@gnudd.com> Reviewed-by: Fabio Estevam <festevam@gmail.com> Reviewed-by: Marek Vasut <marex@denx.de>
2023-11-30Merge branch 'staging' of ↵Tom Rini1-1/+2
https://source.denx.de/u-boot/custodians/u-boot-tegra into next Device tree improvents for Paz00 and DM PMIC convertion of recently merged Tegra boards.
2023-11-20mkimage: do not write incorrect error messageHeinrich Schuchardt1-1/+2
When running 'mkimage -l' is called for a valid StarFive file an error message "Error: invalid marker bytes" is written by the Renesas SPKG driver. mkimage -l may be invoked without specifying an image type. In this case mkimage iterates over all image type drivers to find the one that matches. None of the non-matching drivers should write an error message. Fix the Renesas SPKG driver. Fixes: afdfcb11f97c ("tools: spkgimage: add Renesas SPKG format") Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-11-20Merge tag 'v2024.01-rc3' into nextTom Rini4-181/+224
Prepare v2024.01-rc3
2023-11-14patman: Correct Python 3.6 behaviourSimon Glass1-3/+3
The importlib_resources import is not actually used. Fix this so that patman can run on Python 3.6 to some extent, once 'pip3 install importlib-resources' has been run. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-14patman: Avoid using func_test at top levelSimon Glass1-1/+0
Import this only when it is needed, since it is not present when installed via 'pip install'. Signed-off-by: Simon Glass <sjg@chromium.org> Fixes: https://source.denx.de/u-boot/u-boot/-/issues/26
2023-11-14patman: Correct easy pylint warnings in __main__Simon Glass1-16/+16
Tidy up the code a little to reduce the number of pylint warnings. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-14patman: Move the main program into a functionSimon Glass1-60/+67
Add a new run_patman() function to hold the main logic. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-14patman: Split out arg parsing into its own fileSimon Glass2-113/+150
Move this code into a separate cmdline module, as is done with the other tools. Use the same HAS_TESTS check as buildman Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-11doc: shorten overlong title underlinesHeinrich Schuchardt1-1/+1
Title underlines should match the length of the title. Unfortunately docutils only catches underlines that are too short. Add some missing empty lines after titles. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-11-10tools: gitignore: Fix tools/generated pathSam Protsenko1-1/+1
'git status' shows 'tools/generated/' after running the build, which is wrong. The corresponding .gitignore rule was already added in commit c623642d29be ("Adjust gitignore for tools/generated/"), but because of superfluous 'tools/' part it wasn't in effect. Remove incorrect 'tools/' part to fix it. While at it, remove tools/ path incorrectly added to the top-level .gitignore in commit 801c482207c7 (".gitignore: ignore misc include, simple-bin, and tools/generated build artifacts"), as it's required in the comment on the top of .gitignore: # NOTE! Don't add files that are generated in specific # subdirectories here. Add them in the ".gitignore" file # in that subdirectory instead. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Fixes: c623642d29be ("Adjust gitignore for tools/generated/") Fixes: 801c482207c7 (".gitignore: ignore misc include, simple-bin, and tools/generated build artifacts")
2023-11-07buildman: Use oldconfig when adjusting the configSimon Glass3-2/+10
We cannot be sure that the new config is consistent, particularly when changing a major item like CONFIG_CMDLINE. Use 'make oldconfig' to check that and avoid any such problems. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-02u_boot_pylib: Ensure subprocess is closed downSimon Glass1-3/+1
It isn't clear why we need to have two different paths for closing down the pipe. Unify them and use the Python to avoid this warning: subprocess.py:1127: ResourceWarning: subprocess 83531 is still running Note that this code appears to originally have come from [1] and was committed into the ChromeOS chromiumos/platform/crosutils repo in the bin/cros_image_to_target.py file. The addition of the extra code path came later, so that is chosen for the fixes tag. [1] https://codereview.chromium.org/3391008 Signed-off-by: Simon Glass <sjg@chromium.org> Fixes: a10fd93cbc patman: Make command methods return a CommandResult
2023-11-02buildman: Support upstream branch name containing /Simon Glass1-2/+3
Buildman assumes that branch names do not have a slash in them, since slash is used to delimit remotes, etc. This means that a branch called 'WIP/tryme' in remote dm ends up being 'tryme'. Adjust the logic a little, to try to accommodate this. For now, no tests are added for this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-11-02binman: openssl: x509: ti_secure_rom: Add support for bootcore_optsNeha Malcom Francis5-5/+17
According to the TRMs of K3 platform of devices, the ROM boot image format specifies a "Core Options Field" that provides the capability to set the boot core in lockstep when set to 0 or to split mode when set to 2. Add support for providing the same from the binman DTS. Also modify existing test case for ensuring future coverage. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-11-02buildman: Include symbols in the read-only data sectionSimon Glass1-1/+5
When symbols switch between the inited data section and the read-only data section their visbility changes, at present, with the -B option. This is confusing, since adding 'const' to a variable declaration can make it look like a significant improvement in bloat. But in fact nothing has changed. Add 'r' to the list of symbols types that are recorded, to correct this problem. Add a constant to make it easier to find this code next time. Signed-off-by: Simon Glass <sjg@chromium.org> Reported-by: Tom Rini <trini@konsulko.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-11-02binman: Move stage header into a CBFS attributeSimon Glass2-29/+42
cbfsutil completely changed the way that stages are formatted in CBFS. Adjust the binman implementation to do the same. This mirrors commit 81dc20e744 in coreboot. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-02binman: Rename TYPE_STAGE to TYPE_LEGACY_STAGESimon Glass2-7/+8
In preparation for changing how stages are stored, rename the existing stage tag. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-02binman: Replace FILENAME_ALIGN 16 with ATTRIBUTE_ALIGN 4Simon Glass3-19/+20
cbfsutil changed to 4-byte alignment for filenames instead of 16. Adjust the binman implementation to do the same. This mirrors commit 5779ca718c in coreboot. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-02binman: Ensure attributes always come last in the metadataSimon Glass1-22/+24
cbfsutil changed to write zero bytes instead of 0xff when a small padding must be added. Adjust the binman implementation to do the same. Drop the code which looks for an unused attribute tag, since it is not used. A future patch moves the attributes to the end of the header in any case, so no data will follow the attributes. This mirrors commit f0cc7adb2f in coreboot. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-11-02binman: Don't add compression attribute for uncompressed filesSimon Glass3-12/+15
cbfsutil changed to skip adding a compression attribute if there is no compression. Adjust the binman implementation to do the same. This mirrors commit 105cdf5625 in coreboot. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2023-11-02binman: Reset missing bintools after testingSimon Glass1-0/+2
For tests which fake bintools being missing, we need to reset the list afterwards, to ensure that future tests do not also see the bintools as missing. Reset the list when processing is complete. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Neha Malcom Francis <n-francis@ti.com>