summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/.gitignore2
-rw-r--r--doc/CONTRIBUTE.rst76
-rw-r--r--doc/README.dfutftp2
-rw-r--r--doc/README.odroid2
-rw-r--r--doc/README.uniphier2
-rw-r--r--doc/README.update6
-rw-r--r--doc/api/bootcount.rst2
-rw-r--r--doc/board/beagle/am62x_beagleplay.rst3
-rw-r--r--doc/board/emulation/qemu-m68k.rst10
-rw-r--r--doc/board/index.rst1
-rw-r--r--doc/board/nxp/imx8mq_evk.rst4
-rw-r--r--doc/board/phytec/phycore-am62x.rst3
-rw-r--r--doc/board/qualcomm/board.rst2
-rw-r--r--doc/board/ti/am6254atl_sk.rst2
-rw-r--r--doc/board/ti/am62ax_sk.rst2
-rw-r--r--doc/board/ti/am62dx_evm.rst2
-rw-r--r--doc/board/ti/am62px_sk.rst8
-rw-r--r--doc/board/ti/am62x_sk.rst6
-rw-r--r--doc/board/ti/j784s4_evm.rst16
-rw-r--r--doc/board/toradex/index.rst1
-rw-r--r--doc/board/toradex/verdin-am62.rst3
-rw-r--r--doc/board/toradex/verdin-imx95.rst171
-rw-r--r--doc/board/tq/index.rst12
-rw-r--r--doc/board/tq/tqma7.rst77
-rw-r--r--doc/conf.py5
l---------doc/develop/package/bintools.rst1
l---------doc/develop/package/entries.rst1
-rw-r--r--doc/develop/package/index.rst2
-rw-r--r--doc/develop/release_cycle.rst32
-rw-r--r--doc/develop/statistics/u-boot-stats-v2026.04.rst800
-rw-r--r--doc/index.rst10
-rw-r--r--doc/sphinx/binman_docs.py207
-rw-r--r--doc/usage/cmd/pstore.rst4
-rw-r--r--doc/usage/fdt_overlays.rst4
-rw-r--r--doc/usage/fit/howto.rst4
-rw-r--r--doc/usage/fit/overlay-fdt-boot.rst8
36 files changed, 1431 insertions, 62 deletions
diff --git a/doc/.gitignore b/doc/.gitignore
index 53752db253e..7eeafcbf9fd 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1 +1,3 @@
output
+develop/package/entries.rst
+develop/package/bintools.rst
diff --git a/doc/CONTRIBUTE.rst b/doc/CONTRIBUTE.rst
new file mode 100644
index 00000000000..a47dfdca221
--- /dev/null
+++ b/doc/CONTRIBUTE.rst
@@ -0,0 +1,76 @@
+.. SPDX-License-Identifier: GPL-2.0+
+.. sectionauthor:: Peter Robinson <[email protected]>
+
+Contributing
+============
+
+This document is a high level contributors overview setting overall expectations,
+so people can get started quickly, the rest of the documentation goes into the
+details.
+
+Code of Conduct
+---------------
+
+The U-Boot project doesn't currently have an explicit code of conduct, but all
+contributors are expected to act cordially to, and be respectful of, each other's
+contributions and opinions. There are many code of conducts for open source
+projects available to review if you are unsure of expectations.
+
+Repository
+----------
+
+The official U-Boot repository is located at https://source.denx.de/u-boot/u-boot
+
+Further more detailed documentation can be found at the following link:
+https://docs.u-boot.org/en/latest/index.html
+
+Contributions
+-------------
+
+Contributions to the project are welcome. The U-Boot project uses a fairly
+traditional Linux style development work-flow using git and `a mailing list
+<https://lists.denx.de/listinfo/u-boot>`_.
+
+Patches should be sent to the mailing list using ``git send-email`` or the
+equivalent commands using ``b4`` or ``patman`` with appropriate sign-off and
+attributions for the code in question. Maintainers should be copied on mails
+and they can be found with the ``./scripts/get_maintainer.pl 0001-fix.patch``
+script. Please don't send patches as attachments, and ensure corporate mail
+systems don't reformat patches, append disclaimers or other unnecessary notes.
+The b4 tool automates a number of components mentioned above.
+
+Patch Series
+------------
+
+Patch series for a specific subject are welcome but they should be constrained
+to a single topic with a cover letter outlining the intention of the series.
+Each patch within the series should cover a single change, be self contained,
+not break the build or cause a regression.
+
+Generally bug fixes for existing bugs should be at the beginning of the
+series before any enhancements to allow those patches to be picked up early.
+
+Each iteration of a patch set should be versioned, allow enough time for people
+to review previous versions of the series and incorporate all the review
+feedback before sending a new version. A week between larger patch sets is
+considered as reasonable amount of time.
+
+Development Branches
+--------------------
+
+The U-Boot developers use two main branches for developing the code. The master
+branch is used for the current development cycle, while there is also a next
+branch intended to land changes for the next release early to enable wider
+testing of larger code changes. The next branch is merged to master shortly
+after the tagging of a new major release.
+
+Similar to Linux there is a three week merge window post release after which a
+release candidate is tagged. There's typically a new release candidate every
+two weeks post merge window until the stable generally available release.
+
+Release Schedule
+----------------
+
+There is currently four major releases a year in January (.01), April (.04),
+July (.07) and October (.10). These typically happen on the first Monday of
+that month. There is currently no release branches or long term releases.
diff --git a/doc/README.dfutftp b/doc/README.dfutftp
index 12065079117..b25f398ee2e 100644
--- a/doc/README.dfutftp
+++ b/doc/README.dfutftp
@@ -94,7 +94,7 @@ FIT image format for download
To create FIT image for download one should follow the update tftp README file
(./doc/README.update) with one notable difference:
-The original snippet of ./doc/uImage.FIT/update_uboot.its
+The original snippet of ./doc/usage/fit/update_uboot.rst
images {
update@1 {
diff --git a/doc/README.odroid b/doc/README.odroid
index 1090a0ea141..6eb7e67474d 100644
--- a/doc/README.odroid
+++ b/doc/README.odroid
@@ -152,7 +152,7 @@ Two for both, kernel with device tree support and also without it:
If proper fdt file exists then it will be automatically loaded,
so for old kernel types, please remove fdt file from boot partition.
-The third boot option for multi image support (more info: doc/uImage.FIT/)
+The third boot option for multi image support (more info: doc/usage/fit/)
- boot_fit - for binary file: "Image.itb"
Default boot command: "autoboot"
diff --git a/doc/README.uniphier b/doc/README.uniphier
index 9f72cfa67b5..6f373aa2a6c 100644
--- a/doc/README.uniphier
+++ b/doc/README.uniphier
@@ -112,7 +112,7 @@ Verified Boot
U-Boot supports an image verification method called "Verified Boot".
This is a brief tutorial to utilize this feature for the UniPhier platform.
-You will find details documents in the doc/uImage.FIT directory.
+You will find details documents in the doc/usage/fit directory.
Here, we take LD20 reference board for example, but it should work for any
other boards including 32 bit SoCs.
diff --git a/doc/README.update b/doc/README.update
index bf4379279e2..f16b2d23af1 100644
--- a/doc/README.update
+++ b/doc/README.update
@@ -48,14 +48,14 @@ The auto-update feature uses the following configuration knobs:
Since the update file is in FIT format, it is created from an *.its file using
the mkimage tool. dtc tool with support for binary includes, e.g. in version
1.2.0 or later, must also be available on the system where the update file is
-to be prepared. Refer to the doc/uImage.FIT/ directory for more details on FIT
+to be prepared. Refer to the doc/usage/fit/ directory for more details on FIT
images.
Example .its files
------------------
-- doc/uImage.FIT/update_uboot.its
+- doc/usage/fit/update_uboot.rst
A simple example that can be used to create an update file for automatically
replacing U-Boot image on a system.
@@ -83,7 +83,7 @@ Example .its files
where the update will be placed is correct. Making mistake here and
attempting the auto-update can render the system unusable.
-- doc/uImage.FIT/update3.its
+- doc/usage/fit/update3.rst
An example containing three updates. It can be used to update Linux kernel,
ramdisk and FDT blob stored in Flash. The procedure for preparing the update
diff --git a/doc/api/bootcount.rst b/doc/api/bootcount.rst
index 968c679c3c6..f3c10bbe724 100644
--- a/doc/api/bootcount.rst
+++ b/doc/api/bootcount.rst
@@ -8,7 +8,7 @@ This is enabled by CONFIG_BOOTCOUNT_LIMIT.
This allows to detect multiple failed attempts to boot Linux.
After a power-on reset, the ``bootcount`` variable will be initialized to 1, and
-each reboot will increment the value by 1.
+when ``upgrade_available`` is non-zero, each reboot will increment the value by 1.
If, after a reboot, the new value of ``bootcount`` exceeds the value of
``bootlimit``, then instead of the standard boot action (executing the contents
diff --git a/doc/board/beagle/am62x_beagleplay.rst b/doc/board/beagle/am62x_beagleplay.rst
index bc71aabaac3..64a05549caf 100644
--- a/doc/board/beagle/am62x_beagleplay.rst
+++ b/doc/board/beagle/am62x_beagleplay.rst
@@ -67,7 +67,8 @@ Set the variables corresponding to this platform:
# we dont use any extra TFA parameters
unset TFA_EXTRA_ARGS
export OPTEE_PLATFORM=k3-am62x
- export OPTEE_EXTRA_ARGS="CFG_WITH_SOFTWARE_PRNG=y"
+ # we dont use any extra OPTEE parameters
+ unset OPTEE_EXTRA_ARGS
.. include:: ../ti/am62x_sk.rst
:start-after: .. am62x_evm_rst_include_start_build_steps
diff --git a/doc/board/emulation/qemu-m68k.rst b/doc/board/emulation/qemu-m68k.rst
index 6c4de54cf6a..2f2e6bd6444 100644
--- a/doc/board/emulation/qemu-m68k.rst
+++ b/doc/board/emulation/qemu-m68k.rst
@@ -31,6 +31,16 @@ The minimal QEMU command line to get U-Boot up and running is:
Note that the `-nographic` option is used to redirect the console to stdio,
which connects to the emulated Goldfish TTY device.
+Debugging U-Boot
+----------------
+
+If you need early debugging output enable `CONFIG_DEBUG_UART_GOLDFISH`.
+The base address for the UART can be found by activating the QEMU monitor,
+running `info qtree`, and then looking for the goldfish tty device and
+taking the mmio address.
+
+Baud rate doesn't matter.
+
Hardware Support
----------------
The following QEMU virt peripherals are supported in U-Boot:
diff --git a/doc/board/index.rst b/doc/board/index.rst
index 7870f1bc246..fcb4224bae3 100644
--- a/doc/board/index.rst
+++ b/doc/board/index.rst
@@ -71,6 +71,7 @@ Board-specific doc
theobroma-systems/index
ti/index
toradex/index
+ tq/index
variscite/index
wexler/index
xen/index
diff --git a/doc/board/nxp/imx8mq_evk.rst b/doc/board/nxp/imx8mq_evk.rst
index 4b0624e7e86..4a9d9e404c5 100644
--- a/doc/board/nxp/imx8mq_evk.rst
+++ b/doc/board/nxp/imx8mq_evk.rst
@@ -45,11 +45,11 @@ Build U-Boot
$ make imx8mq_evk_defconfig
$ make
-Burn the flash.bin to MicroSD card offset 33KB:
+Burn the flash.bin to MicroSD card offset 32KB:
.. code-block:: bash
- $sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=33 conv=notrunc
+ $sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32 conv=notrunc
Boot
----
diff --git a/doc/board/phytec/phycore-am62x.rst b/doc/board/phytec/phycore-am62x.rst
index 36315b49931..bd61d0c16cf 100644
--- a/doc/board/phytec/phycore-am62x.rst
+++ b/doc/board/phytec/phycore-am62x.rst
@@ -60,7 +60,8 @@ Set the variables corresponding to this platform:
$ # we don't use any extra TFA parameters
$ unset TFA_EXTRA_ARGS
$ export OPTEE_PLATFORM=k3-am62x
- $ export OPTEE_EXTRA_ARGS="CFG_WITH_SOFTWARE_PRNG=y"
+ $ # we dont use any extra OPTEE parameters
+ $ unset OPTEE_EXTRA_ARGS
.. include:: ../ti/am62x_sk.rst
:start-after: .. am62x_evm_rst_include_start_build_steps
diff --git a/doc/board/qualcomm/board.rst b/doc/board/qualcomm/board.rst
index e5dbc9816b9..eb800f8c535 100644
--- a/doc/board/qualcomm/board.rst
+++ b/doc/board/qualcomm/board.rst
@@ -27,7 +27,7 @@ We will build ``u-boot-nodtb.bin`` from the u-boot source tree.
Generate FIT image (optional)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-See doc/uImage.FIT for more details
+See doc/usage/fit for more details
Pack android boot image
^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/doc/board/ti/am6254atl_sk.rst b/doc/board/ti/am6254atl_sk.rst
index 7776ffb14cb..18a3520b39c 100644
--- a/doc/board/ti/am6254atl_sk.rst
+++ b/doc/board/ti/am6254atl_sk.rst
@@ -236,7 +236,7 @@ https://www.ti.com/lit/pdf/spruiv7 under the `Boot Mode Pins` section.
* - Switch Label
- SW2: 12345678
- - SW3: 12345678
+ - SW1: 12345678
* - SD
- 01000000
diff --git a/doc/board/ti/am62ax_sk.rst b/doc/board/ti/am62ax_sk.rst
index 8eeb90a271b..6f3432f7895 100644
--- a/doc/board/ti/am62ax_sk.rst
+++ b/doc/board/ti/am62ax_sk.rst
@@ -162,8 +162,8 @@ https://www.ti.com/lit/pdf/spruj16 under the `Boot Mode Pins` section.
:header-rows: 1
* - Switch Label
- - SW2: 12345678
- SW3: 12345678
+ - SW2: 12345678
* - SD
- 01000000
diff --git a/doc/board/ti/am62dx_evm.rst b/doc/board/ti/am62dx_evm.rst
index 2d66241ce68..0d12e3ec147 100644
--- a/doc/board/ti/am62dx_evm.rst
+++ b/doc/board/ti/am62dx_evm.rst
@@ -173,8 +173,8 @@ https://www.ti.com/lit/pdf/sprujd4 under the `Boot Mode Pins` section.
:header-rows: 1
* - Switch Label
+ - SW1: 12345678
- SW2: 12345678
- - SW3: 12345678
* - SD
- 01000000
diff --git a/doc/board/ti/am62px_sk.rst b/doc/board/ti/am62px_sk.rst
index da70cd58095..44dae4afc87 100644
--- a/doc/board/ti/am62px_sk.rst
+++ b/doc/board/ti/am62px_sk.rst
@@ -99,7 +99,9 @@ Set the variables corresponding to this platform:
# we dont use any extra TFA parameters
unset TFA_EXTRA_ARGS
export OPTEE_PLATFORM=k3-am62x
- export OPTEE_EXTRA_ARGS="CFG_WITH_SOFTWARE_PRNG=y"
+ # we dont use any extra OPTEE parameters
+ unset OPTEE_EXTRA_ARGS
+
.. am62px_evm_rst_include_start_build_steps
@@ -265,8 +267,8 @@ https://www.ti.com/lit/pdf/spruj83 under the `Boot Mode Pins` section.
:header-rows: 1
* - Switch Label
- - SW2: 12345678
- - SW3: 12345678
+ - SW5: 12345678
+ - SW4: 12345678
* - SD
- 01000000
diff --git a/doc/board/ti/am62x_sk.rst b/doc/board/ti/am62x_sk.rst
index b50fff87506..ef9425035cb 100644
--- a/doc/board/ti/am62x_sk.rst
+++ b/doc/board/ti/am62x_sk.rst
@@ -87,8 +87,8 @@ Set the variables corresponding to this platform:
export TFA_BOARD=lite
# we dont use any extra TFA parameters
unset TFA_EXTRA_ARGS
- export OPTEE_PLATFORM=k3-am62x
- export OPTEE_EXTRA_ARGS="CFG_WITH_SOFTWARE_PRNG=y"
+ # we dont use any extra OPTEE parameters
+ unset OPTEE_EXTRA_ARGS
.. am62x_evm_rst_include_start_build_steps
@@ -283,7 +283,7 @@ https://www.ti.com/lit/pdf/spruiv7 under the `Boot Mode Pins` section.
* - Switch Label
- SW2: 12345678
- - SW3: 12345678
+ - SW1: 12345678
* - SD
- 01000000
diff --git a/doc/board/ti/j784s4_evm.rst b/doc/board/ti/j784s4_evm.rst
index fb767bedbf6..ec82228ab90 100644
--- a/doc/board/ti/j784s4_evm.rst
+++ b/doc/board/ti/j784s4_evm.rst
@@ -456,12 +456,12 @@ The following steps describe the process of booting J784S4-EVM over PCIe:
0000:01:00.1 Non-VGA unclassified device: Texas Instruments Device 0100
0000:01:00.2 Non-VGA unclassified device: Texas Instruments Device 0100
-4. Copy ``tiboot3.bin`` to the endpoint. Use ``lspci -vv`` to identify the BAR
- address:
+4. Copy ``tiboot3.bin`` to BAR1 of Physical Function Zero of the endpoint:
.. prompt:: bash
- sudo ./pcie_boot_util 0x4007100000 tiboot3.bin
+ tiboot3_bar_address="0x$(lspci -D -nnvv | awk '/^[0-9a-fA-F]{4}:/ {bdf=$1; ram=($0 ~ /RAM memory/ || $0 ~ /Memory controller/)} ram && /Region [1]+:/ {print bdf, $0}' | cut -d ' ' -f 6)"
+ sudo ./pcie_boot_util ${tiboot3_bar_address} tiboot3.bin
The sample program automatically writes the image start address to
``0x41CF3FE0`` and the magic word ``0xB17CEAD9`` to ``0x41CF3FE4``.
@@ -491,11 +491,12 @@ The following steps describe the process of booting J784S4-EVM over PCIe:
(with appropriate DOMAIN:BUS:DEVICE.FUNCTION corresponding to the Endpoint) to enable
the BAR.
-6. Copy ``tispl.bin`` to the new BAR address (use ``lspci -vv`` to find):
+6. Copy ``tispl.bin`` to BAR0 of Physical Function Zero of the endpoint:
.. prompt:: bash
- sudo ./pcie_boot_util 0x4000400000 tispl.bin
+ tispl_bar_address="0x$(lspci -D -nnvv | awk '/^[0-9a-fA-F]{4}:/ {bdf=$1; ram=($0 ~ /RAM memory/ || $0 ~ /Memory controller/)} ram && /Region [0]+:/ {print bdf, $0}' | head -n1 | cut -d ' ' -f 6)"
+ sudo ./pcie_boot_util ${tispl_bar_address} tispl.bin
7. After ``tispl.bin`` is processed, the PCIe link will go down again. Remove
and rescan the PCIe device:
@@ -505,11 +506,12 @@ The following steps describe the process of booting J784S4-EVM over PCIe:
echo 1 > /sys/bus/pci/devices/0000\:01\:00.0/remove
echo 1 > /sys/bus/pci/devices/0000\:00\:00.0/rescan
-8. Copy ``u-boot.img``:
+8. Copy ``u-boot.img`` to BAR0 of Physical Function Zero of the endpoint:
.. prompt:: bash
- sudo ./pcie_boot_util 0x4000400000 u-boot.img
+ uboot_bar_address="0x$(lspci -D -nnvv | awk '/^[0-9a-fA-F]{4}:/ {bdf=$1; ram=($0 ~ /RAM memory/ || $0 ~ /Memory controller/)} ram && /Region [0]+:/ {print bdf, $0}' | head -n1 | cut -d ' ' -f 6)"
+ sudo ./pcie_boot_util ${uboot_bar_address} u-boot.img
9. After ``u-boot.img`` is successfully loaded, the boot process is complete
and endpoint should boot till U-Boot prompt.
diff --git a/doc/board/toradex/index.rst b/doc/board/toradex/index.rst
index 27f059542e6..2a45bde6991 100644
--- a/doc/board/toradex/index.rst
+++ b/doc/board/toradex/index.rst
@@ -16,3 +16,4 @@ Toradex
verdin-am62p
verdin-imx8mm
verdin-imx8mp
+ verdin-imx95
diff --git a/doc/board/toradex/verdin-am62.rst b/doc/board/toradex/verdin-am62.rst
index 93912adc896..aaca6fd1a73 100644
--- a/doc/board/toradex/verdin-am62.rst
+++ b/doc/board/toradex/verdin-am62.rst
@@ -59,7 +59,8 @@ Set the variables corresponding to this platform:
$ # we don't use any extra TFA parameters
$ unset TFA_EXTRA_ARGS
$ export OPTEE_PLATFORM=k3-am62x
- $ export OPTEE_EXTRA_ARGS="CFG_WITH_SOFTWARE_PRNG=y"
+ $ # we dont use any extra OPTEE parameters
+ $ unset OPTEE_EXTRA_ARGS
.. include:: ../ti/am62x_sk.rst
:start-after: .. am62x_evm_rst_include_start_build_steps
diff --git a/doc/board/toradex/verdin-imx95.rst b/doc/board/toradex/verdin-imx95.rst
new file mode 100644
index 00000000000..d252277cc20
--- /dev/null
+++ b/doc/board/toradex/verdin-imx95.rst
@@ -0,0 +1,171 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+Verdin iMX95 Module
+==========================
+
+- SoM: https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx95
+- Carrier board: https://www.toradex.com/products/carrier-board/verdin-development-board-kit
+
+Quick Start
+-----------
+
+- Setup environment
+- Get ahab-container.img
+- Get DDR PHY Firmware Images
+- Get and Build OEI Images
+- Get and Build System Manager Image
+- Get and Build the ARM Trusted Firmware
+- Build the Bootloader Image
+- Boot
+
+Setup environment
+-----------------
+
+Suggested current toolchains are ARM 14.3 (https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads):
+
+- https://developer.arm.com/-/media/Files/downloads/gnu/14.3.rel1/binrel/arm-gnu-toolchain-14.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
+- https://developer.arm.com/-/media/Files/downloads/gnu/14.3.rel1/binrel/arm-gnu-toolchain-14.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz
+
+.. code-block:: console
+
+ $ export TOOLS=<path/to/directory/with/toolchains>
+ $ export CROSS_COMPILE_32=<path/to/arm/toolchain/bin/>arm-none-linux-gnueabihf-
+ $ export CROSS_COMPILE_64=<path/to/arm64/toolchain/bin/>aarch64-none-linux-gnu-
+
+Get ahab-container.img
+----------------------
+
+Note: `$srctree` is the U-Boot source directory
+
+.. code-block:: console
+
+ $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.2-89161a8.bin
+ $ sh firmware-ele-imx-2.0.2-89161a8.bin --auto-accept
+ $ cp firmware-ele-imx-2.0.2-89161a8/mx95b0-ahab-container.img $(srctree)
+
+Get DDR PHY Firmware Images
+---------------------------
+
+Note: `$srctree` is the U-Boot source directory
+
+.. code-block:: console
+
+ $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.28-994fa14.bin
+ $ sh firmware-imx-8.28-994fa14.bin --auto-accept
+ $ cp firmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr4x*v202409.bin $(srctree)
+
+Get and Build OEI Images
+------------------------
+
+Note: `$srctree` is the U-Boot source directory
+Get OEI from: https://git.toradex.com/cgit/imx-oei-toradex.git/
+branch: main
+
+.. code-block:: console
+
+ $ git clone -b main https://git.toradex.com/cgit/imx-oei-toradex.git/
+ $ cd imx-oei-toradex
+
+ $ make board=toradex-verdin-imx95 oei=ddr DEBUG=1 r=B0 all
+ $ cp build/toradex-verdin-imx95/ddr/oei-m33-ddr.bin $(srctree)
+
+The Makefile will set `DDR_CONFIG` automatically based on the selected silicon
+revision.
+
+Get and Build the System Manager Image
+--------------------------------------
+
+Note: `$srctree` is the U-Boot source directory
+Get System Manager from: https://git.toradex.com/cgit/imx-sm-toradex.git/
+branch: main
+
+.. code-block:: console
+
+ $ git clone -b main https://git.toradex.com/cgit/imx-sm-toradex.git/
+ $ cd imx-sm-toradex
+ $ make config=verdin-imx95 all
+ $ cp build/verdin-imx95/m33_image.bin $(srctree)
+
+Get and Build the ARM Trusted Firmware
+--------------------------------------
+
+Note: `$srctree` is the U-Boot source directory
+Get ATF from: https://github.com/nxp-imx/imx-atf/
+branch: lf_v2.12
+
+.. code-block:: console
+
+ $ export CROSS_COMPILE=$CROSS_COMPILE_64
+ $ unset LDFLAGS
+ $ unset AS
+ $ git clone -b lf_v2.12 https://github.com/nxp-imx/imx-atf.git
+ $ cd imx-atf
+ $ make PLAT=imx95 bl31
+ $ cp build/imx95/release/bl31.bin $(srctree)
+
+Build the Bootloader Image
+--------------------------
+
+.. code-block:: console
+
+ $ export CROSS_COMPILE=$CROSS_COMPILE_64
+ $ make verdin-imx95_defconfig
+ $ make
+
+Flash to eMMC
+-------------
+
+.. code-block:: console
+
+ > tftpboot ${loadaddr} flash.bin
+ > setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200
+ > mmc dev 0 1 && mmc write ${loadaddr} 0x0 ${blkcnt}
+
+As a convenience, instead of the last two commands, one may also use the update
+U-Boot wrapper:
+
+.. code-block:: console
+
+ > run update_uboot
+
+Boot
+----
+
+Boot sequence is:
+
+* SPL ---> ATF (TF-A) ---> U-Boot proper
+
+Output:
+
+.. code-block:: console
+
+ U-Boot SPL 2026.04-00756-ge7053d7cab88 (Apr 15 2026 - 12:27:34 +0200)
+ SYS Boot reason: pmic, origin: -1, errid: -1
+ SYS shutdown reason: pmic, origin: -1, errid: -1
+ Trying to boot from MMC1
+ Primary set selected
+ Load image from MMC/SD 0xca000
+ NOTICE: BL31: v2.12.0(release):lf-6.12.20-2.0.0
+ NOTICE: BL31: Built : 17:34:12, Oct 21 2025
+
+
+ U-Boot 2026.04-00756-ge7053d7cab88 (Apr 15 2026 - 12:27:34 +0200)
+
+ CPU: NXP i.MX95 Rev2.0 A55 at 1800 MHz - invalid sensor data
+ DRAM: 7.8 GiB
+ Core: 323 devices, 28 uclasses, devicetree: separate
+ MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
+ Loading Environment from MMC... Reading from MMC(0)... OK
+ In: serial@44380000
+ Out: serial@44380000
+ Err: serial@44380000
+ Model: Toradex 0089 Verdin iMX95 Hexa 8GB WB IT V1.0B
+ Serial#: 12594936
+
+ BuildInfo:
+ - ELE firmware version 2.0.2-2a118457
+
+ Setting variant to wifi
+ Net: No ethernet found.
+ Hit any key to stop autoboot: 0
+ Verdin iMX95 #
diff --git a/doc/board/tq/index.rst b/doc/board/tq/index.rst
new file mode 100644
index 00000000000..d6dc6101c2c
--- /dev/null
+++ b/doc/board/tq/index.rst
@@ -0,0 +1,12 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later or CC-BY-4.0
+
+.. Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+.. D-82229 Seefeld, Germany.
+
+TQ-Systems
+==========
+
+.. toctree::
+ :maxdepth: 2
+
+ tqma7
diff --git a/doc/board/tq/tqma7.rst b/doc/board/tq/tqma7.rst
new file mode 100644
index 00000000000..60fd883968d
--- /dev/null
+++ b/doc/board/tq/tqma7.rst
@@ -0,0 +1,77 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+.. Copyright (c) 2020-2026 TQ-Systems GmbH <[email protected]>,
+.. D-82229 Seefeld, Germany.
+
+########################################
+U-Boot for the TQ-Systems TQMa7x modules
+########################################
+
+This file contains information for the port of
+U-Boot to the TQ-Systems TQMa7x modules.
+
+***********
+Boot source
+***********
+
+The following boot sources are supported:
+
+- SD/eMMC
+- USB (SDP)
+
+QSPI boot is functional but requires an additional prepended NXP header
+image. This currently unsupported in u-boot.
+
+********
+Building
+********
+
+To build U-Boot for the TQ-Systems TQMa7x modules:
+
+.. code-block:: bash
+
+ make tqma7_mba7_<boot>_defconfig
+ make
+
+**boot** is a placeholder for the boot device:
+
++------+-----------+
+| mmc | SD/eMMC |
++------+-----------+
+| uuu | USB (SDP) |
++------+-----------+
+
+The default build artifact is named ``u-boot-with-spl.imx``.
+
+*****************************************
+Serial Download Protocol (SDP) / USB boot
+*****************************************
+
+The complete system image can be programmed with ``uuu``
+(https://github.com/nxp-imx/mfgtools) to eMMC.
+
+Serial Download Protocol is supported on the Micro-B USB port (X5) of MBa7x.
+The command ``fastboot usb 0`` is used to enable the fastboot gadget.
+
+Build SDP enabled U-Boot image
+==============================
+
+.. code-block:: bash
+
+ make <som>_mba7_uuu_defconfig
+ make
+
+Booting
+=======
+
+With UUU
+
+.. code-block:: bash
+
+ uuu -b spl <UUU U-Boot image>
+
+************
+Support Wiki
+************
+
+See `TQ Embedded Wiki for TQMa7x <https://support.tq-group.com/en/arm/tqma7x>`_.
diff --git a/doc/conf.py b/doc/conf.py
index 84d028feda8..0d56e4f7c3c 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -34,6 +34,8 @@ if os.environ.get("READTHEDOCS", "") == "True":
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('sphinx'))
+sys.path.append(os.path.abspath('../test/py/tests'))
+sys.path.append(os.path.abspath('../test/py'))
from load_config import loadConfig
# -- General configuration ------------------------------------------------
@@ -48,7 +50,8 @@ extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include',
'kfigure', 'sphinx.ext.ifconfig', # 'automarkup',
'maintainers_include', 'sphinx.ext.autosectionlabel',
'kernel_abi', 'kernel_feat', 'sphinx-prompt',
- 'sphinx_reredirects', 'sphinx.ext.autodoc' ]
+ 'sphinx_reredirects', 'sphinx.ext.autodoc',
+ 'binman_docs' ]
#
# cdomain is badly broken in Sphinx 3+. Leaving it out generates *most*
diff --git a/doc/develop/package/bintools.rst b/doc/develop/package/bintools.rst
deleted file mode 120000
index 7ef3d75e935..00000000000
--- a/doc/develop/package/bintools.rst
+++ /dev/null
@@ -1 +0,0 @@
-../../../tools/binman/bintools.rst \ No newline at end of file
diff --git a/doc/develop/package/entries.rst b/doc/develop/package/entries.rst
deleted file mode 120000
index ecedcebaad4..00000000000
--- a/doc/develop/package/entries.rst
+++ /dev/null
@@ -1 +0,0 @@
-../../../tools/binman/entries.rst \ No newline at end of file
diff --git a/doc/develop/package/index.rst b/doc/develop/package/index.rst
index 4f448313f95..ff4c1882cbd 100644
--- a/doc/develop/package/index.rst
+++ b/doc/develop/package/index.rst
@@ -5,7 +5,7 @@ Package U-Boot
U-Boot uses Flat Image Tree (FIT) as a standard file format for packaging
images that it reads and boots. Documentation about FIT is available at
-doc/uImage.FIT
+doc/usage/fit
U-Boot also provides binman for cases not covered by FIT. Examples include
initial execution (since FIT itself does not have an executable header) and
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index 74834f5bd87..69678f2897a 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -1,4 +1,4 @@
-.. |next_ver| replace:: v2026.04
+.. |next_ver| replace:: v2026.07
Release Cycle
=============
@@ -53,15 +53,15 @@ Examples::
Current Status
--------------
-* U-Boot v2026.01 was released on Monday, 05 January 2026.
+* U-Boot v2026.04 was released on Monday, 06 April 2026.
-* The Merge Window for the next release (|next_ver|) is **closed** with the -rc1
- release on Monday, 26 January 2026.
+* The Merge Window for the next release (|next_ver|) is **open** until the -rc1
+ release on Monday, 27 April 2026.
-* The next branch is now **closed** until the -rc2 release on Monday, 09
- February 2026.
+* The next branch is now **closed** until the -rc2 release on Monday, 11
+ May 2026.
-* Release "|next_ver|" is scheduled for Monday, 06 April 2026.
+* Release "|next_ver|" is scheduled for Monday, 06 July 2026.
Future Releases
---------------
@@ -69,29 +69,27 @@ Future Releases
.. The following commented out dates are for when release candidates are
planned to be tagged.
-For the next scheduled release, release candidates were made on:
+.. For the next scheduled release, release candidates were made on:
-* U-Boot |next_ver|-rc1 was released on Mon 26 January 2026.
+.. * U-Boot |next_ver|-rc1 was released on Mon 11 May 2026.
-* U-Boot |next_ver|-rc2 was released on Mon 09 February 2026.
+.. * U-Boot |next_ver|-rc2 was released on Mon 25 May 2026.
-* U-Boot |next_ver|-rc3 was released on Mon 23 February 2026.
+.. * U-Boot |next_ver|-rc3 was released on Mon 08 June 2026.
-* U-Boot |next_ver|-rc4 was released on Mon 09 March 2026.
-
-.. * U-Boot |next_ver|-rc5 was released on Mon 23 March 2026.
+.. * U-Boot |next_ver|-rc4 was released on Mon 22 June 2026.
Please note that the following dates are planned only and may be deviated from
as needed.
-* "v2026.04": end of MW = Mon, Jan 26, 2026; release = Mon, Apr 06, 2026
-
* "v2026.07": end of MW = Mon, Apr 27, 2026; release = Mon, Jul 06, 2026
* "v2026.10": end of MW = Mon, Jul 27, 2026; release = Mon, Oct 05, 2026
* "v2027.01": end of MW = Mon, Oct 26, 2026; release = Mon, Jan 04, 2027
+* "v2027.04": end of MW = Mon, Jan 25, 2027; release = Mon, Apr 05, 2027
+
Previous Releases
-----------------
@@ -99,6 +97,8 @@ Note: these statistics are generated by our fork of `gitdm
<https://source.denx.de/u-boot/gitdm>`_, which was originally created by
Jonathan Corbet.
+* :doc:`statistics/u-boot-stats-v2026.04` which was released on 06 April 2026.
+
* :doc:`statistics/u-boot-stats-v2026.01` which was released on 05 January 2026.
* :doc:`statistics/u-boot-stats-v2025.10` which was released on 06 October 2025.
diff --git a/doc/develop/statistics/u-boot-stats-v2026.04.rst b/doc/develop/statistics/u-boot-stats-v2026.04.rst
new file mode 100644
index 00000000000..b0652dbf9ba
--- /dev/null
+++ b/doc/develop/statistics/u-boot-stats-v2026.04.rst
@@ -0,0 +1,800 @@
+:orphan:
+
+Release Statistics for U-Boot v2026.04
+======================================
+
+* Processed 1050 changesets from 173 developers
+
+* 23 employers found
+
+* A total of 180232 lines added, 45846 removed (delta 134386)
+
+.. table:: Developers with the most changesets
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Tom Rini 149 (14.2%)
+ Marek Vasut 55 (5.2%)
+ Quentin Schulz 54 (5.1%)
+ Heinrich Schuchardt 46 (4.4%)
+ Patrice Chotard 45 (4.3%)
+ David Lechner 43 (4.1%)
+ Peng Fan 36 (3.4%)
+ Richard Genoud 26 (2.5%)
+ Kaustabh Chakraborty 23 (2.2%)
+ Michal Simek 21 (2.0%)
+ Andrew Goodbody 20 (1.9%)
+ Tanmay Kathpalia 16 (1.5%)
+ Jonas Karlman 14 (1.3%)
+ Markus Schneider-Pargmann (TI.com) 14 (1.3%)
+ Casey Connolly 13 (1.2%)
+ Francois Berder 12 (1.1%)
+ Anshul Dalal 11 (1.0%)
+ Greg Malysa 11 (1.0%)
+ Suhaas Joshi 11 (1.0%)
+ Mikhail Kshevetskiy 11 (1.0%)
+ Ferass El Hafidi 11 (1.0%)
+ Markus Niebel 11 (1.0%)
+ Balaji Selvanathan 10 (1.0%)
+ Kuan-Wei Chiu 10 (1.0%)
+ Neil Armstrong 9 (0.9%)
+ Siddharth Vadapalli 8 (0.8%)
+ Hugo Villeneuve 8 (0.8%)
+ Padmarao Begari 8 (0.8%)
+ Vincent Stehlé 8 (0.8%)
+ Heiko Schocher 8 (0.8%)
+ E Shattow 7 (0.7%)
+ Aswin Murugan 7 (0.7%)
+ Brian Ruley 7 (0.7%)
+ Rasmus Villemoes 6 (0.6%)
+ Michael Walle 6 (0.6%)
+ Julien Stephan 6 (0.6%)
+ George McCollister 6 (0.6%)
+ Robert Marko 6 (0.6%)
+ Max Merchel 6 (0.6%)
+ Sean Anderson 6 (0.6%)
+ Jan Kiszka 6 (0.6%)
+ Benjamin Hahn 6 (0.6%)
+ Philippe Schenker 6 (0.6%)
+ Simon Glass 5 (0.5%)
+ J. Neuschäfer 5 (0.5%)
+ Wadim Egorov 5 (0.5%)
+ Santhosh Kumar K 5 (0.5%)
+ Yoshihiro Shimoda 5 (0.5%)
+ Thomas Bourgoin 4 (0.4%)
+ Daniel Schultz 4 (0.4%)
+ Andrew Davis 4 (0.4%)
+ Frank Wunderlich 4 (0.4%)
+ Primoz Fiser 4 (0.4%)
+ Ozan Durgut 4 (0.4%)
+ Chris Morgan 4 (0.4%)
+ Vishal Mahaveer 4 (0.4%)
+ Alice Guo 4 (0.4%)
+ Timo tp Preißl 4 (0.4%)
+ Guillaume La Roque (TI.com) 4 (0.4%)
+ Neal Frager 4 (0.4%)
+ Venkatesh Yadav Abbarapu 4 (0.4%)
+ Peter Robinson 3 (0.3%)
+ Daniel Golle 3 (0.3%)
+ Frieder Schrempf 3 (0.3%)
+ Philip Molloy 3 (0.3%)
+ Gatien Chevallier 3 (0.3%)
+ Pranav Tilak 3 (0.3%)
+ Paresh Bhagat 3 (0.3%)
+ Julien Masson 3 (0.3%)
+ Shiji Yang 3 (0.3%)
+ Yao Zi 3 (0.3%)
+ Dominik Haller 3 (0.3%)
+ Max Krummenacher 3 (0.3%)
+ Stanley Chu 3 (0.3%)
+ Jérémie Dautheribes 3 (0.3%)
+ Dmitrii Merkurev 3 (0.3%)
+ Filip Kokosiński 2 (0.2%)
+ Cibil Pankiras 2 (0.2%)
+ Ilias Apalodimas 2 (0.2%)
+ Raphael Gallais-Pou 2 (0.2%)
+ Conor Dooley 2 (0.2%)
+ Emanuele Ghidoli 2 (0.2%)
+ Igor Belwon 2 (0.2%)
+ James Hilliard 2 (0.2%)
+ Fabien Dessenne 2 (0.2%)
+ Bryan Brattlof 2 (0.2%)
+ Peter Korsgaard 2 (0.2%)
+ Yuya Hamamachi 2 (0.2%)
+ Ernest Van Hoecke 2 (0.2%)
+ Sughosh Ganu 2 (0.2%)
+ Vitor Sato Eschholz 2 (0.2%)
+ Janne Grunau 2 (0.2%)
+ Yixun Lan 2 (0.2%)
+ Utsav Agarwal 2 (0.2%)
+ Beleswar Padhi 2 (0.2%)
+ Paul Gerber 2 (0.2%)
+ David Heidelberg 2 (0.2%)
+ Loic Poulain 2 (0.2%)
+ Petr Beneš 2 (0.2%)
+ Jim Liu 2 (0.2%)
+ Joseph Guo 2 (0.2%)
+ Alif Zakuan Yuslaimi 2 (0.2%)
+ Beiyan Yun 2 (0.2%)
+ Andrea Calabrese 2 (0.2%)
+ Prasanth Babu Mantena 1 (0.1%)
+ Aristo Chen 1 (0.1%)
+ Sumit Garg 1 (0.1%)
+ Kunihiko Hayashi 1 (0.1%)
+ Takahiro Kuwano 1 (0.1%)
+ Romain Gantois 1 (0.1%)
+ Raphaël Gallais-Pou 1 (0.1%)
+ Stefan Eichenberger 1 (0.1%)
+ Ye Li 1 (0.1%)
+ Mattijs Korpershoek 1 (0.1%)
+ Gwenael Treuveur 1 (0.1%)
+ Devarsh Thakkar 1 (0.1%)
+ Mark Kettenis 1 (0.1%)
+ Eric Kilmer 1 (0.1%)
+ Chintan Vankar 1 (0.1%)
+ Jeremy Compostella 1 (0.1%)
+ Martin Schwan 1 (0.1%)
+ Maheedhar Bollapalli 1 (0.1%)
+ Raymond Mao 1 (0.1%)
+ Niko Mauno 1 (0.1%)
+ Charles Perry 1 (0.1%)
+ Jamie Gibbons 1 (0.1%)
+ Andy Yan 1 (0.1%)
+ Weijie Gao 1 (0.1%)
+ Jerome Forissier 1 (0.1%)
+ Andre Przywara 1 (0.1%)
+ Patrick Rudolph 1 (0.1%)
+ Guillaume Ranquet 1 (0.1%)
+ Eric Schikschneit 1 (0.1%)
+ ht.lin 1 (0.1%)
+ Daniel Palmer 1 (0.1%)
+ Dario Binacchi 1 (0.1%)
+ Chris-QJ Chen 1 (0.1%)
+ Mateus Lima Alves 1 (0.1%)
+ Bohdan Chubuk 1 (0.1%)
+ Lukas Schmid 1 (0.1%)
+ ANANDHAKRISHNAN S 1 (0.1%)
+ Yanir Levin 1 (0.1%)
+ Hal Feng 1 (0.1%)
+ Leo Yu-Chi Liang 1 (0.1%)
+ Masahisa Kojima 1 (0.1%)
+ Manjae Cho 1 (0.1%)
+ Milan P. Stanić 1 (0.1%)
+ Francesco Valla 1 (0.1%)
+ Ray Liu 1 (0.1%)
+ Link Mauve 1 (0.1%)
+ Swathi Tamilselvan 1 (0.1%)
+ Biswapriyo Nath 1 (0.1%)
+ Alexey Minnekhanov 1 (0.1%)
+ Gopinath Sekar 1 (0.1%)
+ Tomas Paukrt 1 (0.1%)
+ Christoph Stoidner 1 (0.1%)
+ Ted Lee 1 (0.1%)
+ Swamil Jain 1 (0.1%)
+ Sam Meredith 1 (0.1%)
+ Ralph Siemsen 1 (0.1%)
+ Nick Xie 1 (0.1%)
+ Anthony Pighin (Nokia) 1 (0.1%)
+ Randolph 1 (0.1%)
+ Che-Wei Chuang 1 (0.1%)
+ Simon Gaynor 1 (0.1%)
+ Fedor Ross 1 (0.1%)
+ Marian Cingel 1 (0.1%)
+ Sam Protsenko 1 (0.1%)
+ Maksim Kiselev 1 (0.1%)
+ Leonard Anderweit 1 (0.1%)
+ Christian Marangi 1 (0.1%)
+ Lucien.Jheng 1 (0.1%)
+ Ji Luo 1 (0.1%)
+ ==================================== =====
+
+
+.. table:: Developers with the most changed lines
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Tom Rini 91374 (48.1%)
+ Emanuele Ghidoli 18744 (9.9%)
+ Joseph Guo 9480 (5.0%)
+ Dominik Haller 8666 (4.6%)
+ Frieder Schrempf 6391 (3.4%)
+ Neil Armstrong 4212 (2.2%)
+ Marek Vasut 4037 (2.1%)
+ Greg Malysa 3449 (1.8%)
+ David Lechner 3380 (1.8%)
+ Patrice Chotard 3250 (1.7%)
+ Ferass El Hafidi 3230 (1.7%)
+ Quentin Schulz 2202 (1.2%)
+ Julien Masson 2007 (1.1%)
+ Anshul Dalal 1602 (0.8%)
+ Brian Ruley 1461 (0.8%)
+ E Shattow 1411 (0.7%)
+ Andrew Goodbody 1406 (0.7%)
+ Heinrich Schuchardt 1396 (0.7%)
+ Chris-QJ Chen 1349 (0.7%)
+ Alice Guo 1068 (0.6%)
+ Sughosh Ganu 1055 (0.6%)
+ Kuan-Wei Chiu 921 (0.5%)
+ Hugo Villeneuve 893 (0.5%)
+ Kaustabh Chakraborty 868 (0.5%)
+ Lucien.Jheng 822 (0.4%)
+ Richard Genoud 821 (0.4%)
+ Aswin Murugan 761 (0.4%)
+ Dmitrii Merkurev 690 (0.4%)
+ Heiko Schocher 667 (0.4%)
+ Swamil Jain 612 (0.3%)
+ Andrea Calabrese 552 (0.3%)
+ Yoshihiro Shimoda 522 (0.3%)
+ Max Merchel 515 (0.3%)
+ Vitor Sato Eschholz 486 (0.3%)
+ Peng Fan 485 (0.3%)
+ Tanmay Kathpalia 483 (0.3%)
+ Jonas Karlman 375 (0.2%)
+ Wadim Egorov 366 (0.2%)
+ Markus Schneider-Pargmann (TI.com) 356 (0.2%)
+ Michal Simek 352 (0.2%)
+ Guillaume La Roque (TI.com) 309 (0.2%)
+ Suhaas Joshi 300 (0.2%)
+ Simon Glass 283 (0.1%)
+ George McCollister 280 (0.1%)
+ Casey Connolly 268 (0.1%)
+ Paresh Bhagat 267 (0.1%)
+ Michael Walle 252 (0.1%)
+ Igor Belwon 207 (0.1%)
+ Markus Niebel 161 (0.1%)
+ Sean Anderson 160 (0.1%)
+ Robert Marko 157 (0.1%)
+ Santhosh Kumar K 152 (0.1%)
+ ht.lin 151 (0.1%)
+ Thomas Bourgoin 143 (0.1%)
+ Chris Morgan 143 (0.1%)
+ Philip Molloy 142 (0.1%)
+ Rasmus Villemoes 138 (0.1%)
+ James Hilliard 134 (0.1%)
+ Julien Stephan 124 (0.1%)
+ Siddharth Vadapalli 123 (0.1%)
+ Andrew Davis 115 (0.1%)
+ Utsav Agarwal 115 (0.1%)
+ Francois Berder 112 (0.1%)
+ Raphaël Gallais-Pou 108 (0.1%)
+ Jérémie Dautheribes 105 (0.1%)
+ Fabien Dessenne 101 (0.1%)
+ Frank Wunderlich 98 (0.1%)
+ J. Neuschäfer 93 (0.0%)
+ Peter Robinson 90 (0.0%)
+ Raphael Gallais-Pou 90 (0.0%)
+ Conor Dooley 90 (0.0%)
+ Beiyan Yun 85 (0.0%)
+ Yixun Lan 83 (0.0%)
+ Benjamin Hahn 80 (0.0%)
+ Balaji Selvanathan 76 (0.0%)
+ Primoz Fiser 71 (0.0%)
+ Vishal Mahaveer 71 (0.0%)
+ Prasanth Babu Mantena 64 (0.0%)
+ Padmarao Begari 63 (0.0%)
+ Francesco Valla 59 (0.0%)
+ Jan Kiszka 58 (0.0%)
+ Anthony Pighin (Nokia) 57 (0.0%)
+ Filip Kokosiński 56 (0.0%)
+ Petr Beneš 54 (0.0%)
+ Ye Li 54 (0.0%)
+ Swathi Tamilselvan 54 (0.0%)
+ Paul Gerber 50 (0.0%)
+ Ozan Durgut 47 (0.0%)
+ Ilias Apalodimas 47 (0.0%)
+ Vincent Stehlé 46 (0.0%)
+ Neal Frager 46 (0.0%)
+ Mateus Lima Alves 46 (0.0%)
+ Daniel Schultz 45 (0.0%)
+ Yao Zi 40 (0.0%)
+ Mattijs Korpershoek 40 (0.0%)
+ Stanley Chu 37 (0.0%)
+ Sumit Garg 37 (0.0%)
+ Mikhail Kshevetskiy 36 (0.0%)
+ Jim Liu 34 (0.0%)
+ Andre Przywara 34 (0.0%)
+ Christian Marangi 33 (0.0%)
+ Philippe Schenker 30 (0.0%)
+ Timo tp Preißl 30 (0.0%)
+ Loic Poulain 30 (0.0%)
+ Gatien Chevallier 26 (0.0%)
+ David Heidelberg 25 (0.0%)
+ Dario Binacchi 25 (0.0%)
+ Alexey Minnekhanov 24 (0.0%)
+ Daniel Golle 22 (0.0%)
+ Lukas Schmid 21 (0.0%)
+ Gopinath Sekar 21 (0.0%)
+ Shiji Yang 17 (0.0%)
+ Cibil Pankiras 17 (0.0%)
+ Yanir Levin 17 (0.0%)
+ Che-Wei Chuang 16 (0.0%)
+ Leonard Anderweit 15 (0.0%)
+ Max Krummenacher 14 (0.0%)
+ Yuya Hamamachi 14 (0.0%)
+ Gwenael Treuveur 14 (0.0%)
+ Weijie Gao 14 (0.0%)
+ Biswapriyo Nath 14 (0.0%)
+ Andy Yan 12 (0.0%)
+ Chintan Vankar 11 (0.0%)
+ Christoph Stoidner 10 (0.0%)
+ Romain Gantois 9 (0.0%)
+ Raymond Mao 9 (0.0%)
+ Ralph Siemsen 9 (0.0%)
+ Sam Protsenko 9 (0.0%)
+ Pranav Tilak 8 (0.0%)
+ Ernest Van Hoecke 8 (0.0%)
+ Stefan Eichenberger 8 (0.0%)
+ Ted Lee 8 (0.0%)
+ Ji Luo 7 (0.0%)
+ Venkatesh Yadav Abbarapu 6 (0.0%)
+ Beleswar Padhi 6 (0.0%)
+ Devarsh Thakkar 6 (0.0%)
+ ANANDHAKRISHNAN S 6 (0.0%)
+ Maksim Kiselev 6 (0.0%)
+ Janne Grunau 5 (0.0%)
+ Eric Kilmer 5 (0.0%)
+ Randolph 5 (0.0%)
+ Peter Korsgaard 4 (0.0%)
+ Jerome Forissier 4 (0.0%)
+ Bohdan Chubuk 4 (0.0%)
+ Bryan Brattlof 3 (0.0%)
+ Mark Kettenis 3 (0.0%)
+ Charles Perry 3 (0.0%)
+ Marian Cingel 3 (0.0%)
+ Alif Zakuan Yuslaimi 2 (0.0%)
+ Aristo Chen 2 (0.0%)
+ Kunihiko Hayashi 2 (0.0%)
+ Jeremy Compostella 2 (0.0%)
+ Martin Schwan 2 (0.0%)
+ Maheedhar Bollapalli 2 (0.0%)
+ Patrick Rudolph 2 (0.0%)
+ Eric Schikschneit 2 (0.0%)
+ Masahisa Kojima 2 (0.0%)
+ Takahiro Kuwano 1 (0.0%)
+ Niko Mauno 1 (0.0%)
+ Jamie Gibbons 1 (0.0%)
+ Guillaume Ranquet 1 (0.0%)
+ Daniel Palmer 1 (0.0%)
+ Hal Feng 1 (0.0%)
+ Leo Yu-Chi Liang 1 (0.0%)
+ Manjae Cho 1 (0.0%)
+ Milan P. Stanić 1 (0.0%)
+ Ray Liu 1 (0.0%)
+ Link Mauve 1 (0.0%)
+ Tomas Paukrt 1 (0.0%)
+ Sam Meredith 1 (0.0%)
+ Nick Xie 1 (0.0%)
+ Simon Gaynor 1 (0.0%)
+ Fedor Ross 1 (0.0%)
+ ==================================== =====
+
+
+.. table:: Developers with the most lines removed
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Hugo Villeneuve 807 (1.8%)
+ David Lechner 775 (1.7%)
+ Alice Guo 510 (1.1%)
+ Anshul Dalal 473 (1.0%)
+ Max Merchel 327 (0.7%)
+ E Shattow 301 (0.7%)
+ Wadim Egorov 244 (0.5%)
+ Andrew Davis 108 (0.2%)
+ Philip Molloy 94 (0.2%)
+ Prasanth Babu Mantena 64 (0.1%)
+ Yoshihiro Shimoda 45 (0.1%)
+ Sean Anderson 39 (0.1%)
+ Primoz Fiser 30 (0.1%)
+ Jan Kiszka 18 (0.0%)
+ Gatien Chevallier 14 (0.0%)
+ Leonard Anderweit 12 (0.0%)
+ Beiyan Yun 8 (0.0%)
+ Ted Lee 8 (0.0%)
+ Ernest Van Hoecke 6 (0.0%)
+ Stanley Chu 5 (0.0%)
+ Jérémie Dautheribes 4 (0.0%)
+ ANANDHAKRISHNAN S 2 (0.0%)
+ Eric Schikschneit 1 (0.0%)
+ Tomas Paukrt 1 (0.0%)
+ ==================================== =====
+
+
+.. table:: Developers with the most signoffs (total 327)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Peng Fan 41 (12.5%)
+ Casey Connolly 29 (8.9%)
+ Michael Trimarchi 26 (8.0%)
+ Michal Simek 26 (8.0%)
+ Neil Armstrong 24 (7.3%)
+ Minkyu Kang 20 (6.1%)
+ Mattijs Korpershoek 19 (5.8%)
+ Patrice Chotard 11 (3.4%)
+ Alexander Feilke 8 (2.4%)
+ Marek Vasut 7 (2.1%)
+ Vasileios Bimpikas 6 (1.8%)
+ Arturs Artamonovs 6 (1.8%)
+ Nathan Barrett-Morrison 6 (1.8%)
+ Alexander Stein 6 (1.8%)
+ Utsav Agarwal 6 (1.8%)
+ Max Merchel 5 (1.5%)
+ Geert Uytterhoeven 5 (1.5%)
+ Martin K. Petersen 5 (1.5%)
+ Caleb Ethridge 5 (1.5%)
+ Julien Stephan 5 (1.5%)
+ Philip Molloy 4 (1.2%)
+ Vinod Koul 4 (1.2%)
+ David Lechner 3 (0.9%)
+ Ilias Apalodimas 3 (0.9%)
+ Markus Niebel 3 (0.9%)
+ Julien Masson 3 (0.9%)
+ Wadim Egorov 2 (0.6%)
+ Nicolas Le Bayon 2 (0.6%)
+ Ye Li 2 (0.6%)
+ Balaji Selvanathan 2 (0.6%)
+ Greg Malysa 2 (0.6%)
+ Tom Rini 2 (0.6%)
+ Alice Guo 1 (0.3%)
+ Andrew Morton 1 (0.3%)
+ Francesco Dolcini 1 (0.3%)
+ Yann Gautier 1 (0.3%)
+ Gabriel Fernandez 1 (0.3%)
+ Bo-Cun Chen 1 (0.3%)
+ Wenbin Mei 1 (0.3%)
+ Macpaul Lin 1 (0.3%)
+ Felipe Balbi 1 (0.3%)
+ Thinh Nguyen 1 (0.3%)
+ Wesley Cheng 1 (0.3%)
+ Jill.Wu 1 (0.3%)
+ Fabio Estevam 1 (0.3%)
+ Jonathan Corbet 1 (0.3%)
+ Igor Opaniuk 1 (0.3%)
+ Ricardo Salveti 1 (0.3%)
+ Tien Fong Chee 1 (0.3%)
+ Parth Pancholi 1 (0.3%)
+ Franz Schnyder 1 (0.3%)
+ Paul Gerber 1 (0.3%)
+ Loic Poulain 1 (0.3%)
+ Andre Przywara 1 (0.3%)
+ Ozan Durgut 1 (0.3%)
+ James Hilliard 1 (0.3%)
+ Siddharth Vadapalli 1 (0.3%)
+ Guillaume La Roque (TI.com) 1 (0.3%)
+ Vitor Sato Eschholz 1 (0.3%)
+ Heinrich Schuchardt 1 (0.3%)
+ Ferass El Hafidi 1 (0.3%)
+ ==================================== =====
+
+
+.. table:: Developers with the most reviews (total 528)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Quentin Schulz 49 (9.3%)
+ Mattijs Korpershoek 39 (7.4%)
+ Simon Glass 39 (7.4%)
+ Tom Rini 36 (6.8%)
+ Patrick Delaunay 35 (6.6%)
+ Neil Armstrong 32 (6.1%)
+ Ilias Apalodimas 22 (4.2%)
+ Heinrich Schuchardt 16 (3.0%)
+ Jerome Forissier 16 (3.0%)
+ Peng Fan 15 (2.8%)
+ Heiko Schocher 15 (2.8%)
+ Marek Vasut 12 (2.3%)
+ Tien Fong Chee 12 (2.3%)
+ Andre Przywara 12 (2.3%)
+ Bryan Brattlof 11 (2.1%)
+ Casey Connolly 10 (1.9%)
+ Anshul Dalal 10 (1.9%)
+ Kory Maincent 10 (1.9%)
+ Patrice Chotard 9 (1.7%)
+ Macpaul Lin 8 (1.5%)
+ Balsundar Ponnusamy 8 (1.5%)
+ Sumit Garg 8 (1.5%)
+ Greg Malysa 7 (1.3%)
+ Stefan Roese 6 (1.1%)
+ Wadim Egorov 5 (0.9%)
+ Francesco Dolcini 5 (0.9%)
+ Fabio Estevam 4 (0.8%)
+ Andrew Davis 4 (0.8%)
+ Leo Yu-Chi Liang 4 (0.8%)
+ Łukasz Majewski 4 (0.8%)
+ Tanmay Kathpalia 4 (0.8%)
+ Michael Trimarchi 3 (0.6%)
+ Matthias Brugger 3 (0.6%)
+ Vladimir Oltean 3 (0.6%)
+ Miquel Raynal 3 (0.6%)
+ Mark Kettenis 3 (0.6%)
+ Peter Robinson 3 (0.6%)
+ Bin Meng 2 (0.4%)
+ Chia-Wei, Wang 2 (0.4%)
+ Neal Gompa 2 (0.4%)
+ Petr Vorel 2 (0.4%)
+ Varadarajan Narayanan 2 (0.4%)
+ Svyatoslav Ryhel 2 (0.4%)
+ Udit Kumar 2 (0.4%)
+ Wolfgang Wallner 2 (0.4%)
+ Yao Zi 2 (0.4%)
+ David Lechner 1 (0.2%)
+ Alice Guo 1 (0.2%)
+ Ferass El Hafidi 1 (0.2%)
+ Sean Anderson 1 (0.2%)
+ Neha Malcom Francis 1 (0.2%)
+ Stefan Bosch 1 (0.2%)
+ Angelo Dureghello 1 (0.2%)
+ Jernej Skrabec 1 (0.2%)
+ John Watts 1 (0.2%)
+ Eran Moshe 1 (0.2%)
+ Tony Dinh 1 (0.2%)
+ Daniel Schwierzeck 1 (0.2%)
+ João Marcos Costa 1 (0.2%)
+ Tomas Melin 1 (0.2%)
+ Nishanth Menon 1 (0.2%)
+ Evgeny Bachinin 1 (0.2%)
+ Teresa Remmet 1 (0.2%)
+ Manorit Chawdhry 1 (0.2%)
+ Yannic Moog 1 (0.2%)
+ Alexander Sverdlin 1 (0.2%)
+ Sébastien Szymanski 1 (0.2%)
+ Aniket Limaye 1 (0.2%)
+ Raphaël Gallais-Pou 1 (0.2%)
+ Andrew Goodbody 1 (0.2%)
+ Emanuele Ghidoli 1 (0.2%)
+ ==================================== =====
+
+
+.. table:: Developers with the most test credits (total 53)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Mattijs Korpershoek 7 (13.2%)
+ Bryan Brattlof 6 (11.3%)
+ Anshul Dalal 6 (11.3%)
+ Michal Simek 4 (7.5%)
+ Peter Robinson 3 (5.7%)
+ Daniel Palmer 3 (5.7%)
+ Tom Rini 2 (3.8%)
+ Greg Malysa 2 (3.8%)
+ Francesco Dolcini 2 (3.8%)
+ Fabio Estevam 2 (3.8%)
+ Quentin Schulz 1 (1.9%)
+ Patrice Chotard 1 (1.9%)
+ Wadim Egorov 1 (1.9%)
+ David Lechner 1 (1.9%)
+ Sean Anderson 1 (1.9%)
+ John Watts 1 (1.9%)
+ Kunihiko Hayashi 1 (1.9%)
+ Brian Sune 1 (1.9%)
+ Phil Phil Sutter 1 (1.9%)
+ Thomas Petazzoni 1 (1.9%)
+ Alexander Dahl 1 (1.9%)
+ Martin Schwan 1 (1.9%)
+ Daniel Schultz 1 (1.9%)
+ Richard Genoud 1 (1.9%)
+ Frieder Schrempf 1 (1.9%)
+ Dominik Haller 1 (1.9%)
+ ==================================== =====
+
+
+.. table:: Developers who gave the most tested-by credits (total 53)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Tom Rini 8 (15.1%)
+ George McCollister 6 (11.3%)
+ David Lechner 4 (7.5%)
+ Marek Vasut 3 (5.7%)
+ Yao Zi 3 (5.7%)
+ Dmitrii Merkurev 3 (5.7%)
+ Kuan-Wei Chiu 3 (5.7%)
+ Quentin Schulz 2 (3.8%)
+ Andrew Goodbody 2 (3.8%)
+ Filip Kokosiński 2 (3.8%)
+ Rasmus Villemoes 2 (3.8%)
+ Anshul Dalal 1 (1.9%)
+ Wadim Egorov 1 (1.9%)
+ Daniel Schultz 1 (1.9%)
+ Simon Glass 1 (1.9%)
+ Ilias Apalodimas 1 (1.9%)
+ Vitor Sato Eschholz 1 (1.9%)
+ Masahisa Kojima 1 (1.9%)
+ Devarsh Thakkar 1 (1.9%)
+ Stefan Eichenberger 1 (1.9%)
+ Chintan Vankar 1 (1.9%)
+ Cibil Pankiras 1 (1.9%)
+ Lukas Schmid 1 (1.9%)
+ Francesco Valla 1 (1.9%)
+ Francois Berder 1 (1.9%)
+ Swamil Jain 1 (1.9%)
+ ==================================== =====
+
+
+.. table:: Developers with the most report credits (total 24)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Ye Li 3 (12.5%)
+ Fabio Estevam 2 (8.3%)
+ Philip Molloy 2 (8.3%)
+ Tom Rini 1 (4.2%)
+ Quentin Schulz 1 (4.2%)
+ Anshul Dalal 1 (4.2%)
+ Michal Simek 1 (4.2%)
+ Francesco Dolcini 1 (4.2%)
+ Brian Sune 1 (4.2%)
+ Phil Phil Sutter 1 (4.2%)
+ Frieder Schrempf 1 (4.2%)
+ Nishanth Menon 1 (4.2%)
+ Balaji Selvanathan 1 (4.2%)
+ Sathisha Shivaramappa 1 (4.2%)
+ oliver Fendt 1 (4.2%)
+ Zhixu Liu 1 (4.2%)
+ John Toomey 1 (4.2%)
+ Yuya Hamamachi 1 (4.2%)
+ Conor Dooley 1 (4.2%)
+ Michael Walle 1 (4.2%)
+ ==================================== =====
+
+
+.. table:: Developers who gave the most report credits (total 24)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Tom Rini 7 (29.2%)
+ Peng Fan 4 (16.7%)
+ Ilias Apalodimas 3 (12.5%)
+ Greg Malysa 2 (8.3%)
+ Hal Feng 2 (8.3%)
+ Marek Vasut 1 (4.2%)
+ Andrew Goodbody 1 (4.2%)
+ Devarsh Thakkar 1 (4.2%)
+ Beleswar Padhi 1 (4.2%)
+ Vincent Stehlé 1 (4.2%)
+ J. Neuschäfer 1 (4.2%)
+ ==================================== =====
+
+
+.. table:: Top changeset contributors by employer
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 425 (40.5%)
+ Konsulko Group 155 (14.8%)
+ BayLibre SAS 72 (6.9%)
+ ST Microelectronics 56 (5.3%)
+ Texas Instruments 54 (5.1%)
+ Renesas Electronics 52 (5.0%)
+ Linaro 46 (4.4%)
+ NXP 44 (4.2%)
+ AMD 41 (3.9%)
+ Bootlin 30 (2.9%)
+ Phytec 21 (2.0%)
+ ARM 12 (1.1%)
+ Analog Devices 9 (0.9%)
+ Toradex 8 (0.8%)
+ Siemens 6 (0.6%)
+ Canonical 6 (0.6%)
+ Amarula Solutions 3 (0.3%)
+ Google LLC 3 (0.3%)
+ Gentoo 2 (0.2%)
+ Socionext Inc. 2 (0.2%)
+ Intel 1 (0.1%)
+ Nokia 1 (0.1%)
+ Samsung 1 (0.1%)
+ ==================================== =====
+
+
+.. table:: Top lines changed by employer
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Konsulko Group 91654 (48.3%)
+ (Unknown) 30819 (16.2%)
+ Toradex 18774 (9.9%)
+ NXP 11094 (5.8%)
+ Phytec 9184 (4.8%)
+ BayLibre SAS 6662 (3.5%)
+ Linaro 5951 (3.1%)
+ Renesas Electronics 4224 (2.2%)
+ ST Microelectronics 3642 (1.9%)
+ Texas Instruments 3332 (1.8%)
+ ARM 1139 (0.6%)
+ Bootlin 935 (0.5%)
+ Google LLC 690 (0.4%)
+ Amarula Solutions 577 (0.3%)
+ AMD 477 (0.3%)
+ Analog Devices 304 (0.2%)
+ Canonical 285 (0.2%)
+ Gentoo 83 (0.0%)
+ Siemens 58 (0.0%)
+ Nokia 57 (0.0%)
+ Socionext Inc. 4 (0.0%)
+ Intel 2 (0.0%)
+ Samsung 1 (0.0%)
+ ==================================== =====
+
+
+.. table:: Employers with the most signoffs (total 327)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 75 (22.9%)
+ Linaro 56 (17.1%)
+ NXP 44 (13.5%)
+ Analog Devices 27 (8.3%)
+ Amarula Solutions 26 (8.0%)
+ AMD 26 (8.0%)
+ Samsung 20 (6.1%)
+ ST Microelectronics 15 (4.6%)
+ BayLibre SAS 13 (4.0%)
+ Renesas Electronics 7 (2.1%)
+ Oracle 5 (1.5%)
+ Toradex 3 (0.9%)
+ Konsulko Group 2 (0.6%)
+ Phytec 2 (0.6%)
+ Texas Instruments 1 (0.3%)
+ ARM 1 (0.3%)
+ Canonical 1 (0.3%)
+ Intel 1 (0.3%)
+ Linux Foundation 1 (0.3%)
+ LWN.net 1 (0.3%)
+ ==================================== =====
+
+
+.. table:: Employers with the most hackers (total 174)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 94 (54.0%)
+ Texas Instruments 13 (7.5%)
+ Phytec 7 (4.0%)
+ Linaro 6 (3.4%)
+ AMD 6 (3.4%)
+ ST Microelectronics 6 (3.4%)
+ BayLibre SAS 6 (3.4%)
+ NXP 5 (2.9%)
+ Toradex 4 (2.3%)
+ ARM 4 (2.3%)
+ Analog Devices 3 (1.7%)
+ Renesas Electronics 3 (1.7%)
+ Bootlin 3 (1.7%)
+ Amarula Solutions 2 (1.1%)
+ Konsulko Group 2 (1.1%)
+ Canonical 2 (1.1%)
+ Socionext Inc. 2 (1.1%)
+ Samsung 1 (0.6%)
+ Intel 1 (0.6%)
+ Google LLC 1 (0.6%)
+ Gentoo 1 (0.6%)
+ Siemens 1 (0.6%)
+ Nokia 1 (0.6%)
+ ==================================== =====
diff --git a/doc/index.rst b/doc/index.rst
index 43398627d89..5d732ff7a54 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -15,6 +15,16 @@ if you want to help out.
.. toctree::
:maxdepth: 2
+Contributing Guidelines
+-----------------------
+
+General guidelines for contributing to the U-Boot project.
+
+.. toctree::
+ :maxdepth: 2
+
+ CONTRIBUTE
+
User-oriented documentation
---------------------------
diff --git a/doc/sphinx/binman_docs.py b/doc/sphinx/binman_docs.py
new file mode 100644
index 00000000000..34d12f1b7d5
--- /dev/null
+++ b/doc/sphinx/binman_docs.py
@@ -0,0 +1,207 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (c) 2026 Simon Glass <[email protected]>
+#
+"""Sphinx extension to auto-generate binman entry and bintool documentation.
+
+This parses etype and btool source files using the ast module to extract
+class docstrings, avoiding the need to import binman modules (which have
+dependencies like libfdt that may not be available in the doc-build
+environment).
+
+The generated files are written to doc/develop/package/ (alongside
+binman.rst) and included via toctree directives. They are .gitignore'd
+since they are always regenerated during the build.
+
+To use, add 'binman_docs' to the extensions list in conf.py.
+"""
+
+import ast
+import os
+
+
+def get_entry_docstring(source_file):
+ """Extract the Entry_ class docstring from an etype source file.
+
+ Some files contain helper classes before the Entry_ class, so we look
+ specifically for a class whose name starts with 'Entry_'.
+
+ Args:
+ source_file: Path to the source file
+
+ Returns:
+ The docstring of the Entry_ class, or None
+ """
+ with open(source_file) as inf:
+ tree = ast.parse(inf.read())
+ for node in ast.iter_child_nodes(tree):
+ if isinstance(node, ast.ClassDef) and node.name.startswith('Entry_'):
+ return ast.get_docstring(node, clean=False)
+ return None
+
+
+def get_bintool_docstring(source_file):
+ """Extract the Bintool class docstring from a btool source file.
+
+ Args:
+ source_file: Path to the source file
+
+ Returns:
+ The docstring of the Bintool class, or None
+ """
+ with open(source_file) as inf:
+ tree = ast.parse(inf.read())
+ for node in ast.iter_child_nodes(tree):
+ if isinstance(node, ast.ClassDef) and node.name.startswith('Bintool'):
+ return ast.get_docstring(node, clean=False)
+ return None
+
+
+def generate_entry_docs(srcdir):
+ """Generate entries.rst content from etype source files.
+
+ Args:
+ srcdir: Root of the U-Boot source tree
+
+ Returns:
+ String containing RST content
+ """
+ etype_dir = os.path.join(srcdir, 'tools', 'binman', 'etype')
+ modules = sorted([
+ os.path.splitext(f)[0] for f in os.listdir(etype_dir)
+ if f.endswith('.py') and not f.startswith('_') and f != '__init__.py'
+ ])
+
+ parts = ['''\
+Binman Entry Documentation
+==========================
+
+This file describes the entry types supported by binman. These entry types can
+be placed in an image one by one to build up a final firmware image. It is
+fairly easy to create new entry types. Just add a new file to the 'etype'
+directory. You can use the existing entries as examples.
+
+Note that some entries are subclasses of others, using and extending their
+features to produce new behaviours.
+
+
+''']
+
+ missing = []
+ for name in modules:
+ source = os.path.join(etype_dir, name + '.py')
+ docs = get_entry_docstring(source)
+ if docs:
+ lines = docs.splitlines()
+ first_line = lines[0]
+ rest = [line[4:] for line in lines[1:]]
+ hdr = 'Entry: %s: %s' % (name.replace('_', '-'), first_line)
+
+ ref_name = 'etype_%s' % name
+ parts.append('.. _%s:' % ref_name)
+ parts.append('')
+ parts.append(hdr)
+ parts.append('-' * len(hdr))
+ parts.append('\n'.join(rest))
+ parts.append('')
+ parts.append('')
+ else:
+ missing.append(name)
+
+ if missing:
+ raise ValueError('Documentation is missing for modules: %s' %
+ ', '.join(missing))
+
+ return '\n'.join(parts)
+
+
+def generate_bintool_docs(srcdir):
+ """Generate bintools.rst content from btool source files.
+
+ Args:
+ srcdir: Root of the U-Boot source tree
+
+ Returns:
+ String containing RST content
+ """
+ btool_dir = os.path.join(srcdir, 'tools', 'binman', 'btool')
+ fnames = [
+ f for f in os.listdir(btool_dir)
+ if f.endswith('.py') and not f.startswith('_') and f != '__init__.py'
+ ]
+
+ def tool_sort_name(fname):
+ name = os.path.splitext(fname)[0]
+ if name.startswith('btool_'):
+ name = name[6:]
+ return name
+
+ fnames.sort(key=tool_sort_name)
+
+ parts = ['''\
+.. SPDX-License-Identifier: GPL-2.0+
+
+Binman bintool Documentation
+============================
+
+This file describes the bintools (binary tools) supported by binman. Bintools
+are binman's name for external executables that it runs to generate or process
+binaries. It is fairly easy to create new bintools. Just add a new file to the
+'btool' directory. You can use existing bintools as examples.
+
+
+''']
+
+ missing = []
+ for fname in fnames:
+ name = os.path.splitext(fname)[0]
+ # Strip btool_ prefix used for modules that conflict with Python libs
+ if name.startswith('btool_'):
+ name = name[6:]
+ source = os.path.join(btool_dir, fname)
+ docs = get_bintool_docstring(source)
+ if docs:
+ lines = docs.splitlines()
+ first_line = lines[0]
+ rest = [line[4:] for line in lines[1:]]
+ hdr = 'Bintool: %s: %s' % (name, first_line)
+ parts.append(hdr)
+ parts.append('-' * len(hdr))
+ parts.append('\n'.join(rest))
+ parts.append('')
+ parts.append('')
+ else:
+ missing.append(name)
+
+ if missing:
+ raise ValueError('Documentation is missing for modules: %s' %
+ ', '.join(missing))
+
+ return '\n'.join(parts)
+
+
+def generate_docs(app):
+ """Generate binman documentation RST files.
+
+ Called by Sphinx during the builder-inited event, before any RST files
+ are read.
+
+ Args:
+ app: The Sphinx application object
+ """
+ srcdir = os.path.abspath(os.path.join(app.srcdir, '..'))
+ outdir = os.path.join(app.srcdir, 'develop', 'package')
+
+ entries_rst = os.path.join(outdir, 'entries.rst')
+ content = generate_entry_docs(srcdir)
+ with open(entries_rst, 'w') as outf:
+ outf.write(content)
+
+ bintools_rst = os.path.join(outdir, 'bintools.rst')
+ content = generate_bintool_docs(srcdir)
+ with open(bintools_rst, 'w') as outf:
+ outf.write(content)
+
+
+def setup(app):
+ app.connect('builder-inited', generate_docs)
+ return {'version': '1.0', 'parallel_read_safe': True}
diff --git a/doc/usage/cmd/pstore.rst b/doc/usage/cmd/pstore.rst
index 63a437135ec..b8e2a478421 100644
--- a/doc/usage/cmd/pstore.rst
+++ b/doc/usage/cmd/pstore.rst
@@ -80,8 +80,8 @@ For test purpose, you can generate a kernel crash by setting reboot timeout to
Retrieve logs in U-Boot
~~~~~~~~~~~~~~~~~~~~~~~
-First of all, unless PStore parameters as been set during U-Boot configuration
-and match kernel ramoops parameters, it needs to be set using 'pstore set', e.g.::
+First of all, unless PStore parameters have been set during U-Boot configuration
+and match kernel ramoops parameters, they need to be set using 'pstore set', e.g.::
=> pstore set 0x30000000 0x100000 0x2000 0x2000
diff --git a/doc/usage/fdt_overlays.rst b/doc/usage/fdt_overlays.rst
index 15ebd17ccb1..730cb85b39a 100644
--- a/doc/usage/fdt_overlays.rst
+++ b/doc/usage/fdt_overlays.rst
@@ -104,11 +104,11 @@ Manually Loading and Applying Overlays
=> fdt addr $fdtaddr
-4. Grow it enough so it can encompass all applied overlays
+4. Grow it enough so it can encompass all applied overlays (the argument in hex)
::
- => fdt resize 8192
+ => fdt resize 2000
5. You are now ready to apply the overlay.
diff --git a/doc/usage/fit/howto.rst b/doc/usage/fit/howto.rst
index 675c9aa5bb0..9c8d86e50be 100644
--- a/doc/usage/fit/howto.rst
+++ b/doc/usage/fit/howto.rst
@@ -157,7 +157,7 @@ development host is to be booted old-style (non-FDT) by U-Boot on an embedded
target. Assume that the outcome of the build is vmlinux.bin.gz, a file which
contains a gzip-compressed PPC Linux kernel (the only data file in this case).
The uImage can be produced using the image source file
-doc/uImage.FIT/kernel.its (note that kernel.its assumes that vmlinux.bin.gz is
+doc/usage/fit/kernel.rst (note that kernel.its assumes that vmlinux.bin.gz is
in the current working directory; if desired, an alternative path can be
specified in the kernel.its file). Here's how to create the image and inspect
its contents:
@@ -269,7 +269,7 @@ Example 2 -- new-style (FDT) kernel booting
Consider another simple scenario, where a PPC Linux kernel is to be booted
new-style, i.e., with a FDT blob. In this case there are two prerequisite data
files: vmlinux.bin.gz (Linux kernel) and target.dtb (FDT blob). The uImage can
-be produced using image source file doc/uImage.FIT/kernel_fdt.its like this
+be produced using image source file doc/usage/fit/kernel_fdt.rst like this
(note again, that both prerequisite data files are assumed to be present in
the current working directory -- image source file kernel_fdt.its can be
modified to take the files from some other location if needed):
diff --git a/doc/usage/fit/overlay-fdt-boot.rst b/doc/usage/fit/overlay-fdt-boot.rst
index 0f012d6988a..5df304047c6 100644
--- a/doc/usage/fit/overlay-fdt-boot.rst
+++ b/doc/usage/fit/overlay-fdt-boot.rst
@@ -141,25 +141,21 @@ explosion problem::
data = /incbin/("./reva.dtbo");
type = "flat_dt";
arch = "arm";
- load = <0x87fc0000>;
};
fdt-3 {
data = /incbin/("./revb.dtbo");
type = "flat_dt";
arch = "arm";
- load = <0x87fc0000>;
};
fdt-4 {
data = /incbin/("./bar.dtbo");
type = "flat_dt";
arch = "arm";
- load = <0x87fc0000>;
};
fdt-5 {
data = /incbin/("./baz.dtbo");
type = "flat_dt";
arch = "arm";
- load = <0x87fc0000>;
};
};
@@ -202,9 +198,7 @@ Booting this image is exactly the same as the non-overlay example.
u-boot will retrieve the base blob and apply the overlays in sequence as
they are declared in the configuration.
-Note the minimum amount of different DT blobs, as well as the requirement for
-the DT blobs to have a load address; the overlay application requires the blobs
-to be writeable.
+Note the minimum amount of different DT blobs.
Configuration using overlays and feature selection
--------------------------------------------------