Merge branch 'next'

Signed-off-by: Tom Rini <trini@konsulko.com>
diff --git a/Makefile b/Makefile
index 0f37c4b..af062c0 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
 VERSION = 2023
 PATCHLEVEL = 04
 SUBLEVEL =
-EXTRAVERSION = -rc5
+EXTRAVERSION =
 NAME =
 
 # *DOCUMENTATION*
diff --git a/arch/arm/dts/imx6sx-udoo-neo-basic-u-boot.dtsi b/arch/arm/dts/imx6sx-udoo-neo-basic-u-boot.dtsi
new file mode 100644
index 0000000..be755e1
--- /dev/null
+++ b/arch/arm/dts/imx6sx-udoo-neo-basic-u-boot.dtsi
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+&soc {
+	u-boot,dm-pre-reloc;
+};
+
+&aips1 {
+	u-boot,dm-pre-reloc;
+};
+
+&pinctrl_uart1 {
+	u-boot,dm-pre-reloc;
+};
+
+&uart1 {
+	u-boot,dm-pre-reloc;
+};
diff --git a/arch/arm/dts/k3-j721e-sk-u-boot.dtsi b/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
index 0949caa..31f979f 100644
--- a/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
@@ -33,7 +33,7 @@
 &cbass_main{
 	bootph-pre-ram;
 
-	main_navss {
+	main_navss: bus@30000000 {
 		bootph-pre-ram;
 	};
 };
@@ -49,7 +49,7 @@
 		bootph-pre-ram;
 	};
 
-	mcu-navss {
+	mcu_navss: bus@28380000 {
 		bootph-pre-ram;
 
 		ringacc@2b800000 {
@@ -237,6 +237,10 @@
 	bootph-pre-ram;
 };
 
+&hbmc {
+	status = "disabled";
+};
+
 &ospi0 {
 	bootph-pre-ram;
 
diff --git a/common/cli_getch.c b/common/cli_getch.c
index 87c23ed..61d4cb2 100644
--- a/common/cli_getch.c
+++ b/common/cli_getch.c
@@ -129,7 +129,7 @@
 
 	*actp = act;
 
-	return act == ESC_CONVERTED ? ichar : 0;
+	return ichar;
 }
 
 int cli_ch_process(struct cli_ch_state *cch, int ichar)
@@ -145,6 +145,7 @@
 				return cch->esc_save[cch->emit_upto++];
 			cch->emit_upto = 0;
 			cch->emitting = false;
+			cch->esc_len = 0;
 		}
 		return 0;
 	} else if (ichar == -ETIMEDOUT) {
@@ -185,7 +186,7 @@
 			cch->esc_save[cch->esc_len++] = ichar;
 			ichar = cch->esc_save[cch->emit_upto++];
 			cch->emitting = true;
-			break;
+			return ichar;
 		case ESC_CONVERTED:
 			/* valid escape sequence, return the resulting char */
 			cch->esc_len = 0;
diff --git a/common/cli_readline.c b/common/cli_readline.c
index 709e9c3..e83743e 100644
--- a/common/cli_readline.c
+++ b/common/cli_readline.c
@@ -284,10 +284,9 @@
 			}
 
 			ichar = getcmd_getch();
+			ichar = cli_ch_process(cch, ichar);
 		}
 
-		ichar = cli_ch_process(cch, ichar);
-
 		/* ichar=0x0 when error occurs in U-Boot getc */
 		if (!ichar)
 			continue;
diff --git a/doc/develop/ci_testing.rst b/doc/develop/ci_testing.rst
index b9a9a51..ffaaced 100644
--- a/doc/develop/ci_testing.rst
+++ b/doc/develop/ci_testing.rst
@@ -50,6 +50,12 @@
 pipeline on the free public instances provided at https://gitlab.com/ a problem
 with our squashfs tests currently prevents this.
 
+To push to Gitlab without triggering a pipeline use:
+
+.. code-block:: bash
+
+    git push -o ci.skip
+
 Docker container
 ----------------
 
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index ea584ce..7d63cf4 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -48,13 +48,14 @@
 Current Status
 --------------
 
-* U-Boot v2023.01 was released on Mon 09 January 2023.
+* U-Boot v2023.04 was released on Mon 03 April 2023.
 
-* The Merge Window for the next release (v2023.04) is **closed**.
+* The Merge Window for the next release (v2023.07) is **open** until the -rc1
+  release on Mon 24 April 2023.
 
-* The next branch is now **open**.
+* The next branch is now **closed**.
 
-* Release "v2023.04" is scheduled for 03 April 2023.
+* Release "v2023.07" is scheduled for 03 July 2023.
 
 Future Releases
 ---------------
@@ -62,29 +63,29 @@
 .. 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 v2023.04-rc1 was released on Mon 30 January 2023.
+.. * U-Boot v2023.07-rc1 was released on Mon 24 April 2023.
 
-* U-Boot v2023.04-rc2 was released on Mon 13 February 2023.
+.. * U-Boot v2023.07-rc2 was released on Mon 08 May 2023.
 
-* U-Boot v2023.04-rc3 was released on Mon 27 February 2023.
+.. * U-Boot v2023.07-rc3 was released on Mon 22 May 2023.
 
-* U-Boot v2023.04-rc4 was released on Mon 13 March 2023.
+.. * U-Boot v2023.07-rc4 was released on Mon 05 June 2023.
 
-* U-Boot v2023.04-rc5 was released on Mon 27 March 2023.
+.. * U-Boot v2023.07-rc5 was released on Mon 19 June 2023.
 
 Please note that the following dates are planned only and may be deviated from
 as needed.
 
-* "v2023.04": end of MW = Mon, Jan 30, 2022; release = Mon, Apr 03, 2023
-
 * "v2023.07": end of MW = Mon, Apr 24, 2023; release = Mon, Jul 03, 2023 
 
 * "v2023.10": end of MW = Mon, Jul 24, 2023; release = Mon, Oct 02, 2023
 
 * "v2024.01": end of MW = Mon, Oct 23, 2023; release = Mon, Jan 08, 2024
 
+* "v2024.04": end of MW = Mon, Jan 29, 2024; release = Tue, Apr 02, 2024
+
 Previous Releases
 -----------------
 
@@ -92,6 +93,8 @@
 <https://source.denx.de/u-boot/gitdm>`_, which was originally created by
 Jonathan Corbet.
 
+* :doc:`statistics/u-boot-stats-v2023.04` which was released on 03 April 2023.
+
 * :doc:`statistics/u-boot-stats-v2023.01` which was released on 09 January 2023.
 
 * :doc:`statistics/u-boot-stats-v2022.10` which was released on 03 October 2022.
