diff options
Diffstat (limited to 'doc/develop')
-rw-r--r-- | doc/develop/distro.rst | 15 | ||||
-rw-r--r-- | doc/develop/driver-model/design.rst | 17 | ||||
-rw-r--r-- | doc/develop/environment.rst | 4 | ||||
-rw-r--r-- | doc/develop/gdb.rst | 10 | ||||
-rw-r--r-- | doc/develop/index.rst | 1 | ||||
-rw-r--r-- | doc/develop/kconfig.rst | 157 | ||||
-rw-r--r-- | doc/develop/release_cycle.rst | 30 | ||||
-rw-r--r-- | doc/develop/sending_patches.rst | 2 | ||||
-rw-r--r-- | doc/develop/statistics/u-boot-stats-v2025.01.rst | 907 | ||||
-rw-r--r-- | doc/develop/trace.rst | 11 | ||||
-rw-r--r-- | doc/develop/uefi/fwu_updates.rst | 4 | ||||
-rw-r--r-- | doc/develop/uefi/uefi.rst | 45 |
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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |