summaryrefslogtreecommitdiff
path: root/doc/develop
diff options
context:
space:
mode:
Diffstat (limited to 'doc/develop')
-rw-r--r--doc/develop/distro.rst15
-rw-r--r--doc/develop/driver-model/design.rst17
-rw-r--r--doc/develop/environment.rst4
-rw-r--r--doc/develop/gdb.rst10
-rw-r--r--doc/develop/index.rst1
-rw-r--r--doc/develop/kconfig.rst157
-rw-r--r--doc/develop/release_cycle.rst30
-rw-r--r--doc/develop/sending_patches.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2025.01.rst907
-rw-r--r--doc/develop/trace.rst11
-rw-r--r--doc/develop/uefi/fwu_updates.rst4
-rw-r--r--doc/develop/uefi/uefi.rst45
12 files changed, 1173 insertions, 30 deletions
diff --git a/doc/develop/distro.rst b/doc/develop/distro.rst
index 637bc27fc2d..1d2f9c4c32b 100644
--- a/doc/develop/distro.rst
+++ b/doc/develop/distro.rst
@@ -67,11 +67,16 @@ Boot Configuration Files
------------------------
The standard format for boot configuration files is that of extlinux.conf, as
-handled by U-Boot's "syslinux" (disk) or "pxe boot" (network). This is roughly
-as specified at `Boot Loader Specification`_:
+handled by U-Boot's "syslinux" (disk) or "pxe boot" (network). This format is
+not formally standardized and documented in a single location. However, other
+implementations do document it and we attempt to be as compatible as possible.
+* The UAPI Group Specifications `Boot Loader Specification`_
-... with the exceptions that the Boot Loader Specification document:
+* The Syslinux Project documents both `PXELINUX`_ and `SYSLINUX`_ files and is
+ the originator of the format.
+
+That said, we have some differences to these documents, namely:
* Prescribes a separate configuration per boot menu option, whereas U-Boot
lumps all options into a single extlinux.conf file. Hence, U-Boot searches
@@ -440,7 +445,9 @@ way in future u-boot versions. In particular the <device type>_boot
variables (e.g. mmc_boot, usb_boot) are a strictly internal implementation
detail and must not be used as a public interface.
-.. _`Boot Loader Specification`: https://systemd.io/BOOT_LOADER_SPECIFICATION/
+.. _`Boot Loader Specification`: https://uapi-group.org/specifications/specs/boot_loader_specification/
+.. _`PXELINUX`: https://wiki.syslinux.org/wiki/index.php?title=PXELINUX
+.. _`SYSLINUX`: https://wiki.syslinux.org/wiki/index.php?title=SYSLINUX
.. sectionauthor:: (C) Copyright 2014 Red Hat Inc.
.. sectionauthor:: Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
diff --git a/doc/develop/driver-model/design.rst b/doc/develop/driver-model/design.rst
index 8c2c81d7ac9..92f638a0204 100644
--- a/doc/develop/driver-model/design.rst
+++ b/doc/develop/driver-model/design.rst
@@ -842,6 +842,23 @@ steps (see device_probe()):
cause the uclass to do some housekeeping to record the device as
activated and 'known' by the uclass.
+For some platforms, certain devices must be probed to get the platform into
+a working state. To help with this, drivers marked with DM_FLAG_PROBE_AFTER_BIND
+will be probed immediately after all devices are bound. For now, this happens in
+SPL, before relocation and after relocation. See the call to ``dm_autoprobe()``
+for where this is done.
+
+The auto-probe feature is tricky because it bypasses the normal ordering of
+probing. General, if device A (e.g. video) needs device B (e.g. clock), then
+A's probe() method uses ``clk_get_by_index()`` and B is probed before A. But
+A is only probed when it is used. Therefore care should be taken when using
+auto-probe, limiting it to devices which truly are essential, such as power
+domains or critical clocks.
+
+See here for more discussion of this feature:
+
+:Link: https://patchwork.ozlabs.org/project/uboot/patch/20240626235717.272219-1-marex@denx.de/
+
Running stage
^^^^^^^^^^^^^
diff --git a/doc/develop/environment.rst b/doc/develop/environment.rst
index e1783462bb0..e46cd39d601 100644
--- a/doc/develop/environment.rst
+++ b/doc/develop/environment.rst
@@ -18,8 +18,8 @@ The callbacks are named and associated with a function using the
U_BOOT_ENV_CALLBACK macro in your board or driver code.
These callbacks are associated with variables in one of two ways. The
-static list can be added to by defining CFG_ENV_CALLBACK_LIST_STATIC
-in the board configuration to a string that defines a list of
+static list can be added to by defining CONFIG_ENV_CALLBACK_LIST_STATIC
+in the board defconfig via menuconfig to a string that defines a list of
associations. The list must be in the following format::
entry = variable_name[:callback_name]
diff --git a/doc/develop/gdb.rst b/doc/develop/gdb.rst
index 4e359c7f226..79510ee94d3 100644
--- a/doc/develop/gdb.rst
+++ b/doc/develop/gdb.rst
@@ -8,12 +8,12 @@ Using a JTAG adapter it is possible to debug a running U-Boot with GDB.
A common way is to connect a debug adapter to the JTAG connector of your
board, run a GDB server, connect GDB to the GDB server, and use GDB as usual.
-Similarly QEMU can provide a GDB server.
+Similarly, QEMU can provide a GDB server.
Preparing build
---------------
-Building U-Boot with with reduced optimization (-Og) and without link time
+Building U-Boot with reduced optimization (-Og) and without link time
optimization is recommended for easier debugging::
CONFIG_CC_OPTIMIZE_FOR_DEBUG=y
@@ -24,7 +24,7 @@ Otherwise build, install, and run U-Boot as usual.
Using OpenOCD as GDB server
---------------------------
-`OpenOCD <https://openocd.org/>`_ is an open source tool supporting hardware
+`OpenOCD <https://openocd.org/>`_ is an open-source tool supporting hardware
debug probes, and providing a GDB server. It is readily available in major Linux
distributions or you can build it from source.
@@ -144,7 +144,7 @@ riscv gp
sh r13
============ ========
-On these architecture the relocation address cat be determined by
+On these architectures the relocation address can be determined by
dereferencing the global data pointer stored in register, *r9* in the example:
.. code-block:: console
@@ -153,7 +153,7 @@ dereferencing the global data pointer stored in register, *r9* in the example:
$1 = 0x27f7a000
In the GDB shell discard the previously loaded symbol file and add it once
-again with the relocation address like this:
+again, with the relocation address like this:
.. code-block:: console
diff --git a/doc/develop/index.rst b/doc/develop/index.rst
index 30f7fdb8847..d9f2a838207 100644
--- a/doc/develop/index.rst
+++ b/doc/develop/index.rst
@@ -13,6 +13,7 @@ General
codingstyle
designprinciples
docstyle
+ kconfig
memory
patman
process
diff --git a/doc/develop/kconfig.rst b/doc/develop/kconfig.rst
new file mode 100644
index 00000000000..227074dc497
--- /dev/null
+++ b/doc/develop/kconfig.rst
@@ -0,0 +1,157 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+Kconfig in U-Boot
+=================
+
+This document describes the configuration infrastructure of U-Boot.
+
+The conventional configuration was replaced by Kconfig at v2014.10-rc1 release.
+
+Language Specification
+----------------------
+
+The Kconfig configuration language originates in Linux kernel.
+See the Linux document
+`Kconfig Language <https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html>`_
+for a description of Kconfig.
+
+Difference from Linux's Kconfig
+-------------------------------
+
+Here are some worth-mentioning configuration targets.
+
+silentoldconfig
+ This target updates .config, include/generated/autoconf.h and
+ include/configs/* as in Linux. In U-Boot, it also does the following
+ for the compatibility with the old configuration system:
+
+ * create a symbolic link "arch/${ARCH}/include/asm/arch" pointing to
+ the SoC/CPU specific header directory
+ * create include/config.h
+ * create include/autoconf.mk
+ * create spl/include/autoconf.mk (SPL and TPL only)
+ * create tpl/include/autoconf.mk (TPL only)
+
+ If we could completely switch to Kconfig in a long run
+ (i.e. remove all the include/configs/\*.h), those additional processings
+ above would be removed.
+
+defconfig
+ In U-Boot, "make defconfig" is a shorthand of "make sandbox_defconfig"
+
+<board>_defconfig
+ Now it works as in Linux.
+ The prefixes such as "+S:" in \*_defconfig are deprecated.
+ You can simply remove the prefixes. Do not add them for new boards.
+
+<board>_config
+ This does not exist in Linux's Kconfig.
+ "make <board>_config" works the same as "make <board>_defconfig".
+ Prior to Kconfig, in U-Boot, "make <board>_config" was used for the
+ configuration. It is still supported for backward compatibility, so
+ we do not need to update the distro recipes.
+
+The other configuration targets work as in Linux Kernel.
+
+Migration steps to Kconfig
+--------------------------
+
+Prior to Kconfig, the C preprocessor based board configuration had been used
+in U-Boot.
+
+Although Kconfig was introduced and some configs have been moved to Kconfig,
+many of configs are still defined in C header files. It will take a very
+long term to move all of them to Kconfig. In the interim, the two different
+configuration infrastructures should coexist.
+The configuration files are generated by both Kconfig and the old preprocessor
+based configuration as follows:
+
+Configuration files for use in C sources
+ - include/generated/autoconf.h (generated by Kconfig for Normal)
+ - include/configs/<board>.h (exists for all boards)
+
+Configuration file for use in makefiles
+ - include/config/auto.conf (generated by Kconfig)
+ - include/autoconf.mk (generated by the old config for Normal)
+ - spl/include/autoconfig.mk (generated by the old config for SPL)
+ - tpl/include/autoconfig.mk (generated by the old config for TPL)
+
+When adding a new CONFIG macro, it is highly recommended to add it to Kconfig
+rather than to a header file.
+
+Conversion from boards.cfg to Kconfig
+-------------------------------------
+
+Prior to Kconfig, boards.cfg was a primary database that contained Arch, CPU,
+SoC, etc. of all the supported boards. It was deleted when switching to
+Kconfig. Each field of boards.cfg was converted as follows:
+
+=========== ====================================================
+From To
+=========== ====================================================
+Arch CONFIG_SYS_ARCH defined by Kconfig
+Board CONFIG_SYS_BOARD defined by Kconfig
+CPU CONFIG_SYS_CPU defined by Kconfig
+Maintainers "M:" entry of MAINTAINERS
+SoC CONFIG_SYS_SOC defined by Kconfig
+Status "S:" entry of MAINTAINERS
+Target File name of defconfig (configs/<target>\_defconfig)
+Vendor CONFIG_SYS_VENDOR defined by Kconfig
+=========== ====================================================
+
+Tips to add/remove boards
+-------------------------
+
+When adding a new board, the following steps are generally needed:
+
+1. Add a header file include/configs/<target>.h
+
+2. Make sure to define necessary CONFIG_SYS_* in Kconfig:
+
+ * Define CONFIG_SYS_CPU="cpu" to compile arch/<arch>/cpu/<cpu>
+ * Define CONFIG_SYS_SOC="soc" to compile arch/<arch>/cpu/<cpu>/<soc>
+ * Define CONFIG_SYS_VENDOR="vendor" to compile board/<vendor>/common/\*
+ and board/<vendor>/<board>/\*
+ * Define CONFIG_SYS_BOARD="board" to compile board/<board>/\*
+ (or board/<vendor>/<board>/* if CONFIG_SYS_VENDOR is defined)
+ Define CONFIG_SYS_CONFIG_NAME="target" to include
+ include/configs/<target>.h
+
+3. Add a new entry to the board select menu in Kconfig.
+ The board select menu is located in arch/<arch>/Kconfig or
+ arch/<arch>/\*/Kconfig.
+
+4. Add a MAINTAINERS file
+ It is generally placed at board/<board>/MAINTAINERS or
+ board/<vendor>/<board>/MAINTAINERS
+
+5. Add configs/<target>_defconfig
+
+When removing an obsolete board, the following steps are generally needed:
+
+1. Remove configs/<target>_defconfig
+
+2. Remove include/configs/<target>.h if it is not used by any other boards
+
+3. Remove board/<vendor>/<board>/\* or board/<board>/\* if it is not used
+ by any other boards
+
+4. Update MAINTAINERS if necessary
+
+5. Remove the unused entry from the board select menu in Kconfig
+
+6. Add an entry to doc/README.scrapyard
+
+TODO
+----
+
+* In the pre-Kconfig, a single board had multiple entries in the boards.cfg
+ file with differences in the option fields. The corresponding defconfig
+ files were auto-generated when switching to Kconfig. Now we have too many
+ defconfig files compared with the number of the supported boards. It is
+ recommended to have only one defconfig per board and allow users to select
+ the config options.
+
+* Move the config macros in header files to Kconfig. When we move at least
+ macros used in makefiles, we can drop include/autoconfig.mk, which makes
+ the build scripts much simpler.
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index faec644249e..859ae3b1974 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -51,13 +51,15 @@ Examples::
Current Status
--------------
-* U-Boot v2025.01-rc1 was released on Mon 28 October 2024.
+* U-Boot v2025.01 was released on Mon 06 January 2025.
-* The Merge Window for the next release (v2025.01) is **closed**.
+* The Merge Window for the next release (v2025.04) is **open** until the -rc1
+ release on Mon 27 January 2025.
-* The next branch is now **closed**.
+* The next branch is now **closed** until the -rc2 release on Mon 10 February
+ 2025.
-* Release "v2025.01" is scheduled for 06 January 2025.
+* Release "v2025.04" is scheduled for 07 April 2025.
Future Releases
---------------
@@ -65,31 +67,29 @@ 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 v2025.01-rc1 was released on Mon 28 October 2024.
+.. * U-Boot v2025.04-rc1 was released on Mon 27 January 2025.
-.. * U-Boot v2025.01-rc2 was released on Mon 11 November 2024.
+.. * U-Boot v2025.04-rc2 was released on Mon 10 February 2025.
-.. * U-Boot v2025.01-rc3 was released on Mon 25 November 2024.
+.. * U-Boot v2025.04-rc3 was released on Mon 24 February 2025.
-.. * U-Boot v2025.01-rc4 was released on Mon 09 December 2024.
+.. * U-Boot v2025.04-rc4 was released on Mon 10 March 2025.
-.. * U-Boot v2025.01-rc5 was released on Mon 23 December 2024.
-
-.. * U-Boot v2025.01-rc6 was released on Mon 30 December 2024.
+.. * U-Boot v2025.04-rc5 was released on Mon 24 March 2025.
Please note that the following dates are planned only and may be deviated from
as needed.
-* "v2025.01": end of MW = Mon, Oct 21, 2024; release = Mon, Jan 06, 2025
-
* "v2025.04": end of MW = Mon, Jan 27, 2025; release = Mon, Apr 07, 2025
* "v2025.07": end of MW = Mon, Apr 21, 2025; release = Mon, Jul 07, 2025
* "v2025.10": end of MW = Mon, Jul 21, 2025; release = Mon, Oct 06, 2025
+* "v2026.01": end of MW = Mon, Oct 20, 2025; release = Mon, Jan 05, 2026
+
Previous Releases
-----------------
@@ -97,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-v2025.01` which was released on 06 January 2025.
+
* :doc:`statistics/u-boot-stats-v2024.10` which was released on 07 October 2024.
* :doc:`statistics/u-boot-stats-v2024.07` which was released on 01 July 2024.
diff --git a/doc/develop/sending_patches.rst b/doc/develop/sending_patches.rst
index e22b5e3e244..ee6e34089b5 100644
--- a/doc/develop/sending_patches.rst
+++ b/doc/develop/sending_patches.rst
@@ -377,7 +377,7 @@ The following are a "rule of thumb" as to how the states are used in patchwork
today. Not all states are used by all custodians.
* New: Patch has been submitted to the list, and none of the maintainers has
- changed it's state since.
+ changed its state since.
* Under Review: A custodian is reviewing the patch currently.
diff --git a/doc/develop/statistics/u-boot-stats-v2025.01.rst b/doc/develop/statistics/u-boot-stats-v2025.01.rst
new file mode 100644
index 00000000000..668ccffba0b
--- /dev/null
+++ b/doc/develop/statistics/u-boot-stats-v2025.01.rst
@@ -0,0 +1,907 @@
+:orphan:
+
+Release Statistics for U-Boot v2025.01
+======================================
+
+* Processed 1768 changesets from 205 developers
+
+* 27 employers found
+
+* A total of 1040983 lines added, 82958 removed (delta 958025)
+
+.. table:: Developers with the most changesets
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Simon Glass 352 (19.9%)
+ Marek Vasut 114 (6.4%)
+ Heinrich Schuchardt 88 (5.0%)
+ Christian Marangi 68 (3.8%)
+ Sughosh Ganu 56 (3.2%)
+ Jerome Forissier 51 (2.9%)
+ Caleb Connolly 46 (2.6%)
+ Sam Protsenko 42 (2.4%)
+ Neil Armstrong 40 (2.3%)
+ Patrick Rudolph 34 (1.9%)
+ Tom Rini 33 (1.9%)
+ Michal Simek 32 (1.8%)
+ Ilias Apalodimas 29 (1.6%)
+ Rasmus Villemoes 29 (1.6%)
+ Raymond Mao 28 (1.6%)
+ Peng Fan 25 (1.4%)
+ Jonas Karlman 24 (1.4%)
+ Venkatesh Yadav Abbarapu 23 (1.3%)
+ Oliver Gaskell 21 (1.2%)
+ Fabio Estevam 19 (1.1%)
+ Heiko Stuebner 17 (1.0%)
+ Ye Li 16 (0.9%)
+ Svyatoslav Ryhel 15 (0.8%)
+ Paul Kocialkowski 15 (0.8%)
+ Richard Weinberger 14 (0.8%)
+ Chia-Wei Wang 12 (0.7%)
+ Takahiro Kuwano 12 (0.7%)
+ Daniel Schultz 12 (0.7%)
+ Zixun LI 11 (0.6%)
+ Paul Barker 10 (0.6%)
+ Anatolij Gustschin 10 (0.6%)
+ Manorit Chawdhry 9 (0.5%)
+ Patrice Chotard 9 (0.5%)
+ Padmarao Begari 9 (0.5%)
+ Romain Naour 9 (0.5%)
+ Bhupesh Sharma 9 (0.5%)
+ Chris Packham 8 (0.5%)
+ Andy Shevchenko 8 (0.5%)
+ Wadim Egorov 8 (0.5%)
+ Bastien Curutchet 8 (0.5%)
+ Hanyuan Zhao 8 (0.5%)
+ Chris Morgan 8 (0.5%)
+ Tim Harvey 8 (0.5%)
+ Quentin Schulz 7 (0.4%)
+ Andrew Goodbody 7 (0.4%)
+ Mattijs Korpershoek 6 (0.3%)
+ William Zhang 6 (0.3%)
+ Janne Grunau 6 (0.3%)
+ Jan Kiszka 6 (0.3%)
+ Dmitry Rokosov 6 (0.3%)
+ Sebastian Reichel 6 (0.3%)
+ Kishon Vijay Abraham I 6 (0.3%)
+ Jonathan Humphreys 5 (0.3%)
+ Patrick Delaunay 5 (0.3%)
+ Michael Walle 5 (0.3%)
+ Yuri Zaporozhets 5 (0.3%)
+ Linus Walleij 5 (0.3%)
+ Julius Lehmann 5 (0.3%)
+ Boyan Karatotev 5 (0.3%)
+ Baocheng Su 5 (0.3%)
+ Prasad Kummari 5 (0.3%)
+ Jim Liu 5 (0.3%)
+ Jacky Chou 5 (0.3%)
+ Philip Oberfichtner 5 (0.3%)
+ Andy Yan 4 (0.2%)
+ Siddharth Vadapalli 4 (0.2%)
+ david regan 4 (0.2%)
+ Ion Agorria 4 (0.2%)
+ Andrejs Cainikovs 4 (0.2%)
+ Billy Tsai 4 (0.2%)
+ Marcin Juszkiewicz 4 (0.2%)
+ Jesse Taube 4 (0.2%)
+ Alexander Kochetkov 4 (0.2%)
+ Chintan Vankar 4 (0.2%)
+ Martyn Welch 4 (0.2%)
+ Jernej Skrabec 4 (0.2%)
+ John Watts 4 (0.2%)
+ Sean Anderson 4 (0.2%)
+ Kongyang Liu 4 (0.2%)
+ Prasanth Babu Mantena 3 (0.2%)
+ J. Neuschäfer 3 (0.2%)
+ E Shattow 3 (0.2%)
+ Nicolas Belin 3 (0.2%)
+ Udit Kumar 3 (0.2%)
+ Leo Yan 3 (0.2%)
+ Love Kumar 3 (0.2%)
+ Weijie Gao 3 (0.2%)
+ Erik Schumacher 3 (0.2%)
+ Conor Dooley 3 (0.2%)
+ LekKit 3 (0.2%)
+ Maksim Kiselev 3 (0.2%)
+ Maximilian Brune 3 (0.2%)
+ FUKAUMI Naoki 3 (0.2%)
+ Hiago De Franco 3 (0.2%)
+ Devarsh Thakkar 3 (0.2%)
+ Joy Zou 3 (0.2%)
+ Andre Przywara 3 (0.2%)
+ Tomas Paukrt 3 (0.2%)
+ Arseniy Krasnov 3 (0.2%)
+ Andreas Schwab 2 (0.1%)
+ Tony Dinh 2 (0.1%)
+ Khoa Hoang 2 (0.1%)
+ Nam Cao 2 (0.1%)
+ Javier Tia 2 (0.1%)
+ Lad Prabhakar 2 (0.1%)
+ Ian Ray 2 (0.1%)
+ Paul Geurts 2 (0.1%)
+ Moritz Fischer 2 (0.1%)
+ Gilles Talis 2 (0.1%)
+ Vaishnav Achath 2 (0.1%)
+ Mayuresh Chitale 2 (0.1%)
+ Frank Sae 2 (0.1%)
+ Alex Shumsky 2 (0.1%)
+ John Vicky Vykuntapu 2 (0.1%)
+ Miquel Raynal 2 (0.1%)
+ Santhosh Kumar K 2 (0.1%)
+ Brian Ruley 2 (0.1%)
+ Ashok Reddy Soma 2 (0.1%)
+ Daniel Palmer 2 (0.1%)
+ Matthias Pritschet 2 (0.1%)
+ Dario Binacchi 2 (0.1%)
+ Vignesh Raghavendra 2 (0.1%)
+ Benjamin Hahn 2 (0.1%)
+ Yashwanth Varakala 2 (0.1%)
+ Yasuharu Shibata 2 (0.1%)
+ Mikhail Kshevetskiy 2 (0.1%)
+ Geert Uytterhoeven 1 (0.1%)
+ Ronald Wahl 1 (0.1%)
+ Francois Berder 1 (0.1%)
+ Wei Ming Chen 1 (0.1%)
+ Leonard Anderweit 1 (0.1%)
+ Johan Jonker 1 (0.1%)
+ Roger Quadros 1 (0.1%)
+ Peter Robinson 1 (0.1%)
+ Vincent Stehlé 1 (0.1%)
+ Evgeny Bachinin 1 (0.1%)
+ Mark Kettenis 1 (0.1%)
+ Dominik Wernberger 1 (0.1%)
+ Joel Stanley 1 (0.1%)
+ Ben Horgan 1 (0.1%)
+ Holger Brunck 1 (0.1%)
+ Dominique Martinet 1 (0.1%)
+ Francesco Dolcini 1 (0.1%)
+ Heiko Schocher 1 (0.1%)
+ Vasileios Amoiridis 1 (0.1%)
+ Peter Korsgaard 1 (0.1%)
+ Loic Poulain 1 (0.1%)
+ Saeed Nowshadi 1 (0.1%)
+ Sergey Bostandzhyan 1 (0.1%)
+ Chris Paterson 1 (0.1%)
+ Benjamin Szőke 1 (0.1%)
+ mason1920 1 (0.1%)
+ Uwe Kleine-König 1 (0.1%)
+ Nick Hu 1 (0.1%)
+ Henrik Grimler 1 (0.1%)
+ Baruch Siach 1 (0.1%)
+ Markus Volk 1 (0.1%)
+ Tudor Ambarus 1 (0.1%)
+ Jonas Jelonek 1 (0.1%)
+ Alexander Dahl 1 (0.1%)
+ Anton Blanchard 1 (0.1%)
+ Li Hua Qian 1 (0.1%)
+ Daniel Semkowicz 1 (0.1%)
+ Lukasz Czechowski 1 (0.1%)
+ Paul Alvin 1 (0.1%)
+ Philip Balister 1 (0.1%)
+ Han Xu 1 (0.1%)
+ Dmitry Dunaev 1 (0.1%)
+ Guillaume La Roque 1 (0.1%)
+ Eva Kurchatova 1 (0.1%)
+ Dmitrii Merkurev 1 (0.1%)
+ Ken Kurematsu 1 (0.1%)
+ Ray Chang 1 (0.1%)
+ Bhavya Kapoor 1 (0.1%)
+ Parth Pancholi 1 (0.1%)
+ Eugen Hristev 1 (0.1%)
+ Godfrey Mwangi 1 (0.1%)
+ Callum Parsey 1 (0.1%)
+ Jonas Schwöbel 1 (0.1%)
+ Sidharth Prabukumar 1 (0.1%)
+ Chris Webb 1 (0.1%)
+ Ying-Chun Liu (PaulLiu) 1 (0.1%)
+ Vitor Soares 1 (0.1%)
+ Arturo Buzarra 1 (0.1%)
+ Joakim Tjernlund 1 (0.1%)
+ Vitaliy Vasylskyy 1 (0.1%)
+ Jacky Bai 1 (0.1%)
+ Frank Li 1 (0.1%)
+ Stanley Chu 1 (0.1%)
+ Francis Laniel 1 (0.1%)
+ John Keeping 1 (0.1%)
+ Keerthy 1 (0.1%)
+ Kuan Lim Lee 1 (0.1%)
+ Rogerio Guerra Borin 1 (0.1%)
+ Mathieu Othacehe 1 (0.1%)
+ Franco Venturi 1 (0.1%)
+ Maxim Moskalets 1 (0.1%)
+ Derald D. Woods 1 (0.1%)
+ MD Danish Anwar 1 (0.1%)
+ Andrew Davis 1 (0.1%)
+ Primoz Fiser 1 (0.1%)
+ Lukasz Majewski 1 (0.1%)
+ Jianfeng A Zhu 1 (0.1%)
+ Ravi Minnikanti 1 (0.1%)
+ Michael Polyntsov 1 (0.1%)
+ ==================================== =====
+
+
+.. table:: Developers with the most changed lines
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Tom Rini 929361 (86.0%)
+ Simon Glass 18229 (1.7%)
+ Marek Vasut 12581 (1.2%)
+ Chia-Wei Wang 12218 (1.1%)
+ Peng Fan 9088 (0.8%)
+ Caleb Connolly 6163 (0.6%)
+ Christian Marangi 5779 (0.5%)
+ Sebastian Reichel 5023 (0.5%)
+ Vitaliy Vasylskyy 4735 (0.4%)
+ Fabio Estevam 4727 (0.4%)
+ Jerome Forissier 4086 (0.4%)
+ Patrick Rudolph 4001 (0.4%)
+ Bhupesh Sharma 3827 (0.4%)
+ Andrew Davis 3676 (0.3%)
+ Andre Przywara 3267 (0.3%)
+ Raymond Mao 3040 (0.3%)
+ Gilles Talis 2897 (0.3%)
+ Vaishnav Achath 2852 (0.3%)
+ david regan 2790 (0.3%)
+ Paul Barker 2574 (0.2%)
+ Sughosh Ganu 2518 (0.2%)
+ Kongyang Liu 2406 (0.2%)
+ Jonas Karlman 2194 (0.2%)
+ Oliver Gaskell 1930 (0.2%)
+ Venkatesh Yadav Abbarapu 1762 (0.2%)
+ Svyatoslav Ryhel 1540 (0.1%)
+ Jan Kiszka 1362 (0.1%)
+ Neil Armstrong 1225 (0.1%)
+ Sam Protsenko 1078 (0.1%)
+ Marcin Juszkiewicz 1045 (0.1%)
+ Heinrich Schuchardt 1022 (0.1%)
+ Conor Dooley 890 (0.1%)
+ Michal Simek 881 (0.1%)
+ Siddharth Vadapalli 879 (0.1%)
+ Heiko Stuebner 803 (0.1%)
+ Jim Liu 772 (0.1%)
+ Love Kumar 707 (0.1%)
+ Derald D. Woods 695 (0.1%)
+ Philip Oberfichtner 645 (0.1%)
+ Andy Yan 614 (0.1%)
+ Ilias Apalodimas 580 (0.1%)
+ Billy Tsai 563 (0.1%)
+ Julius Lehmann 561 (0.1%)
+ Frank Sae 499 (0.0%)
+ Chris Packham 485 (0.0%)
+ Janne Grunau 473 (0.0%)
+ Johan Jonker 469 (0.0%)
+ Alexander Kochetkov 457 (0.0%)
+ Chris Morgan 425 (0.0%)
+ Ye Li 413 (0.0%)
+ Bastien Curutchet 385 (0.0%)
+ Dmitry Rokosov 376 (0.0%)
+ Kuan Lim Lee 375 (0.0%)
+ Maximilian Brune 334 (0.0%)
+ Linus Walleij 328 (0.0%)
+ Manorit Chawdhry 302 (0.0%)
+ Rasmus Villemoes 297 (0.0%)
+ Martyn Welch 292 (0.0%)
+ Zixun LI 269 (0.0%)
+ Romain Naour 229 (0.0%)
+ Lad Prabhakar 215 (0.0%)
+ Richard Weinberger 212 (0.0%)
+ Paul Kocialkowski 209 (0.0%)
+ Chintan Vankar 202 (0.0%)
+ Keerthy 191 (0.0%)
+ Wadim Egorov 188 (0.0%)
+ Santhosh Kumar K 173 (0.0%)
+ Tim Harvey 168 (0.0%)
+ Anatolij Gustschin 155 (0.0%)
+ Prasad Kummari 154 (0.0%)
+ Hanyuan Zhao 147 (0.0%)
+ William Zhang 147 (0.0%)
+ Mayuresh Chitale 139 (0.0%)
+ Quentin Schulz 133 (0.0%)
+ Dmitrii Merkurev 124 (0.0%)
+ FUKAUMI Naoki 117 (0.0%)
+ Padmarao Begari 116 (0.0%)
+ Lukasz Czechowski 112 (0.0%)
+ Mathieu Othacehe 110 (0.0%)
+ Andrew Goodbody 106 (0.0%)
+ Francis Laniel 98 (0.0%)
+ Takahiro Kuwano 96 (0.0%)
+ Boyan Karatotev 94 (0.0%)
+ Jacky Chou 90 (0.0%)
+ Andy Shevchenko 87 (0.0%)
+ Baocheng Su 86 (0.0%)
+ Ashok Reddy Soma 83 (0.0%)
+ Mattijs Korpershoek 82 (0.0%)
+ Kishon Vijay Abraham I 80 (0.0%)
+ Daniel Schultz 73 (0.0%)
+ Jernej Skrabec 72 (0.0%)
+ Arseniy Krasnov 72 (0.0%)
+ Guillaume La Roque 71 (0.0%)
+ Benjamin Hahn 62 (0.0%)
+ Vasileios Amoiridis 58 (0.0%)
+ Udit Kumar 56 (0.0%)
+ Paul Alvin 54 (0.0%)
+ Leo Yan 53 (0.0%)
+ Paul Geurts 53 (0.0%)
+ Ion Agorria 51 (0.0%)
+ Patrick Delaunay 50 (0.0%)
+ Brian Ruley 49 (0.0%)
+ Maksim Kiselev 48 (0.0%)
+ Matthias Pritschet 47 (0.0%)
+ J. Neuschäfer 46 (0.0%)
+ Javier Tia 45 (0.0%)
+ Jesse Taube 41 (0.0%)
+ Joy Zou 41 (0.0%)
+ Tony Dinh 40 (0.0%)
+ Ravi Minnikanti 39 (0.0%)
+ Sean Anderson 38 (0.0%)
+ Prasanth Babu Mantena 37 (0.0%)
+ Khoa Hoang 37 (0.0%)
+ Parth Pancholi 36 (0.0%)
+ Yasuharu Shibata 35 (0.0%)
+ Dmitry Dunaev 35 (0.0%)
+ Weijie Gao 34 (0.0%)
+ Sergey Bostandzhyan 32 (0.0%)
+ Arturo Buzarra 32 (0.0%)
+ Patrice Chotard 30 (0.0%)
+ Jonathan Humphreys 30 (0.0%)
+ Erik Schumacher 30 (0.0%)
+ Alex Shumsky 30 (0.0%)
+ Nick Hu 30 (0.0%)
+ Tomas Paukrt 27 (0.0%)
+ Devarsh Thakkar 24 (0.0%)
+ Michael Polyntsov 24 (0.0%)
+ Callum Parsey 23 (0.0%)
+ Yuri Zaporozhets 22 (0.0%)
+ Hiago De Franco 21 (0.0%)
+ Chris Webb 21 (0.0%)
+ Francois Berder 20 (0.0%)
+ John Watts 19 (0.0%)
+ Nicolas Belin 19 (0.0%)
+ Daniel Palmer 19 (0.0%)
+ Michael Walle 18 (0.0%)
+ Bhavya Kapoor 18 (0.0%)
+ Jonas Schwöbel 18 (0.0%)
+ Stanley Chu 18 (0.0%)
+ Benjamin Szőke 17 (0.0%)
+ John Keeping 17 (0.0%)
+ Ian Ray 14 (0.0%)
+ John Vicky Vykuntapu 13 (0.0%)
+ Peter Korsgaard 13 (0.0%)
+ MD Danish Anwar 13 (0.0%)
+ Vignesh Raghavendra 12 (0.0%)
+ Andrejs Cainikovs 11 (0.0%)
+ Li Hua Qian 10 (0.0%)
+ Moritz Fischer 9 (0.0%)
+ Evgeny Bachinin 9 (0.0%)
+ Loic Poulain 9 (0.0%)
+ Joakim Tjernlund 9 (0.0%)
+ Miquel Raynal 8 (0.0%)
+ Lukasz Majewski 8 (0.0%)
+ Jianfeng A Zhu 8 (0.0%)
+ Nam Cao 7 (0.0%)
+ Holger Brunck 7 (0.0%)
+ Heiko Schocher 7 (0.0%)
+ Andreas Schwab 6 (0.0%)
+ Geert Uytterhoeven 6 (0.0%)
+ Anton Blanchard 6 (0.0%)
+ Jacky Bai 6 (0.0%)
+ E Shattow 5 (0.0%)
+ Ray Chang 5 (0.0%)
+ LekKit 4 (0.0%)
+ Yashwanth Varakala 4 (0.0%)
+ Peter Robinson 4 (0.0%)
+ Maxim Moskalets 4 (0.0%)
+ Ronald Wahl 3 (0.0%)
+ Uwe Kleine-König 3 (0.0%)
+ Markus Volk 3 (0.0%)
+ Eugen Hristev 3 (0.0%)
+ Godfrey Mwangi 3 (0.0%)
+ Dario Binacchi 2 (0.0%)
+ Mikhail Kshevetskiy 2 (0.0%)
+ Wei Ming Chen 2 (0.0%)
+ Leonard Anderweit 2 (0.0%)
+ Dominik Wernberger 2 (0.0%)
+ Joel Stanley 2 (0.0%)
+ Saeed Nowshadi 2 (0.0%)
+ Henrik Grimler 2 (0.0%)
+ Eva Kurchatova 2 (0.0%)
+ Frank Li 2 (0.0%)
+ Rogerio Guerra Borin 2 (0.0%)
+ Roger Quadros 1 (0.0%)
+ Vincent Stehlé 1 (0.0%)
+ Mark Kettenis 1 (0.0%)
+ Ben Horgan 1 (0.0%)
+ Dominique Martinet 1 (0.0%)
+ Francesco Dolcini 1 (0.0%)
+ Chris Paterson 1 (0.0%)
+ mason1920 1 (0.0%)
+ Baruch Siach 1 (0.0%)
+ Tudor Ambarus 1 (0.0%)
+ Jonas Jelonek 1 (0.0%)
+ Alexander Dahl 1 (0.0%)
+ Daniel Semkowicz 1 (0.0%)
+ Philip Balister 1 (0.0%)
+ Han Xu 1 (0.0%)
+ Ken Kurematsu 1 (0.0%)
+ Sidharth Prabukumar 1 (0.0%)
+ Ying-Chun Liu (PaulLiu) 1 (0.0%)
+ Vitor Soares 1 (0.0%)
+ Franco Venturi 1 (0.0%)
+ Primoz Fiser 1 (0.0%)
+ ==================================== =====
+
+
+.. table:: Developers with the most lines removed
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Marek Vasut 6902 (8.3%)
+ Andrew Davis 3578 (4.3%)
+ Andre Przywara 3255 (3.9%)
+ david regan 2650 (3.2%)
+ Paul Barker 2432 (2.9%)
+ Fabio Estevam 2002 (2.4%)
+ Caleb Connolly 1697 (2.0%)
+ Jan Kiszka 1189 (1.4%)
+ Conor Dooley 758 (0.9%)
+ Derald D. Woods 693 (0.8%)
+ Johan Jonker 469 (0.6%)
+ Lad Prabhakar 182 (0.2%)
+ Paul Kocialkowski 134 (0.2%)
+ Andy Shevchenko 44 (0.1%)
+ Tony Dinh 18 (0.0%)
+ Manorit Chawdhry 13 (0.0%)
+ Maximilian Brune 8 (0.0%)
+ Holger Brunck 7 (0.0%)
+ Jacky Bai 6 (0.0%)
+ Anatolij Gustschin 5 (0.0%)
+ Li Hua Qian 5 (0.0%)
+ Miquel Raynal 3 (0.0%)
+ E Shattow 3 (0.0%)
+ Geert Uytterhoeven 2 (0.0%)
+ Maxim Moskalets 2 (0.0%)
+ Uwe Kleine-König 2 (0.0%)
+ Hiago De Franco 1 (0.0%)
+ Anton Blanchard 1 (0.0%)
+ Roger Quadros 1 (0.0%)
+ ==================================== =====
+
+
+.. table:: Developers with the most signoffs (total 307)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Minkyu Kang 41 (13.4%)
+ Mattijs Korpershoek 34 (11.1%)
+ Michal Simek 27 (8.8%)
+ Peng Fan 25 (8.1%)
+ Neil Armstrong 19 (6.2%)
+ Nathan Barrett-Morrison 13 (4.2%)
+ Greg Malysa 12 (3.9%)
+ Ilias Apalodimas 10 (3.3%)
+ Heiko Stuebner 10 (3.3%)
+ Chintan Vankar 8 (2.6%)
+ Siddharth Vadapalli 7 (2.3%)
+ Jan Kiszka 6 (2.0%)
+ Miquel Raynal 6 (2.0%)
+ Trevor Woerner 6 (2.0%)
+ Linus Walleij 6 (2.0%)
+ Leo Yan 5 (1.6%)
+ Svyatoslav Ryhel 5 (1.6%)
+ Jonas Karlman 5 (1.6%)
+ Tom Rini 5 (1.6%)
+ Max Krummenacher 4 (1.3%)
+ Ashok Reddy Soma 4 (1.3%)
+ Patrick Rudolph 4 (1.3%)
+ Simon Glass 3 (1.0%)
+ Marek Vasut 2 (0.7%)
+ Tejas Bhumkar 2 (0.7%)
+ Nishanth Menon 2 (0.7%)
+ Alice Guo 2 (0.7%)
+ Wang Jie 2 (0.7%)
+ Chen-Yu Tsai 2 (0.7%)
+ Prasanth Babu Mantena 2 (0.7%)
+ Guillaume La Roque 2 (0.7%)
+ Venkatesh Yadav Abbarapu 2 (0.7%)
+ Caleb Connolly 1 (0.3%)
+ Lad Prabhakar 1 (0.3%)
+ Hiago De Franco 1 (0.3%)
+ Mikhail Kshevetskiy 1 (0.3%)
+ Francesco Dolcini 1 (0.3%)
+ Chris Paterson 1 (0.3%)
+ T Karthik Reddy 1 (0.3%)
+ Srinivas Goud 1 (0.3%)
+ Shawn Guo 1 (0.3%)
+ Jackson Cooper-Driver 1 (0.3%)
+ Cody Schuffelen 1 (0.3%)
+ Jayesh Choudhary 1 (0.3%)
+ Ian Roberts 1 (0.3%)
+ Wei Liang Lim 1 (0.3%)
+ Andreas Dannenberg 1 (0.3%)
+ Vignesh Raghavendra 1 (0.3%)
+ Benjamin Szőke 1 (0.3%)
+ Jernej Skrabec 1 (0.3%)
+ Francis Laniel 1 (0.3%)
+ Daniel Schultz 1 (0.3%)
+ Kishon Vijay Abraham I 1 (0.3%)
+ William Zhang 1 (0.3%)
+ Heinrich Schuchardt 1 (0.3%)
+ Ye Li 1 (0.3%)
+ ==================================== =====
+
+
+.. table:: Developers with the most reviews (total 1015)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Simon Glass 195 (19.2%)
+ Ilias Apalodimas 103 (10.1%)
+ Tom Rini 62 (6.1%)
+ Mattijs Korpershoek 57 (5.6%)
+ Kever Yang 57 (5.6%)
+ Marek Vasut 39 (3.8%)
+ Leo Yu-Chi Liang 36 (3.5%)
+ Peng Fan 30 (3.0%)
+ Neil Armstrong 30 (3.0%)
+ Quentin Schulz 30 (3.0%)
+ Stefan Roese 28 (2.8%)
+ Heiko Schocher 26 (2.6%)
+ Peter Robinson 25 (2.5%)
+ Heinrich Schuchardt 24 (2.4%)
+ Patrick Delaunay 21 (2.1%)
+ Caleb Connolly 19 (1.9%)
+ Fabio Estevam 15 (1.5%)
+ Michael Nazzareno Trimarchi 12 (1.2%)
+ William Zhang 11 (1.1%)
+ Sumit Garg 11 (1.1%)
+ Sean Anderson 11 (1.1%)
+ Jaehoon Chung 10 (1.0%)
+ Neha Malcom Francis 10 (1.0%)
+ Aniket Limaye 9 (0.9%)
+ Michal Simek 8 (0.8%)
+ Alexander Sverdlin 8 (0.8%)
+ Jerome Forissier 8 (0.8%)
+ Jonas Karlman 6 (0.6%)
+ Ye Li 6 (0.6%)
+ Tudor Ambarus 6 (0.6%)
+ Patrice Chotard 6 (0.6%)
+ Miquel Raynal 5 (0.5%)
+ Moritz Fischer 5 (0.5%)
+ Bryan Brattlof 5 (0.5%)
+ Love Kumar 5 (0.5%)
+ Andre Przywara 4 (0.4%)
+ Paul Kocialkowski 4 (0.4%)
+ Anand Gore 4 (0.4%)
+ Pratyush Yadav 4 (0.4%)
+ Florian Fainelli 4 (0.4%)
+ Linus Walleij 3 (0.3%)
+ Guillaume La Roque 3 (0.3%)
+ Paul Barker 3 (0.3%)
+ Daniel Golle 3 (0.3%)
+ Dhruva Gole 3 (0.3%)
+ Venkatesh Yadav Abbarapu 2 (0.2%)
+ Andrew Davis 2 (0.2%)
+ david regan 2 (0.2%)
+ Roger Quadros 2 (0.2%)
+ Heiko Thiery 2 (0.2%)
+ Dragan Simic 2 (0.2%)
+ Jagan Teki 2 (0.2%)
+ Udit Kumar 2 (0.2%)
+ Siddharth Vadapalli 1 (0.1%)
+ Leo Yan 1 (0.1%)
+ Francesco Dolcini 1 (0.1%)
+ Jayesh Choudhary 1 (0.1%)
+ Vignesh Raghavendra 1 (0.1%)
+ Andy Shevchenko 1 (0.1%)
+ Tony Dinh 1 (0.1%)
+ Frieder Schrempf 1 (0.1%)
+ Qu Wenruo 1 (0.1%)
+ Igor Opaniuk 1 (0.1%)
+ Christoph Niedermaier 1 (0.1%)
+ Andrew Lunn 1 (0.1%)
+ Patrick Wildt 1 (0.1%)
+ Aurelien Jarno 1 (0.1%)
+ Kamal Dasu 1 (0.1%)
+ Julien Masson 1 (0.1%)
+ Hari Prasath Gujulan Elango 1 (0.1%)
+ Jacky Cao 1 (0.1%)
+ Toyama, Yoshihiro 1 (0.1%)
+ Andrejs Cainikovs 1 (0.1%)
+ Padmarao Begari 1 (0.1%)
+ Benjamin Hahn 1 (0.1%)
+ Tim Harvey 1 (0.1%)
+ Sughosh Ganu 1 (0.1%)
+ Raymond Mao 1 (0.1%)
+ ==================================== =====
+
+
+.. table:: Developers with the most test credits (total 164)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Tom Rini 23 (14.0%)
+ Julius Lehmann 17 (10.4%)
+ Uwe Kleine-König 14 (8.5%)
+ Venkatesh Yadav Abbarapu 13 (7.9%)
+ Derald D. Woods 12 (7.3%)
+ Michal Simek 9 (5.5%)
+ Mattijs Korpershoek 8 (4.9%)
+ Caleb Connolly 7 (4.3%)
+ Guillaume La Roque 6 (3.7%)
+ Soeren Moch 5 (3.0%)
+ Anand Moon 5 (3.0%)
+ Frank Wunderlich 4 (2.4%)
+ Chris Morgan 4 (2.4%)
+ Ilias Apalodimas 3 (1.8%)
+ Daniel Golle 3 (1.8%)
+ Quentin Schulz 2 (1.2%)
+ Heiko Schocher 2 (1.2%)
+ Patrick Delaunay 2 (1.2%)
+ Patrice Chotard 2 (1.2%)
+ Heiko Thiery 2 (1.2%)
+ Loic Devulder 2 (1.2%)
+ Adam Ford 2 (1.2%)
+ Javier Fernandez Pastrana 2 (1.2%)
+ Vaishnav Achath 2 (1.2%)
+ Neil Armstrong 1 (0.6%)
+ Fabio Estevam 1 (0.6%)
+ William Zhang 1 (0.6%)
+ Sughosh Ganu 1 (0.6%)
+ Johan Jonker 1 (0.6%)
+ E Shattow 1 (0.6%)
+ Enric Balletbo i Serra 1 (0.6%)
+ Ryan Walklin 1 (0.6%)
+ Teresa Remmet 1 (0.6%)
+ Andreas Schwab 1 (0.6%)
+ Andrew Goodbody 1 (0.6%)
+ Jonathan Humphreys 1 (0.6%)
+ Gilles Talis 1 (0.6%)
+ ==================================== =====
+
+
+.. table:: Developers who gave the most tested-by credits (total 164)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Neil Armstrong 23 (14.0%)
+ Simon Glass 21 (12.8%)
+ Heiko Stuebner 14 (8.5%)
+ Paul Kocialkowski 13 (7.9%)
+ Bhupesh Sharma 12 (7.3%)
+ Sughosh Ganu 10 (6.1%)
+ Sebastian Reichel 10 (6.1%)
+ Dmitry Rokosov 9 (5.5%)
+ Marek Vasut 8 (4.9%)
+ Heinrich Schuchardt 6 (3.7%)
+ Jerome Forissier 4 (2.4%)
+ Jernej Skrabec 4 (2.4%)
+ Weijie Gao 4 (2.4%)
+ Christian Marangi 4 (2.4%)
+ Peng Fan 2 (1.2%)
+ Nam Cao 2 (1.2%)
+ Michael Walle 2 (1.2%)
+ Sam Protsenko 2 (1.2%)
+ Tom Rini 1 (0.6%)
+ Venkatesh Yadav Abbarapu 1 (0.6%)
+ Caleb Connolly 1 (0.6%)
+ Chris Morgan 1 (0.6%)
+ Ilias Apalodimas 1 (0.6%)
+ William Zhang 1 (0.6%)
+ Jonas Karlman 1 (0.6%)
+ Prasanth Babu Mantena 1 (0.6%)
+ Mark Kettenis 1 (0.6%)
+ Lukasz Majewski 1 (0.6%)
+ Ion Agorria 1 (0.6%)
+ Tomas Paukrt 1 (0.6%)
+ Rasmus Villemoes 1 (0.6%)
+ Dmitrii Merkurev 1 (0.6%)
+ ==================================== =====
+
+
+.. table:: Developers with the most report credits (total 32)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Tom Rini 5 (15.6%)
+ Simon Glass 3 (9.4%)
+ Patrick Delaunay 3 (9.4%)
+ Heinrich Schuchardt 2 (6.2%)
+ Ilias Apalodimas 2 (6.2%)
+ Jonas Karlman 1 (3.1%)
+ Mattijs Korpershoek 1 (3.1%)
+ Patrice Chotard 1 (3.1%)
+ Heiko Thiery 1 (3.1%)
+ Vaishnav Achath 1 (3.1%)
+ E Shattow 1 (3.1%)
+ Enric Balletbo i Serra 1 (3.1%)
+ Gilles Talis 1 (3.1%)
+ Leo Yu-Chi Liang 1 (3.1%)
+ Michael Nazzareno Trimarchi 1 (3.1%)
+ Conor Dooley 1 (3.1%)
+ Vinh Nguyen 1 (3.1%)
+ João Paulo Gonçalves 1 (3.1%)
+ Adriano Cordova 1 (3.1%)
+ Rudi Heitbaum 1 (3.1%)
+ kernel test robot 1 (3.1%)
+ Alexander Dahl 1 (3.1%)
+ ==================================== =====
+
+
+.. table:: Developers who gave the most report credits (total 32)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Jerome Forissier 7 (21.9%)
+ Heinrich Schuchardt 6 (18.8%)
+ Marek Vasut 4 (12.5%)
+ Ilias Apalodimas 3 (9.4%)
+ Tom Rini 1 (3.1%)
+ Simon Glass 1 (3.1%)
+ Sughosh Ganu 1 (3.1%)
+ Peng Fan 1 (3.1%)
+ Michael Walle 1 (3.1%)
+ Michal Simek 1 (3.1%)
+ Quentin Schulz 1 (3.1%)
+ Geert Uytterhoeven 1 (3.1%)
+ Markus Volk 1 (3.1%)
+ Eva Kurchatova 1 (3.1%)
+ Devarsh Thakkar 1 (3.1%)
+ Yasuharu Shibata 1 (3.1%)
+ ==================================== =====
+
+
+.. table:: Top changeset contributors by employer
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 576 (32.6%)
+ Google LLC 355 (20.1%)
+ Linaro 314 (17.8%)
+ DENX Software Engineering 96 (5.4%)
+ AMD 78 (4.4%)
+ Renesas Electronics 67 (3.8%)
+ NXP 47 (2.7%)
+ Texas Instruments 47 (2.7%)
+ Konsulko Group 33 (1.9%)
+ Phytec 25 (1.4%)
+ Analog Devices 21 (1.2%)
+ ST Microelectronics 14 (0.8%)
+ ARM 13 (0.7%)
+ Siemens 12 (0.7%)
+ Toradex 11 (0.6%)
+ BayLibre SAS 10 (0.6%)
+ Bootlin 10 (0.6%)
+ Broadcom 10 (0.6%)
+ Collabora Ltd. 10 (0.6%)
+ Intel 8 (0.5%)
+ Amarula Solutions 3 (0.2%)
+ linutronix 2 (0.1%)
+ SUSE 2 (0.1%)
+ Sony 1 (0.1%)
+ Debian.org 1 (0.1%)
+ Digi International 1 (0.1%)
+ Marvell 1 (0.1%)
+ ==================================== =====
+
+
+.. table:: Top lines changed by employer
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Konsulko Group 929361 (86.0%)
+ (Unknown) 52999 (4.9%)
+ Linaro 20228 (1.9%)
+ Google LLC 18362 (1.7%)
+ DENX Software Engineering 13574 (1.3%)
+ NXP 9551 (0.9%)
+ Texas Instruments 8545 (0.8%)
+ Renesas Electronics 7339 (0.7%)
+ Collabora Ltd. 5315 (0.5%)
+ AMD 3772 (0.3%)
+ ARM 3416 (0.3%)
+ Broadcom 2937 (0.3%)
+ Analog Devices 1930 (0.2%)
+ Siemens 1458 (0.1%)
+ Bootlin 393 (0.0%)
+ Phytec 329 (0.0%)
+ BayLibre SAS 172 (0.0%)
+ Amarula Solutions 100 (0.0%)
+ Intel 87 (0.0%)
+ ST Microelectronics 80 (0.0%)
+ Toradex 72 (0.0%)
+ Marvell 39 (0.0%)
+ Digi International 32 (0.0%)
+ Sony 8 (0.0%)
+ linutronix 7 (0.0%)
+ SUSE 6 (0.0%)
+ Debian.org 3 (0.0%)
+ ==================================== =====
+
+
+.. table:: Employers with the most signoffs (total 307)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 63 (20.5%)
+ Samsung 41 (13.4%)
+ Linaro 36 (11.7%)
+ AMD 36 (11.7%)
+ BayLibre SAS 36 (11.7%)
+ NXP 28 (9.1%)
+ Texas Instruments 23 (7.5%)
+ ARM 6 (2.0%)
+ Siemens 6 (2.0%)
+ Bootlin 6 (2.0%)
+ Toradex 6 (2.0%)
+ Konsulko Group 5 (1.6%)
+ Google LLC 4 (1.3%)
+ Renesas Electronics 4 (1.3%)
+ Rockchip 2 (0.7%)
+ Broadcom 1 (0.3%)
+ Phytec 1 (0.3%)
+ Amarula Solutions 1 (0.3%)
+ Canonical 1 (0.3%)
+ Xilinx 1 (0.3%)
+ ==================================== =====
+
+
+.. table:: Employers with the most hackers (total 206)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 107 (51.9%)
+ Linaro 15 (7.3%)
+ Texas Instruments 15 (7.3%)
+ AMD 9 (4.4%)
+ NXP 6 (2.9%)
+ Toradex 6 (2.9%)
+ DENX Software Engineering 6 (2.9%)
+ ARM 5 (2.4%)
+ Phytec 5 (2.4%)
+ Renesas Electronics 4 (1.9%)
+ BayLibre SAS 3 (1.5%)
+ Siemens 3 (1.5%)
+ Google LLC 3 (1.5%)
+ Bootlin 2 (1.0%)
+ Broadcom 2 (1.0%)
+ Amarula Solutions 2 (1.0%)
+ Collabora Ltd. 2 (1.0%)
+ ST Microelectronics 2 (1.0%)
+ Konsulko Group 1 (0.5%)
+ Analog Devices 1 (0.5%)
+ Intel 1 (0.5%)
+ Marvell 1 (0.5%)
+ Digi International 1 (0.5%)
+ Sony 1 (0.5%)
+ linutronix 1 (0.5%)
+ SUSE 1 (0.5%)
+ Debian.org 1 (0.5%)
+ ==================================== =====
diff --git a/doc/develop/trace.rst b/doc/develop/trace.rst
index 546862020b1..d3c8628d124 100644
--- a/doc/develop/trace.rst
+++ b/doc/develop/trace.rst
@@ -163,6 +163,17 @@ you will see the time taken by each function shown against its exit record.
u-boot-1 [000] 3.116466: funcgraph_entry: 0.063 us | memset();
u-boot-1 [000] 3.116539: funcgraph_exit: 0.143 us | }
+The `trace wipe` command may be used to clear the trace buffer. It leaves
+tracing in its current enable state. This command is convenient when tracing a
+single command, for example:
+
+.. code-block:: console
+
+ => trace pause; trace wipe
+ => trace resume; dhcp; trace pause
+ => trace stats
+ ...
+
Flame graph
-----------
diff --git a/doc/develop/uefi/fwu_updates.rst b/doc/develop/uefi/fwu_updates.rst
index 51e8a28efe1..84713581459 100644
--- a/doc/develop/uefi/fwu_updates.rst
+++ b/doc/develop/uefi/fwu_updates.rst
@@ -170,7 +170,7 @@ build the tool, enable::
CONFIG_TOOLS_MKEFICAPSULE=y
-Run the following commands to generate the accept/revert capsules::
+Run the following commands to generate the accept/revert capsules:
.. code-block:: bash
@@ -180,7 +180,7 @@ Run the following commands to generate the accept/revert capsules::
<capsule_file_name>
Some examples of using the mkeficapsule tool for generation of the
-empty capsule would be::
+empty capsule would be:
.. code-block:: bash
diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst
index 0760ca91d4f..48d6110b2ad 100644
--- a/doc/develop/uefi/uefi.rst
+++ b/doc/develop/uefi/uefi.rst
@@ -681,8 +681,8 @@ UEFI variables. Booting according to these variables is possible via::
As of U-Boot v2020.10 UEFI variables cannot be set at runtime. The U-Boot
command 'efidebug' can be used to set the variables.
-UEFI HTTP Boot
-~~~~~~~~~~~~~~
+UEFI HTTP Boot using the legacy TCP stack
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HTTP Boot provides the capability for system deployment and configuration
over the network. HTTP Boot can be activated by specifying::
@@ -715,6 +715,47 @@ We need to preset the "httpserverip" environment variable to proceed the wget::
setenv httpserverip 192.168.1.1
+UEFI HTTP(s) Boot using lwIP
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Similar to the above U-Boot can do EFI HTTP boot using lwIP. If we combine this
+with Mbed TLS we can also download from https://
+
+HTTP(s) Boot can be activated by specifying::
+
+ CONFIG_EFI_HTTP_BOOT
+ CONFIG_NET_LWIP
+ CONFIG_WGET_HTTPS
+
+For QEMU targets there's a Kconfig that supports this by default::
+
+ make qemu_arm64_lwip_defconfig
+
+The commands and functionality are similar to the legacy stack, with the notable
+exception of not having to define an "httpserverip" if you are trying to resolve
+an IP. However, lwIP code doesn't yet support redirects::
+
+ => efidebug boot add -u 1 netinst https://cdimage.debian.org/cdimage/weekly-builds/arm64/iso-cd/debian-testing-arm64-netinst.iso
+ => dhcp
+ DHCP client bound to address 10.0.2.15 (3 ms)
+ => efidebug boot order 1
+ => bootefi bootmgr
+
+ HTTP server error 302
+ Loading Boot0001 'netinst' failed
+ EFI boot manager: Cannot load any image
+
+If the url you specified isn't a redirect::
+
+ => efidebug boot add -u 1 netinst https://download.rockylinux.org/pub/rocky/9/isos/aarch64/Rocky-9.4-aarch64-minimal.iso
+ => dhcp
+ => bootefi bootmgr
+ #######################################
+
+If the downloaded file extension is .iso or .img file, efibootmgr tries to
+mount the image and boot with the default file(e.g. EFI/BOOT/BOOTAA64.EFI).
+If the downloaded file is PE-COFF image, load the downloaded file and
+start it.
+
Executing the built in hello world application
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~