diff --git a/doc/develop/statistics/u-boot-stats-v2023.04.rst b/doc/develop/statistics/u-boot-stats-v2023.04.rst
new file mode 100644
index 0000000..57f2efc
--- /dev/null
+++ b/doc/develop/statistics/u-boot-stats-v2023.04.rst
@@ -0,0 +1,767 @@
+:orphan:
+
+Release Statistics for U-Boot v2023.04
+======================================
+
+* Processed 1691 changesets from 157 developers
+
+* 29 employers found
+
+* A total of 174471 lines added, 78380 removed (delta 96091)
+
+.. table:: Developers with the most changesets
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Simon Glass                           381 (22.5%)
+   Tom Rini                              333 (19.7%)
+   Marek Vasut                           101 (6.0%)
+   Heinrich Schuchardt                   70 (4.1%)
+   Jagan Teki                            53 (3.1%)
+   Jonas Karlman                         36 (2.1%)
+   Patrick Delaunay                      35 (2.1%)
+   Hai Pham                              21 (1.2%)
+   Michal Simek                          20 (1.2%)
+   Maxim Cournoyer                       20 (1.2%)
+   Svyatoslav Ryhel                      17 (1.0%)
+   Sean Anderson                         15 (0.9%)
+   Fabio Estevam                         14 (0.8%)
+   Pali Rohár                            14 (0.8%)
+   Sumit Garg                            14 (0.8%)
+   Bryan Brattlof                        14 (0.8%)
+   Sinthu Raja                           13 (0.8%)
+   Andre Przywara                        13 (0.8%)
+   Heiko Schocher                        13 (0.8%)
+   Yu Chien Peter Lin                    12 (0.7%)
+   Tim Harvey                            12 (0.7%)
+   Peng Fan                              12 (0.7%)
+   Tony Dinh                             11 (0.7%)
+   Angelo Dureghello                     11 (0.7%)
+   Masahisa Kojima                       11 (0.7%)
+   Quentin Schulz                        11 (0.7%)
+   Roger Quadros                         11 (0.7%)
+   Marcel Ziswiler                       11 (0.7%)
+   Holger Brunck                         10 (0.6%)
+   Mark Kettenis                         10 (0.6%)
+   Sergiu Moga                           10 (0.6%)
+   Nikhil M Jain                         9 (0.5%)
+   Jim Liu                               9 (0.5%)
+   Christophe Leroy                      9 (0.5%)
+   Balamanikandan Gunasundar             9 (0.5%)
+   Dario Binacchi                        8 (0.5%)
+   Samuel Holland                        8 (0.5%)
+   Frieder Schrempf                      8 (0.5%)
+   Mikhail Ilin                          8 (0.5%)
+   Sjoerd Simons                         7 (0.4%)
+   Neil Armstrong                        7 (0.4%)
+   Eugen Hristev                         7 (0.4%)
+   Chris Morgan                          7 (0.4%)
+   Dzmitry Sankouski                     7 (0.4%)
+   Ioana Ciornei                         7 (0.4%)
+   Ilias Apalodimas                      6 (0.4%)
+   Peter Robinson                        6 (0.4%)
+   Paweł Anikiel                         6 (0.4%)
+   Andrejs Cainikovs                     6 (0.4%)
+   Rob Herring                           6 (0.4%)
+   John Keeping                          5 (0.3%)
+   Mihai Sain                            5 (0.3%)
+   Rick Chen                             5 (0.3%)
+   Sergei Antonov                        5 (0.3%)
+   Ashok Reddy Soma                      5 (0.3%)
+   Algapally Santosh Sagar               5 (0.3%)
+   Dhruva Gole                           5 (0.3%)
+   Brandon Maier                         5 (0.3%)
+   Alexey Romanov                        5 (0.3%)
+   Vasily Khoruzhick                     4 (0.2%)
+   Manoj Sai                             4 (0.2%)
+   Jan Kiszka                            4 (0.2%)
+   Ovidiu Panait                         4 (0.2%)
+   Takahiro Kuwano                       4 (0.2%)
+   Enric Balletbo i Serra                4 (0.2%)
+   Fabrice Gasnier                       4 (0.2%)
+   Victor Lim                            4 (0.2%)
+   Stefan Bosch                          4 (0.2%)
+   Vincent Stehlé                        3 (0.2%)
+   Tam Nguyen                            3 (0.2%)
+   Leo Yu-Chi Liang                      3 (0.2%)
+   Mattijs Korpershoek                   3 (0.2%)
+   Ye Li                                 3 (0.2%)
+   Oleksandr Suvorov                     3 (0.2%)
+   Max Krummenacher                      3 (0.2%)
+   Andrew Davis                          3 (0.2%)
+   Michael Walle                         3 (0.2%)
+   Andreas Kemnade                       3 (0.2%)
+   Kshitiz Varshney                      3 (0.2%)
+   Dai Okamura                           3 (0.2%)
+   Stefan Roese                          2 (0.1%)
+   Vincent Fazio                         2 (0.1%)
+   Kamlesh Gurudasani                    2 (0.1%)
+   Johan Jonker                          2 (0.1%)
+   Antoine Mazeas                        2 (0.1%)
+   Christopher Obbard                    2 (0.1%)
+   Akash Gajjar                          2 (0.1%)
+   Ilko Iliev                            2 (0.1%)
+   Qu Wenruo                             2 (0.1%)
+   Etienne Carriere                      2 (0.1%)
+   Thomas Fitzsimmons                    2 (0.1%)
+   Pei Yue Ho                            2 (0.1%)
+   Ryan Chen                             2 (0.1%)
+   Adam Ford                             2 (0.1%)
+   Philippe Schenker                     2 (0.1%)
+   Linus Walleij                         2 (0.1%)
+   Sean Edmond                           2 (0.1%)
+   Nikita Shubin                         2 (0.1%)
+   Ying-Chun Liu (PaulLiu)               2 (0.1%)
+   Loic Poulain                          2 (0.1%)
+   Pengfei Fan                           2 (0.1%)
+   Jernej Skrabec                        2 (0.1%)
+   Neha Malcom Francis                   2 (0.1%)
+   Harald Seiler                         2 (0.1%)
+   Shenlin Liang                         2 (0.1%)
+   Martyn Welch                          2 (0.1%)
+   Harini Katakam                        2 (0.1%)
+   Marc Kleine-Budde                     2 (0.1%)
+   David Sebek                           1 (0.1%)
+   Jonathan Liu                          1 (0.1%)
+   Vignesh Raghavendra                   1 (0.1%)
+   Sebastian Andrzej Siewior             1 (0.1%)
+   annsai01                              1 (0.1%)
+   Peter Geis                            1 (0.1%)
+   Ralph Siemsen                         1 (0.1%)
+   Robert Marko                          1 (0.1%)
+   Michal Suchanek                       1 (0.1%)
+   Jaehoon Chung                         1 (0.1%)
+   Christian Kohlschütter                1 (0.1%)
+   Ramin Khonsari                        1 (0.1%)
+   Maxim Schwalm                         1 (0.1%)
+   Venkatesh Yadav Abbarapu              1 (0.1%)
+   Ivan Khoronzhuk                       1 (0.1%)
+   Ulf Samuelsson                        1 (0.1%)
+   Jade Lovelace                         1 (0.1%)
+   Michael Trimarchi                     1 (0.1%)
+   Matwey V. Kornilov                    1 (0.1%)
+   KaDiWa                                1 (0.1%)
+   Christian Marangi                     1 (0.1%)
+   Ehsan Mohandesi                       1 (0.1%)
+   Aurelien Jarno                        1 (0.1%)
+   Mario Kicherer                        1 (0.1%)
+   Arnaud Ferraris                       1 (0.1%)
+   Detlev Casanova                       1 (0.1%)
+   Igor Opaniuk                          1 (0.1%)
+   Massimo Pegorer                       1 (0.1%)
+   Kunihiko Hayashi                      1 (0.1%)
+   Joost van Zwieten                     1 (0.1%)
+   Jorge Ramirez-Ortiz                   1 (0.1%)
+   Jay Buddhabhatti                      1 (0.1%)
+   Andrey Dolnikov                       1 (0.1%)
+   chenzhipeng                           1 (0.1%)
+   Olivier Moysan                        1 (0.1%)
+   Ville Skyttä                          1 (0.1%)
+   David Oberhollenzer                   1 (0.1%)
+   Haijun Qin                            1 (0.1%)
+   Neal Frager                           1 (0.1%)
+   Luca Ceresoli                         1 (0.1%)
+   Viacheslav Bocharov                   1 (0.1%)
+   Yuepeng Xing                          1 (0.1%)
+   Cristian Birsan                       1 (0.1%)
+   Lokanathan, Raaj                      1 (0.1%)
+   Christian Gmeiner                     1 (0.1%)
+   Daniel Golle                          1 (0.1%)
+   Manuel Traut                          1 (0.1%)
+   Ben Dooks                             1 (0.1%)
+   Kasper Revsbech                       1 (0.1%)
+   ====================================  =====
+
+
+.. table:: Developers with the most changed lines
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Bryan Brattlof                        38811 (18.1%)
+   Tom Rini                              36464 (17.0%)
+   Simon Glass                           30090 (14.0%)
+   Jagan Teki                            23918 (11.1%)
+   Marek Vasut                           14720 (6.9%)
+   Brandon Maier                         13759 (6.4%)
+   Tony Dinh                             7399 (3.4%)
+   Balamanikandan Gunasundar             4239 (2.0%)
+   Jim Liu                               4106 (1.9%)
+   Fabio Estevam                         3264 (1.5%)
+   Christophe Leroy                      2145 (1.0%)
+   Neil Armstrong                        2020 (0.9%)
+   Nikhil M Jain                         1681 (0.8%)
+   Sumit Garg                            1671 (0.8%)
+   Tim Harvey                            1524 (0.7%)
+   Jonas Karlman                         1439 (0.7%)
+   Roger Quadros                         1431 (0.7%)
+   Quentin Schulz                        1296 (0.6%)
+   Heinrich Schuchardt                   1277 (0.6%)
+   Michal Simek                          1274 (0.6%)
+   Svyatoslav Ryhel                      1259 (0.6%)
+   Akash Gajjar                          1057 (0.5%)
+   Mark Kettenis                         1042 (0.5%)
+   Sinthu Raja                           967 (0.5%)
+   Holger Brunck                         966 (0.5%)
+   Chris Morgan                          965 (0.4%)
+   Peter Robinson                        919 (0.4%)
+   Luca Ceresoli                         860 (0.4%)
+   Hai Pham                              712 (0.3%)
+   Andre Przywara                        702 (0.3%)
+   Kunihiko Hayashi                      695 (0.3%)
+   Dario Binacchi                        690 (0.3%)
+   Patrick Delaunay                      668 (0.3%)
+   Samuel Holland                        568 (0.3%)
+   Dhruva Gole                           527 (0.2%)
+   Ryan Chen                             504 (0.2%)
+   Sergei Antonov                        464 (0.2%)
+   Sean Anderson                         439 (0.2%)
+   Ashok Reddy Soma                      399 (0.2%)
+   Masahisa Kojima                       391 (0.2%)
+   Sergiu Moga                           382 (0.2%)
+   Maxim Cournoyer                       380 (0.2%)
+   Massimo Pegorer                       353 (0.2%)
+   Linus Walleij                         317 (0.1%)
+   Eugen Hristev                         295 (0.1%)
+   Alexey Romanov                        285 (0.1%)
+   Yu Chien Peter Lin                    267 (0.1%)
+   Stefan Bosch                          260 (0.1%)
+   Dzmitry Sankouski                     257 (0.1%)
+   Heiko Schocher                        221 (0.1%)
+   Enric Balletbo i Serra                214 (0.1%)
+   Kshitiz Varshney                      211 (0.1%)
+   Thomas Fitzsimmons                    205 (0.1%)
+   Mihai Sain                            191 (0.1%)
+   Angelo Dureghello                     167 (0.1%)
+   Adam Ford                             162 (0.1%)
+   Marcel Ziswiler                       160 (0.1%)
+   Mattijs Korpershoek                   154 (0.1%)
+   Etienne Carriere                      154 (0.1%)
+   Leo Yu-Chi Liang                      135 (0.1%)
+   Ramin Khonsari                        131 (0.1%)
+   Pali Rohár                            127 (0.1%)
+   Olivier Moysan                        116 (0.1%)
+   Vincent Fazio                         106 (0.0%)
+   Fabrice Gasnier                       98 (0.0%)
+   Max Krummenacher                      80 (0.0%)
+   Takahiro Kuwano                       76 (0.0%)
+   Victor Lim                            73 (0.0%)
+   Frieder Schrempf                      72 (0.0%)
+   Manoj Sai                             70 (0.0%)
+   Andrew Davis                          70 (0.0%)
+   Mikhail Ilin                          69 (0.0%)
+   Dai Okamura                           65 (0.0%)
+   Tam Nguyen                            63 (0.0%)
+   Peng Fan                              61 (0.0%)
+   Sjoerd Simons                         61 (0.0%)
+   Cristian Birsan                       59 (0.0%)
+   Antoine Mazeas                        51 (0.0%)
+   Rick Chen                             49 (0.0%)
+   Paweł Anikiel                         47 (0.0%)
+   Andreas Kemnade                       45 (0.0%)
+   Jan Kiszka                            43 (0.0%)
+   Andrejs Cainikovs                     41 (0.0%)
+   Michael Trimarchi                     41 (0.0%)
+   Rob Herring                           40 (0.0%)
+   Martyn Welch                          36 (0.0%)
+   Stefan Roese                          35 (0.0%)
+   Neha Malcom Francis                   35 (0.0%)
+   Algapally Santosh Sagar               34 (0.0%)
+   Jernej Skrabec                        34 (0.0%)
+   Maxim Schwalm                         30 (0.0%)
+   Qu Wenruo                             29 (0.0%)
+   Loic Poulain                          29 (0.0%)
+   Ioana Ciornei                         28 (0.0%)
+   Christian Kohlschütter                28 (0.0%)
+   Michael Walle                         23 (0.0%)
+   Vasily Khoruzhick                     22 (0.0%)
+   Pei Yue Ho                            22 (0.0%)
+   Vincent Stehlé                        19 (0.0%)
+   Venkatesh Yadav Abbarapu              19 (0.0%)
+   Pengfei Fan                           16 (0.0%)
+   Harald Seiler                         16 (0.0%)
+   Ville Skyttä                          16 (0.0%)
+   Sean Edmond                           14 (0.0%)
+   Harini Katakam                        14 (0.0%)
+   Robert Marko                          14 (0.0%)
+   John Keeping                          13 (0.0%)
+   Ovidiu Panait                         13 (0.0%)
+   Kamlesh Gurudasani                    13 (0.0%)
+   Nikita Shubin                         13 (0.0%)
+   Marc Kleine-Budde                     13 (0.0%)
+   Detlev Casanova                       13 (0.0%)
+   David Oberhollenzer                   11 (0.0%)
+   Ilias Apalodimas                      10 (0.0%)
+   Mario Kicherer                        10 (0.0%)
+   Yuepeng Xing                          10 (0.0%)
+   Jaehoon Chung                         9 (0.0%)
+   KaDiWa                                9 (0.0%)
+   Oleksandr Suvorov                     8 (0.0%)
+   Christian Gmeiner                     8 (0.0%)
+   Ye Li                                 7 (0.0%)
+   Christopher Obbard                    7 (0.0%)
+   Ying-Chun Liu (PaulLiu)               7 (0.0%)
+   Johan Jonker                          6 (0.0%)
+   Jonathan Liu                          6 (0.0%)
+   Andrey Dolnikov                       6 (0.0%)
+   Daniel Golle                          6 (0.0%)
+   Philippe Schenker                     5 (0.0%)
+   Michal Suchanek                       5 (0.0%)
+   Ivan Khoronzhuk                       5 (0.0%)
+   Ilko Iliev                            4 (0.0%)
+   Manuel Traut                          4 (0.0%)
+   Shenlin Liang                         3 (0.0%)
+   annsai01                              3 (0.0%)
+   Ulf Samuelsson                        3 (0.0%)
+   Matwey V. Kornilov                    3 (0.0%)
+   Jay Buddhabhatti                      3 (0.0%)
+   chenzhipeng                           3 (0.0%)
+   Ben Dooks                             3 (0.0%)
+   Peter Geis                            2 (0.0%)
+   Ralph Siemsen                         2 (0.0%)
+   Christian Marangi                     2 (0.0%)
+   Jorge Ramirez-Ortiz                   2 (0.0%)
+   David Sebek                           1 (0.0%)
+   Vignesh Raghavendra                   1 (0.0%)
+   Sebastian Andrzej Siewior             1 (0.0%)
+   Jade Lovelace                         1 (0.0%)
+   Ehsan Mohandesi                       1 (0.0%)
+   Aurelien Jarno                        1 (0.0%)
+   Arnaud Ferraris                       1 (0.0%)
+   Igor Opaniuk                          1 (0.0%)
+   Joost van Zwieten                     1 (0.0%)
+   Haijun Qin                            1 (0.0%)
+   Neal Frager                           1 (0.0%)
+   Viacheslav Bocharov                   1 (0.0%)
+   Lokanathan, Raaj                      1 (0.0%)
+   Kasper Revsbech                       1 (0.0%)
+   ====================================  =====
+
+
+.. table:: Developers with the most lines removed
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Tom Rini                              18089 (23.1%)
+   Simon Glass                           5998 (7.7%)
+   Luca Ceresoli                         860 (1.1%)
+   Holger Brunck                         532 (0.7%)
+   Leo Yu-Chi Liang                      90 (0.1%)
+   Mattijs Korpershoek                   83 (0.1%)
+   Andrew Davis                          43 (0.1%)
+   Pali Rohár                            28 (0.0%)
+   Maxim Schwalm                         27 (0.0%)
+   Dai Okamura                           12 (0.0%)
+   Michael Walle                         12 (0.0%)
+   Ovidiu Panait                         10 (0.0%)
+   Peng Fan                              7 (0.0%)
+   Ioana Ciornei                         6 (0.0%)
+   Michal Suchanek                       4 (0.0%)
+   Rob Herring                           3 (0.0%)
+   Johan Jonker                          3 (0.0%)
+   Ying-Chun Liu (PaulLiu)               2 (0.0%)
+   Ilko Iliev                            1 (0.0%)
+   ====================================  =====
+
+
+.. table:: Developers with the most signoffs (total 215)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Francesco Dolcini                     21 (9.8%)
+   Marek Vasut                           21 (9.8%)
+   Tom                                   19 (8.8%)
+   Michal Simek                          19 (8.8%)
+   Michael Trimarchi                     8 (3.7%)
+   Dario Binacchi                        8 (3.7%)
+   Neil Armstrong                        8 (3.7%)
+   Hai Pham                              7 (3.3%)
+   Kever Yang                            6 (2.8%)
+   Tom Rini                              5 (2.3%)
+   YouMin Chen                           5 (2.3%)
+   Jianqun Xu                            4 (1.9%)
+   Elaine Zhang                          4 (1.9%)
+   Mike Worsfold                         4 (1.9%)
+   Manoj Sai                             4 (1.9%)
+   Marcel Ziswiler                       4 (1.9%)
+   Ashok Reddy Soma                      4 (1.9%)
+   Peter Robinson                        4 (1.9%)
+   Peng Fan                              3 (1.4%)
+   Andre Przywara                        3 (1.4%)
+   Heinrich Schuchardt                   3 (1.4%)
+   Vignesh Raghavendra                   2 (0.9%)
+   Joseph Chen                           2 (0.9%)
+   Finley Xiao                           2 (0.9%)
+   Suniel Mahesh                         2 (0.9%)
+   FUKAUMI Naoki                         2 (0.9%)
+   Judith Mendez                         2 (0.9%)
+   Robert Hancock                        2 (0.9%)
+   Peter Geis                            2 (0.9%)
+   Andrejs Cainikovs                     2 (0.9%)
+   Samuel Holland                        2 (0.9%)
+   Jonas Karlman                         2 (0.9%)
+   Jagan Teki                            2 (0.9%)
+   Simon Glass                           1 (0.5%)
+   Mattijs Korpershoek                   1 (0.5%)
+   Pali Rohár                            1 (0.5%)
+   Michal Suchanek                       1 (0.5%)
+   Anand Gadiyar                         1 (0.5%)
+   Angelo Durgehello                     1 (0.5%)
+   Nam Nguyen                            1 (0.5%)
+   Steven Liu                            1 (0.5%)
+   Sebastian Reichel                     1 (0.5%)
+   Yifeng Zhao                           1 (0.5%)
+   Ren Jianing                           1 (0.5%)
+   Vladimir Oltean                       1 (0.5%)
+   Jonas Schwöbel                        1 (0.5%)
+   Shawn Guo                             1 (0.5%)
+   Jason Zhu                             1 (0.5%)
+   Jon Lin                               1 (0.5%)
+   Sugar Zhang                           1 (0.5%)
+   Valentine Barshak                     1 (0.5%)
+   Jit Loon Lim                          1 (0.5%)
+   Philippe Schenker                     1 (0.5%)
+   Ilias Apalodimas                      1 (0.5%)
+   Sjoerd Simons                         1 (0.5%)
+   Tam Nguyen                            1 (0.5%)
+   Ramin Khonsari                        1 (0.5%)
+   Sergiu Moga                           1 (0.5%)
+   Svyatoslav Ryhel                      1 (0.5%)
+   Quentin Schulz                        1 (0.5%)
+   ====================================  =====
+
+
+.. table:: Developers with the most reviews (total 767)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Simon Glass                           225 (29.3%)
+   Kever Yang                            112 (14.6%)
+   Fabio Estevam                         49 (6.4%)
+   Tom Rini                              33 (4.3%)
+   Patrice Chotard                       33 (4.3%)
+   Marek Vasut                           27 (3.5%)
+   Ramon Fried                           22 (2.9%)
+   Stefan Roese                          17 (2.2%)
+   Ilias Apalodimas                      16 (2.1%)
+   Leo Yu-Chi Liang                      15 (2.0%)
+   Rick Chen                             15 (2.0%)
+   Heinrich Schuchardt                   14 (1.8%)
+   Jagan Teki                            14 (1.8%)
+   Patrick Delaunay                      14 (1.8%)
+   Mattijs Korpershoek                   13 (1.7%)
+   Jaehoon Chung                         13 (1.7%)
+   Samuel Holland                        12 (1.6%)
+   Heiko Schocher                        9 (1.2%)
+   Neil Armstrong                        8 (1.0%)
+   Vladimir Oltean                       7 (0.9%)
+   Sean Anderson                         7 (0.9%)
+   Bin Meng                              6 (0.8%)
+   FRANJOU Stephane                      6 (0.8%)
+   Claudiu Beznea                        6 (0.8%)
+   Michael Trimarchi                     5 (0.7%)
+   Peng Fan                              5 (0.7%)
+   Jens Wiklander                        5 (0.7%)
+   Yu Chien Peter Lin                    4 (0.5%)
+   Andre Przywara                        3 (0.4%)
+   Pali Rohár                            3 (0.4%)
+   Viacheslav Mitrofanov                 3 (0.4%)
+   Ye Li                                 3 (0.4%)
+   Dhruva Gole                           3 (0.4%)
+   Marcel Ziswiler                       2 (0.3%)
+   Oleksandr Suvorov                     2 (0.3%)
+   Wei Liang Lim                         2 (0.3%)
+   Eng Lee Teh                           2 (0.3%)
+   Minkyu Kang                           2 (0.3%)
+   Tudor Ambarus                         2 (0.3%)
+   Philipp Tomsich                       2 (0.3%)
+   Etienne Carriere                      2 (0.3%)
+   Masahisa Kojima                       2 (0.3%)
+   Eugen Hristev                         2 (0.3%)
+   Francesco Dolcini                     1 (0.1%)
+   Michal Simek                          1 (0.1%)
+   Jonas Karlman                         1 (0.1%)
+   Nishanth Menon                        1 (0.1%)
+   Siddharth Vadapalli                   1 (0.1%)
+   Matthias Brugger                      1 (0.1%)
+   Chia-Wei Wang                         1 (0.1%)
+   Huang Jianan                          1 (0.1%)
+   Oliver Graute                         1 (0.1%)
+   Pratyush Yadav                        1 (0.1%)
+   Soeren Moch                           1 (0.1%)
+   Sunil V L                             1 (0.1%)
+   Miquel Raynal                         1 (0.1%)
+   Hector Palacios                       1 (0.1%)
+   Derald Woods                          1 (0.1%)
+   Nick Desaulniers                      1 (0.1%)
+   Frieder Schrempf                      1 (0.1%)
+   Adam Ford                             1 (0.1%)
+   Sumit Garg                            1 (0.1%)
+   Christophe Leroy                      1 (0.1%)
+   ====================================  =====
+
+
+.. table:: Developers with the most test credits (total 78)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Svyatoslav Ryhel                      12 (15.4%)
+   Andreas Westman Dorcsak               11 (14.1%)
+   Thierry Reding                        9 (11.5%)
+   Robert Eckelmann                      8 (10.3%)
+   Samuel Holland                        6 (7.7%)
+   Vagrant Cascadian                     3 (3.8%)
+   Jagan Teki                            2 (2.6%)
+   Eugen Hristev                         2 (2.6%)
+   Jonas Schwöbel                        2 (2.6%)
+   Quentin Schulz                        2 (2.6%)
+   Agneli                                2 (2.6%)
+   Lothar Waßmann                        2 (2.6%)
+   Simon Glass                           1 (1.3%)
+   Fabio Estevam                         1 (1.3%)
+   Ilias Apalodimas                      1 (1.3%)
+   Rick Chen                             1 (1.3%)
+   Patrick Delaunay                      1 (1.3%)
+   Mattijs Korpershoek                   1 (1.3%)
+   Andre Przywara                        1 (1.3%)
+   Dhruva Gole                           1 (1.3%)
+   Jonas Karlman                         1 (1.3%)
+   Suniel Mahesh                         1 (1.3%)
+   Sjoerd Simons                         1 (1.3%)
+   Matwey V. Kornilov                    1 (1.3%)
+   Anand Moon                            1 (1.3%)
+   Vaishnav Achath                       1 (1.3%)
+   Karsten Merker                        1 (1.3%)
+   Sean Nyekjaer                         1 (1.3%)
+   Mihai Sain                            1 (1.3%)
+   ====================================  =====
+
+
+.. table:: Developers who gave the most tested-by credits (total 78)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Svyatoslav Ryhel                      41 (52.6%)
+   Andre Przywara                        6 (7.7%)
+   Tom Rini                              5 (6.4%)
+   Simon Glass                           4 (5.1%)
+   Jonas Karlman                         3 (3.8%)
+   Loic Poulain                          3 (3.8%)
+   Ramin Khonsari                        2 (2.6%)
+   Jagan Teki                            1 (1.3%)
+   Patrick Delaunay                      1 (1.3%)
+   Dhruva Gole                           1 (1.3%)
+   Sjoerd Simons                         1 (1.3%)
+   Michael Trimarchi                     1 (1.3%)
+   Etienne Carriere                      1 (1.3%)
+   Peter Geis                            1 (1.3%)
+   Sergiu Moga                           1 (1.3%)
+   Maxim Schwalm                         1 (1.3%)
+   Kasper Revsbech                       1 (1.3%)
+   Neha Malcom Francis                   1 (1.3%)
+   Fabrice Gasnier                       1 (1.3%)
+   Maxim Cournoyer                       1 (1.3%)
+   Sergei Antonov                        1 (1.3%)
+   ====================================  =====
+
+
+.. table:: Developers with the most report credits (total 22)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Heinrich Schuchardt                   3 (13.6%)
+   Ilias Apalodimas                      2 (9.1%)
+   Patrick Delaunay                      1 (4.5%)
+   Sjoerd Simons                         1 (4.5%)
+   Samuel Holland                        1 (4.5%)
+   Quentin Schulz                        1 (4.5%)
+   Karsten Merker                        1 (4.5%)
+   Marek Vasut                           1 (4.5%)
+   Francesco Dolcini                     1 (4.5%)
+   Nishanth Menon                        1 (4.5%)
+   Oliver Graute                         1 (4.5%)
+   Anand Gadiyar                         1 (4.5%)
+   Philippe Schenker                     1 (4.5%)
+   Andreas Schwab                        1 (4.5%)
+   Stefan Herbrechtsmeier                1 (4.5%)
+   Carlos Rafael Giani                   1 (4.5%)
+   Dave Jones                            1 (4.5%)
+   Serge Bazanski                        1 (4.5%)
+   Sam Winchenbach                       1 (4.5%)
+   ====================================  =====
+
+
+.. table:: Developers who gave the most report credits (total 22)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Simon Glass                           6 (27.3%)
+   Tom Rini                              5 (22.7%)
+   Heinrich Schuchardt                   3 (13.6%)
+   Qu Wenruo                             2 (9.1%)
+   Ilias Apalodimas                      1 (4.5%)
+   Maxim Cournoyer                       1 (4.5%)
+   Fabio Estevam                         1 (4.5%)
+   Vignesh Raghavendra                   1 (4.5%)
+   Harald Seiler                         1 (4.5%)
+   Sinthu Raja                           1 (4.5%)
+   ====================================  =====
+
+
+.. table:: Top changeset contributors by employer
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   (Unknown)                             524 (31.0%)
+   Google, Inc.                          381 (22.5%)
+   Konsulko Group                        333 (19.7%)
+   DENX Software Engineering             72 (4.3%)
+   Texas Instruments                     49 (2.9%)
+   Linaro                                47 (2.8%)
+   Edgeble AI Technologies Pvt. Ltd.     46 (2.7%)
+   ST Microelectronics                   40 (2.4%)
+   AMD                                   34 (2.0%)
+   NXP                                   25 (1.5%)
+   Renesas Electronics                   24 (1.4%)
+   Toradex                               24 (1.4%)
+   Amarula Solutions                     20 (1.2%)
+   Collabora Ltd.                        20 (1.2%)
+   ARM                                   17 (1.0%)
+   Semihalf Embedded Systems             6 (0.4%)
+   Red Hat                               4 (0.2%)
+   Siemens                               4 (0.2%)
+   Socionext Inc.                        4 (0.2%)
+   BayLibre SAS                          3 (0.2%)
+   SUSE                                  3 (0.2%)
+   Pengutronix                           2 (0.1%)
+   Ronetix                               2 (0.1%)
+   Extreme Engineering Solutions         2 (0.1%)
+   Bootlin                               1 (0.1%)
+   Intel                                 1 (0.1%)
+   linutronix                            1 (0.1%)
+   Samsung                               1 (0.1%)
+   Xilinx                                1 (0.1%)
+   ====================================  =====
+
+
+.. table:: Top lines changed by employer
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   (Unknown)                             64681 (30.1%)
+   Texas Instruments                     42105 (19.6%)
+   Konsulko Group                        36464 (17.0%)
+   Google, Inc.                          30090 (14.0%)
+   Edgeble AI Technologies Pvt. Ltd.     23070 (10.7%)
+   Linaro                                4601 (2.1%)
+   DENX Software Engineering             4582 (2.1%)
+   AMD                                   1741 (0.8%)
+   Amarula Solutions                     1649 (0.8%)
+   ST Microelectronics                   882 (0.4%)
+   Bootlin                               860 (0.4%)
+   Renesas Electronics                   775 (0.4%)
+   Socionext Inc.                        760 (0.4%)
+   ARM                                   724 (0.3%)
+   Collabora Ltd.                        413 (0.2%)
+   NXP                                   307 (0.1%)
+   Toradex                               290 (0.1%)
+   Red Hat                               214 (0.1%)
+   BayLibre SAS                          154 (0.1%)
+   Extreme Engineering Solutions         106 (0.0%)
+   Semihalf Embedded Systems             47 (0.0%)
+   Siemens                               43 (0.0%)
+   SUSE                                  34 (0.0%)
+   Pengutronix                           13 (0.0%)
+   Samsung                               9 (0.0%)
+   Ronetix                               4 (0.0%)
+   Xilinx                                3 (0.0%)
+   Intel                                 1 (0.0%)
+   linutronix                            1 (0.0%)
+   ====================================  =====
+
+
+.. table:: Employers with the most signoffs (total 215)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   (Unknown)                             48 (22.3%)
+   Rockchip                              29 (13.5%)
+   Toradex                               28 (13.0%)
+   Amarula Solutions                     24 (11.2%)
+   AMD                                   23 (10.7%)
+   NVidia                                19 (8.8%)
+   Linaro                                9 (4.2%)
+   Renesas Electronics                   9 (4.2%)
+   Texas Instruments                     5 (2.3%)
+   Konsulko Group                        5 (2.3%)
+   NXP                                   4 (1.9%)
+   ARM                                   3 (1.4%)
+   Canonical                             3 (1.4%)
+   Collabora Ltd.                        2 (0.9%)
+   Google, Inc.                          1 (0.5%)
+   BayLibre SAS                          1 (0.5%)
+   SUSE                                  1 (0.5%)
+   Intel                                 1 (0.5%)
+   ====================================  =====
+
+
+.. table:: Employers with the most hackers (total 160)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   (Unknown)                             86 (53.8%)
+   Linaro                                9 (5.6%)
+   Texas Instruments                     8 (5.0%)
+   AMD                                   6 (3.8%)
+   Collabora Ltd.                        6 (3.8%)
+   Toradex                               5 (3.1%)
+   DENX Software Engineering             5 (3.1%)
+   Amarula Solutions                     4 (2.5%)
+   NXP                                   4 (2.5%)
+   ARM                                   3 (1.9%)
+   ST Microelectronics                   3 (1.9%)
+   Renesas Electronics                   2 (1.2%)
+   SUSE                                  2 (1.2%)
+   Socionext Inc.                        2 (1.2%)
+   Konsulko Group                        1 (0.6%)
+   Google, Inc.                          1 (0.6%)
+   BayLibre SAS                          1 (0.6%)
+   Intel                                 1 (0.6%)
+   Edgeble AI Technologies Pvt. Ltd.     1 (0.6%)
+   Bootlin                               1 (0.6%)
+   Red Hat                               1 (0.6%)
+   Extreme Engineering Solutions         1 (0.6%)
+   Semihalf Embedded Systems             1 (0.6%)
+   Siemens                               1 (0.6%)
+   Pengutronix                           1 (0.6%)
+   Samsung                               1 (0.6%)
+   Ronetix                               1 (0.6%)
+   Xilinx                                1 (0.6%)
+   linutronix                            1 (0.6%)
+   ====================================  =====
+
diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c
index b1fea04..963a05c 100644
--- a/drivers/ram/rockchip/sdram_rk3399.c
+++ b/drivers/ram/rockchip/sdram_rk3399.c
@@ -2954,7 +2954,7 @@
 		params->ch[ch].cap_info.rank = rank;
 	}
 
