FIT allows the FDT's root-node compatible string to be placed in a
configuration node to simplify and speed up finding the best match for
booting.
Add a new property to support this.
Signed-off-by: Simon Glass <sjg@chromium.org>
In some cases the list of available FDT files is not available in an
entryarg. Provide an option to point to a directory containing them
instead.
Signed-off-by: Simon Glass <sjg@chromium.org>
FIT provides a way to select between different devicetree blobs
depending on the model. This works fine for U-Boot proper and allows SPL
to select the correct blob for the current board at runtime. The boot
sequence (SPL->U-Boot proper) is therefore covered by the existing
feature set.
The first boot phase (typically TPL) cannot use FIT since SoC boot ROMs
don't currently support it. Therefore the TPL image must be specific to
each model it boots on.
To support booting on mulitple models, binman must therefore produce a
separate TPL image for each model, even if the images for the rest of
the phases are identical.
TPL needs to be packaged as an executable binary along with a reduced
devicetree. When multiple models are supported, a reduced devicetree
must be provided for each model.
U-Boot's build system is designed to build a single devicetree for SPL
builds, so does not support this requirement.
Add a new 'alternatives' feature to Binman, allowing it to automatically
subset a devicetree to produce the reduced devicetree for a particular
phase for each supported model. With this it is possible to produce a
separate TPL image for each of the models. The correct one can then be
loaded onto a board, along with the common FIT image(s).
Signed-off-by: Simon Glass <sjg@chromium.org>
At present the contents of an FDT (for each phase) are fixed,
determined by the build and provided to Binman as input files.
Provide a means for entry types to provide their own FDT, so that it can
be processed, if needed.
Signed-off-by: Simon Glass <sjg@chromium.org>
Binman needs the ability to run fdtgrep to prepare devicetree subsets
for use by SPL and TPL. Add a new bintool in preparation for this.
Signed-off-by: Simon Glass <sjg@chromium.org>
This function has strange indentation. Fix it.
Fixes: 8c1fbd1f607 ("binman: ftest: Add test for u_boot_spl_pubkey_dtb")
Signed-off-by: Simon Glass <sjg@chromium.org>
Add a comment about this entry type being expanded, to match the comment
for SPL and TPL. Drop an unwanted line in the SPL and TPL docs while
here.
Signed-off-by: Simon Glass <sjg@chromium.org>
When an entry is compressed, write the compressed contents to a file so
that it is possible to see what was produced. This aids debugging with
new images.
Signed-off-by: Simon Glass <sjg@chromium.org>
When symbol-writing does not appear to work, it can sometimes be hard to
figure out what is going on. Add some more debugging to help.
Signed-off-by: Simon Glass <sjg@chromium.org>
Add a flag to output the found list in a more user-friendly format, with
one board per line. Omit the board count.
This can be useful with grep, for example.
Signed-off-by: Simon Glass <sjg@chromium.org>
There is no particular ordering of the board list at present, since it
is generated by a multi-threaded process. Sort them by name to make it
easier to see if a particular board is present.
Signed-off-by: Simon Glass <sjg@chromium.org>
When -x is used, buildman does not show the list of boards that will be
built, since there are no terms which cause boards to be added, only
terms which cause them to be removed.
Add a special case to fix this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com>
Add the STACKPROTECTOR symbols to the script that generates the
symbols that should not be removed by the use of LTO when linking
a shared object. This prevents a fail to build due to link errors.
https://source.denx.de/u-boot/u-boot/-/issues/35
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Update to a newer version of this tool, 4.22.01. This runs OK with the
current binman tests and matches the one in CI.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Installing patman with `cd ./tools/patman && pip install -e .` fails
with the error below.
As described in the error output below, the license line is not allowed
to be only defined in the setup.py. We remove the 'license' field
entirely, as the Python Packaging User Guide recommends using projects
classifiers instead[1] and we already set the GPL-2.0+ classifier.
> $ cd ./tools/patman && pip install -e .
> Obtaining file:///.../u-boot/tools/patman
> Installing build dependencies ... done
> Checking if build backend supports build_editable ... done
> Getting requirements to build editable ... error
> error: subprocess-exited-with-error
>
> × Getting requirements to build editable did not run successfully.
> │ exit code: 1
> ╰─> [61 lines of output]
> /tmp/pip-build-env-mqjvnmz8/overlay/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py:76:
> _MissingDynamic: `license` defined outside of `pyproject.toml` is ignored.
> !!
>
> ********************************************************************************
> The following seems to be defined outside of `pyproject.toml`:
>
> `license = 'GPL-2.0+'`
>
> According to the spec (see the link below), however, setuptools CANNOT
> consider this value unless `license` is listed as `dynamic`.
>
> https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-project-metadata-the-project-table
>
> To prevent this problem, you can list `license` under `dynamic` or alternatively
> remove the `[project]` table from your file and rely entirely on other means of
> configuration.
> ********************************************************************************
>
> !!
[1] https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Put the check for an operation being provided into the parse_args()
function, to reduce the size of main().
Signed-off-by: Simon Glass <sjg@chromium.org>
Rather than create these outputs separately, put them in the class so
that the main program doesn't need to deal with them.
Signed-off-by: Simon Glass <sjg@chromium.org>
Return an exit code so we can use this function like do_tests().
Refactor the caller to handle this.
Reduce the size of main() by putting this code into its own function.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reduce the size of main() by putting this code into its own function,
with the usage message staying in main().
Tidy up the comments for do_imply_config() while we are here.
Signed-off-by: Simon Glass <sjg@chromium.org>
Return an exit code so we can use this function like do_tests().
Refactor the caller to handle this.
Reduce the size of main() by putting this code into its own function.
Signed-off-by: Simon Glass <sjg@chromium.org>
Move this check to the top, so it happens always. There is no harm to
doing this earlier and it separates the setup from actual program logic.
Update the arg rather than adding a new variable, with the new variable
only created when moving or building, since it is used more heavily.
Signed-off-by: Simon Glass <sjg@chromium.org>
Move this check to the top, so it happens always. The tool should be
run from the U-Boot source directory.
Signed-off-by: Simon Glass <sjg@chromium.org>
Check for 'test' as one of the possible operations for this tool,
moving the check above the implementation.
Signed-off-by: Simon Glass <sjg@chromium.org>
Check for scan_source as one of the possible operations for this tool,
moving the check above the scan_source implementation.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reduce the size of main() by putting this code into its own function.
For now the parser object needs to be returned too.
Signed-off-by: Simon Glass <sjg@chromium.org>
This was missed during the renaming of the tool. Fix it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: ea4d6dead37 ("moveconfig: Rename the tool to qconfig")
One of the strings was converted incorrectly. Fix it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 1bd43060b3e ("moveconfig: Use f strings where possible")
This doesn't have any methods so is not good as a class. Make it a
function instead, to keep pylint happy.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fix this error by initing the variable before the loop:
tools/qconfig.py:880:22: E0606: Possibly using variable 'defconfig'
before assignment (possibly-used-before-assignment)
Signed-off-by: Simon Glass <sjg@chromium.org>
* Qualcomm platforms >~2016 gain support for the RPMh (Resource Power Manager)
peripheral which is used to control most regulators. The RB5 is now able to
power up its USB VBUS regulator via the rpmh regulator driver. Git history
from the original Linux driver is preserved for ease of maintenance.
* IPQ40xx SoCs gain ethernet networking support via the new ESS EDMA driver.
IPQ4019 ESS EDMA support is not yet in upstream Linux, so for now lets use
the latest pending Linux DTS node for wired networking.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>