-#if defined(CONFIG_RAM_RK3399_LPDDR4)
+#if defined(CONFIG_RAM_ROCKCHIP_LPDDR4)
 	/* LPDDR4 needs to be trained at 400MHz */
 	lpddr4_set_rate(dram, params, 0);
 	params->base.ddr_freq = dfs_cfgs_lpddr4[0].base.ddr_freq / MHz;
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index ad484ce..a801412 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -26,7 +26,7 @@
 	  This is deprecated. An AHCI driver should be provided instead.
 
 config SYS_SCSI_MAX_SCSI_ID
-	int "Maximum supporedt SCSI ID"
+	int "Maximum supported SCSI ID"
 	default 1
 	help
 	  Sets the maximum number of SCSI IDs to scan when looking for devices.
diff --git a/drivers/sysreset/sysreset_gpio.c b/drivers/sysreset/sysreset_gpio.c
index dfca10c..de42b59 100644
--- a/drivers/sysreset/sysreset_gpio.c
+++ b/drivers/sysreset/sysreset_gpio.c
@@ -17,6 +17,7 @@
 static int gpio_reboot_request(struct udevice *dev, enum sysreset_t type)
 {
 	struct gpio_reboot_priv *priv = dev_get_priv(dev);
+	int ret;
 
 	/*
 	 * When debug log is enabled please make sure that chars won't end up
@@ -26,7 +27,11 @@
 	debug("GPIO reset\n");
 
 	/* Writing 1 respects polarity (active high/low) based on gpio->flags */
-	return dm_gpio_set_value(&priv->gpio, 1);
+	ret = dm_gpio_set_value(&priv->gpio, 1);
+	if (ret < 0)
+		return ret;
+
+	return -EINPROGRESS;
 }
 
 static struct sysreset_ops gpio_reboot_ops = {
diff --git a/include/cli.h b/include/cli.h
index c777c90..094a660 100644
--- a/include/cli.h
+++ b/include/cli.h
@@ -98,8 +98,8 @@
  *
  * @prompt:	Prompt to display
  * @buffer:	Place to put the line that is entered
- * @timeout:	Timeout in milliseconds, 0 if none
- * Return: command line length excluding terminator, or -ve on error: of the
+ * @timeout:	Timeout in seconds, 0 if none
+ * Return: command line length excluding terminator, or -ve on error: if the
  * timeout is exceeded (either CONFIG_BOOT_RETRY_TIME or the timeout
  * parameter), then -2 is returned. If a break is detected (Ctrl-C) then
  * -1 is returned.
diff --git a/include/configs/imx8mn_bsh_smm_s2.h b/include/configs/imx8mn_bsh_smm_s2.h
index e97b8e8..deeed9c 100644
--- a/include/configs/imx8mn_bsh_smm_s2.h
+++ b/include/configs/imx8mn_bsh_smm_s2.h
@@ -14,7 +14,7 @@
 #include <config_distro_bootcmd.h>
 
 #define NANDARGS \
-	"nandargs=setenv bootargs console=${console} " \
+	"nandargs=setenv bootargs " \
 		"${optargs} " \
 		"mtdparts=${mtdparts} " \
 		"root=${nandroot} " \
diff --git a/include/efi_api.h b/include/efi_api.h
index c4512ee..dc6e5ce 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -604,6 +604,7 @@
 #  define DEVICE_PATH_SUB_TYPE_MSG_MAC_ADDR	0x0b
 #  define DEVICE_PATH_SUB_TYPE_MSG_UART		0x0e
 #  define DEVICE_PATH_SUB_TYPE_MSG_USB_CLASS	0x0f
+#  define DEVICE_PATH_SUB_TYPE_MSG_USB_WWI	0x10
 #  define DEVICE_PATH_SUB_TYPE_MSG_SATA		0x12
 #  define DEVICE_PATH_SUB_TYPE_MSG_NVME		0x17
 #  define DEVICE_PATH_SUB_TYPE_MSG_URI		0x18
diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
index d5cc495..ea09783 100644
--- a/lib/efi_loader/efi_device_path.c
+++ b/lib/efi_loader/efi_device_path.c
@@ -110,17 +110,13 @@
 /**
  * efi_dp_shorten() - shorten device-path
  *
- * We can have device paths that start with a USB WWID or a USB Class node,
- * and a few other cases which don't encode the full device path with bus
- * hierarchy:
+ * When creating a short boot option we want to use a device-path that is
+ * independent of the location where the block device is plugged in.
  *
- * * MESSAGING:USB_WWID
- * * MESSAGING:USB_CLASS
- * * MEDIA:FILE_PATH
- * * MEDIA:HARD_DRIVE
- * * MESSAGING:URI
+ * UsbWwi() nodes contain a serial number, hard drive paths a partition
+ * UUID. Both should be unique.
  *
- * See UEFI spec (section 3.1.2, about short-form device-paths)
+ * See UEFI spec, section 3.1.2 for "short-form device path".
  *
  * @dp:		original device-path
  * @Return:	shortened device-path or NULL
@@ -128,12 +124,7 @@
 struct efi_device_path *efi_dp_shorten(struct efi_device_path *dp)
 {
 	while (dp) {
-		/*
-		 * TODO: Add MESSAGING:USB_WWID and MESSAGING:URI..
-		 * in practice fallback.efi just uses MEDIA:HARD_DRIVE
-		 * so not sure when we would see these other cases.
-		 */
-		if (EFI_DP_TYPE(dp, MESSAGING_DEVICE, MSG_USB) ||
+		if (EFI_DP_TYPE(dp, MESSAGING_DEVICE, MSG_USB_WWI) ||
 		    EFI_DP_TYPE(dp, MEDIA_DEVICE, HARD_DRIVE_PATH) ||
 		    EFI_DP_TYPE(dp, MEDIA_DEVICE, FILE_PATH))
 			return dp;
@@ -735,7 +726,7 @@
 #endif
 #if defined(CONFIG_USB)
 		case UCLASS_MASS_STORAGE: {
-			struct blk_desc *desc = desc = dev_get_uclass_plat(dev);
+			struct blk_desc *desc = dev_get_uclass_plat(dev);
 			struct efi_device_path_controller *dp =
 				dp_fill(buf, dev->parent);
 
diff --git a/test/common/Makefile b/test/common/Makefile
index cc918f6..a5ab10f 100644
--- a/test/common/Makefile
+++ b/test/common/Makefile
@@ -3,3 +3,4 @@
 obj-$(CONFIG_AUTOBOOT) += test_autoboot.o
 obj-$(CONFIG_CYCLIC) += cyclic.o
 obj-$(CONFIG_EVENT) += event.o
+obj-y += cread.o
diff --git a/test/common/cread.c b/test/common/cread.c
new file mode 100644
index 0000000..2fdd29a
--- /dev/null
+++ b/test/common/cread.c
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2023 Google LLC
+ */
+
+#include <common.h>
+#include <cli.h>
+#include <test/common.h>
+#include <test/test.h>
+#include <test/ut.h>
+
+static int cli_ch_test(struct unit_test_state *uts)
+{
+	struct cli_ch_state s_cch, *cch = &s_cch;
+
+	cli_ch_init(cch);
+
+	/* should be nothing to return at first */
+	ut_asserteq(0, cli_ch_process(cch, 0));
+
+	/* check normal entry */
+	ut_asserteq('a', cli_ch_process(cch, 'a'));
+	ut_asserteq('b', cli_ch_process(cch, 'b'));
+	ut_asserteq('c', cli_ch_process(cch, 'c'));
+	ut_asserteq(0, cli_ch_process(cch, 0));
+
+	/* send an invalid escape sequence */
+	ut_asserteq(0, cli_ch_process(cch, '\e'));
+	ut_asserteq(0, cli_ch_process(cch, '['));
+
+	/*
+	 * with the next char it sees that the sequence is invalid, so starts
+	 * emitting it
+	 */
+	ut_asserteq('\e', cli_ch_process(cch, 'X'));
+
+	/* now we set 0 bytes to empty the buffer */
+	ut_asserteq('[', cli_ch_process(cch, 0));
+	ut_asserteq('X', cli_ch_process(cch, 0));
+	ut_asserteq(0, cli_ch_process(cch, 0));
+
+	/* things are normal again */
+	ut_asserteq('a', cli_ch_process(cch, 'a'));
+	ut_asserteq(0, cli_ch_process(cch, 0));
+
+	return 0;
+}
+COMMON_TEST(cli_ch_test, 0);
+
+static int cread_test(struct unit_test_state *uts)
+{
+	int duration;
+	ulong start;
+	char buf[10];
+
+	/*
+	 * useful for debugging
+	 *
+	 * gd->flags &= ~GD_FLG_RECORD;
+	 * print_buffer(0, buf, 1, 7, 0);
+	 */
+
+	console_record_reset_enable();
+
+	/* simple input */
+	*buf = '\0';
+	ut_asserteq(4, console_in_puts("abc\n"));
+	ut_asserteq(3, cli_readline_into_buffer("-> ", buf, 1));
+	ut_asserteq_str("abc", buf);
+
+	/* try an escape sequence (cursor left after the 'c') */
+	*buf = '\0';
+	ut_asserteq(8, console_in_puts("abc\e[Dx\n"));
+	ut_asserteq(4, cli_readline_into_buffer("-> ", buf, 1));
+	ut_asserteq_str("abxc", buf);
+
+	/* invalid escape sequence */
+	*buf = '\0';
+	ut_asserteq(8, console_in_puts("abc\e[Xx\n"));
+	ut_asserteq(7, cli_readline_into_buffer("-> ", buf, 1));
+	ut_asserteq_str("abc\e[Xx", buf);
+
+	/* check timeout, should be between 1000 and 1050ms */
+	start = get_timer(0);
+	*buf = '\0';
+	ut_asserteq(-2, cli_readline_into_buffer("-> ", buf, 1));
+	duration = get_timer(start) - 1000;
+	ut_assert(duration >= 0);
+	ut_assert(duration < 50);
+
+	return 0;
+}
+COMMON_TEST(cread_test, 0);
diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
index 241e8e6..0ecd845 100644
--- a/tools/buildman/toolchain.py
+++ b/tools/buildman/toolchain.py
@@ -421,7 +421,7 @@
         Returns:
             Resolved string
 
-        >>> bsettings.Setup()
+        >>> bsettings.Setup(None)
         >>> tcs = Toolchains()
         >>> tcs.Add('fred', False)
         >>> var_dict = {'oblique' : 'OBLIQUE', 'first' : 'fi${second}rst', \