Merge tag 'mips-pull-2022-07-13' of https://source.denx.de/u-boot/custodians/u-boot-mips

- MIPS: add drivers and board support for Mediatek MT7621 SoC
diff --git a/MAINTAINERS b/MAINTAINERS
index 2047a2a..b85629d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -827,6 +827,7 @@
 
 EFI PAYLOAD
 M:	Heinrich Schuchardt <xypron.glpk@gmx.de>
+M:	Ilias Apalodimas <ilias.apalodimas@linaro.org>
 S:	Maintained
 T:	git https://source.denx.de/u-boot/custodians/u-boot-efi.git
 F:	doc/api/efi.rst
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 37ce659..8ab0ff5 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -119,9 +119,9 @@
 			efi_free_pool(image_tmp);
 		}
 		bootefi_image_path = image;
-		log_debug("- recorded device %ls\n", efi_dp_str(device));
+		log_debug("- boot device %pD\n", device);
 		if (image)
-			log_debug("- and image %ls\n", efi_dp_str(image));
+			log_debug("- image %pD\n", image);
 	} else {
 		log_debug("- efi_dp_from_name() failed, err=%lx\n", ret);
 		efi_clear_bootdev();
diff --git a/doc/develop/statistics/u-boot-stats-v2022.07.rst b/doc/develop/statistics/u-boot-stats-v2022.07.rst
new file mode 100644
index 0000000..c1b627c
--- /dev/null
+++ b/doc/develop/statistics/u-boot-stats-v2022.07.rst
@@ -0,0 +1,805 @@
+:orphan:
+
+Release Statistics for U-Boot v2022.07
+======================================
+
+* Processed 1696 csets from 183 developers
+
+* 27 employers found
+
+* A total of 148026 lines added, 56440 removed (delta 91586)
+
+.. table:: Developers with the most changesets
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Tom Rini                          164 (9.7%)
+   Simon Glass                       141 (8.3%)
+   Pali Rohár                        114 (6.7%)
+   Marek Vasut                       94 (5.5%)
+   Peng Fan                          61 (3.6%)
+   Sean Anderson                     59 (3.5%)
+   Heinrich Schuchardt               57 (3.4%)
+   Samuel Holland                    49 (2.9%)
+   Michal Simek                      49 (2.9%)
+   Johan Jonker                      45 (2.7%)
+   Aaron Williams                    40 (2.4%)
+   AKASHI Takahiro                   38 (2.2%)
+   Marek Behún                       36 (2.1%)
+   Tim Harvey                        33 (1.9%)
+   Philippe Reynes                   29 (1.7%)
+   Andre Przywara                    28 (1.7%)
+   Andrew Scull                      27 (1.6%)
+   Patrice Chotard                   26 (1.5%)
+   Patrick Delaunay                  25 (1.5%)
+   Fabio Estevam                     24 (1.4%)
+   Gaurav Jain                       20 (1.2%)
+   Ye Li                             20 (1.2%)
+   Ashok Reddy Soma                  16 (0.9%)
+   Stefan Roese                      13 (0.8%)
+   Sughosh Ganu                      12 (0.7%)
+   Masahisa Kojima                   12 (0.7%)
+   Michael Trimarchi                 11 (0.6%)
+   Paweł Anikiel                     11 (0.6%)
+   Adam Ford                         11 (0.6%)
+   Marcel Ziswiler                   11 (0.6%)
+   Dave Gerlach                      11 (0.6%)
+   Philip Oberfichtner               11 (0.6%)
+   T Karthik Reddy                   11 (0.6%)
+   Bin Meng                          9 (0.5%)
+   Tommaso Merciai                   9 (0.5%)
+   Heiko Thiery                      8 (0.5%)
+   Alper Nebi Yasak                  8 (0.5%)
+   Philippe Schenker                 8 (0.5%)
+   Vyacheslav Bocharov               8 (0.5%)
+   Michael Walle                     7 (0.4%)
+   Peter Robinson                    6 (0.4%)
+   Francesco Dolcini                 6 (0.4%)
+   Mark Kettenis                     6 (0.4%)
+   Neal Frager                       6 (0.4%)
+   Robert Marko                      6 (0.4%)
+   Jim Liu                           6 (0.4%)
+   Tudor Ambarus                     6 (0.4%)
+   Paweł Jarosz                      5 (0.3%)
+   Dinesh Maniyam                    5 (0.3%)
+   Ariel D'Alessandro                5 (0.3%)
+   Eugen Hristev                     5 (0.3%)
+   Sergiu Moga                       5 (0.3%)
+   Lukasz Majewski                   5 (0.3%)
+   Clément Léger                     5 (0.3%)
+   Huang Jianan                      5 (0.3%)
+   Etienne Carriere                  5 (0.3%)
+   Tien Fong Chee                    4 (0.2%)
+   Chris Morgan                      4 (0.2%)
+   Dario Binacchi                    4 (0.2%)
+   Frieder Schrempf                  4 (0.2%)
+   Janne Grunau                      4 (0.2%)
+   Josua Mayer                       4 (0.2%)
+   Vincent Stehlé                    4 (0.2%)
+   Chris Packham                     4 (0.2%)
+   Sai Pavan Boddu                   4 (0.2%)
+   Neil Armstrong                    4 (0.2%)
+   Jan Kiszka                        4 (0.2%)
+   Andrew Davis                      4 (0.2%)
+   Aswath Govindraju                 4 (0.2%)
+   Masami Hiramatsu                  4 (0.2%)
+   Durai Manickam KR                 4 (0.2%)
+   Billy Tsai                        4 (0.2%)
+   Angus Ainslie                     4 (0.2%)
+   Jesse Taube                       4 (0.2%)
+   Andrew Jeffery                    4 (0.2%)
+   Hari Nagalla                      4 (0.2%)
+   Icenowy Zheng                     4 (0.2%)
+   Romain Naour                      4 (0.2%)
+   Joel Stanley                      3 (0.2%)
+   Andrey Zhizhikin                  3 (0.2%)
+   Loic Poulain                      3 (0.2%)
+   Rasmus Villemoes                  3 (0.2%)
+   Vagrant Cascadian                 3 (0.2%)
+   Ilias Apalodimas                  3 (0.2%)
+   Eddie James                       3 (0.2%)
+   Gireesh Hiremath                  3 (0.2%)
+   Sam Shih                          3 (0.2%)
+   Luca Ellero                       3 (0.2%)
+   Tony Dinh                         3 (0.2%)
+   Paul Barker                       3 (0.2%)
+   Oleksandr Suvorov                 3 (0.2%)
+   Igor Opaniuk                      3 (0.2%)
+   Denys Drozdov                     3 (0.2%)
+   SESA644425                        3 (0.2%)
+   Vignesh Raghavendra               3 (0.2%)
+   Dzmitry Sankouski                 3 (0.2%)
+   Jernej Skrabec                    3 (0.2%)
+   Miquel Raynal                     2 (0.1%)
+   Christian Gmeiner                 2 (0.1%)
+   Nate Drude                        2 (0.1%)
+   Rick Chen                         2 (0.1%)
+   Yannick Fertre                    2 (0.1%)
+   Peter Hoyes                       2 (0.1%)
+   Dominic Rath                      2 (0.1%)
+   Du Huanpeng                       2 (0.1%)
+   Haolin Li                         2 (0.1%)
+   Clement Faure                     2 (0.1%)
+   Vladimir Oltean                   2 (0.1%)
+   Christoph Niedermaier             2 (0.1%)
+   Paul Barbieri                     1 (0.1%)
+   Hannes Schmelzer                  1 (0.1%)
+   Teik Heng Chong                   1 (0.1%)
+   Andrea Scian                      1 (0.1%)
+   Jerome Forissier                  1 (0.1%)
+   Emmanuel Vadot                    1 (0.1%)
+   Nicolas Iooss                     1 (0.1%)
+   Andrejs Cainikovs                 1 (0.1%)
+   qianfan Zhao                      1 (0.1%)
+   Yau Wai Gan                       1 (0.1%)
+   Corentin LABBE                    1 (0.1%)
+   Christophe Leroy                  1 (0.1%)
+   Chunfeng Yun                      1 (0.1%)
+   Camelia Groza                     1 (0.1%)
+   Wasim Khan                        1 (0.1%)
+   Georgi Vlaev                      1 (0.1%)
+   Andrea zi0Black Cappa             1 (0.1%)
+   Leo Yu-Chi Liang                  1 (0.1%)
+   Humberto Naves                    1 (0.1%)
+   Sean Nyekjaer                     1 (0.1%)
+   Christoph Fritz                   1 (0.1%)
+   Sergei Antonov                    1 (0.1%)
+   George Hilliard                   1 (0.1%)
+   Ying-Chun Liu (PaulLiu)           1 (0.1%)
+   Vishal Patel                      1 (0.1%)
+   Piyush Mehta                      1 (0.1%)
+   Amit Kumar Mahapatra              1 (0.1%)
+   Jorge Ramirez-Ortiz               1 (0.1%)
+   Ralph Siemsen                     1 (0.1%)
+   Ovidiu Panait                     1 (0.1%)
+   John Keeping                      1 (0.1%)
+   Oliver Graute                     1 (0.1%)
+   Nicolas Heemeryck                 1 (0.1%)
+   Stanley Chu                       1 (0.1%)
+   Josef Schlehofer                  1 (0.1%)
+   Stephen Carlson                   1 (0.1%)
+   Yuantian Tang                     1 (0.1%)
+   Hou Zhiqiang                      1 (0.1%)
+   Kyle Evans                        1 (0.1%)
+   Lyle Franklin                     1 (0.1%)
+   Andrew Abbott                     1 (0.1%)
+   Oleksii Titov                     1 (0.1%)
+   Kshitiz Varshney                  1 (0.1%)
+   Ian Ray                           1 (0.1%)
+   Rogier Stam                       1 (0.1%)
+   Diego Rondini                     1 (0.1%)
+   Daniel Golle                      1 (0.1%)
+   Peter Cai                         1 (0.1%)
+   Alexandre Besnard                 1 (0.1%)
+   Elmar Albert                      1 (0.1%)
+   Arjan Minzinga Zijlstra           1 (0.1%)
+   Oleksii Bidnichenko               1 (0.1%)
+   Ji Luo                            1 (0.1%)
+   Clark Wang                        1 (0.1%)
+   Clément Péron                     1 (0.1%)
+   Andy Shevchenko                   1 (0.1%)
+   Hajo Noerenberg                   1 (0.1%)
+   Ville Baillie                     1 (0.1%)
+   Paul HENRYS                       1 (0.1%)
+   Jérôme Carretero                  1 (0.1%)
+   Dhananjay Phadke                  1 (0.1%)
+   Ivan Vozvakhov                    1 (0.1%)
+   Tom Saeger                        1 (0.1%)
+   Adarsh Babu Kalepalli             1 (0.1%)
+   He Yong                           1 (0.1%)
+   Samuel Dionne-Riel                1 (0.1%)
+   Felix Vietmeyer                   1 (0.1%)
+   Yi Liu                            1 (0.1%)
+   Angelo Dureghello                 1 (0.1%)
+   Baltazár Radics                   1 (0.1%)
+   Alexander Graf                    1 (0.1%)
+   Mihai Sain                        1 (0.1%)
+   Sai Krishna Potthuri              1 (0.1%)
+   weichangzheng                     1 (0.1%)
+   ================================  =====
+
+
+.. table:: Developers with the most changed lines
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Aaron Williams                    31473 (16.9%)
+   Tom Rini                          25599 (13.7%)
+   Simon Glass                       17972 (9.7%)
+   Marek Vasut                       14707 (7.9%)
+   Tim Harvey                        11858 (6.4%)
+   Sean Anderson                     10323 (5.5%)
+   Samuel Holland                    8705 (4.7%)
+   Stefan Roese                      4394 (2.4%)
+   Johan Jonker                      3712 (2.0%)
+   Jim Liu                           3650 (2.0%)
+   Ariel D'Alessandro                3358 (1.8%)
+   Huang Jianan                      3272 (1.8%)
+   Philippe Reynes                   2587 (1.4%)
+   Philip Oberfichtner               2400 (1.3%)
+   Peng Fan                          2365 (1.3%)
+   Pali Rohár                        2277 (1.2%)
+   Paweł Jarosz                      2092 (1.1%)
+   AKASHI Takahiro                   1700 (0.9%)
+   Eugen Hristev                     1532 (0.8%)
+   Gaurav Jain                       1522 (0.8%)
+   Humberto Naves                    1498 (0.8%)
+   Marek Behún                       1353 (0.7%)
+   Andre Przywara                    1318 (0.7%)
+   Paul Barker                       1308 (0.7%)
+   Patrick Delaunay                  1200 (0.6%)
+   Paweł Anikiel                     1162 (0.6%)
+   Michal Simek                      1065 (0.6%)
+   Patrice Chotard                   1038 (0.6%)
+   Ashok Reddy Soma                  1000 (0.5%)
+   Sughosh Ganu                      954 (0.5%)
+   Denys Drozdov                     942 (0.5%)
+   Neal Frager                       894 (0.5%)
+   Angus Ainslie                     804 (0.4%)
+   Heinrich Schuchardt               692 (0.4%)
+   weichangzheng                     686 (0.4%)
+   Etienne Carriere                  652 (0.4%)
+   Janne Grunau                      648 (0.3%)
+   Marcel Ziswiler                   636 (0.3%)
+   Andrew Scull                      606 (0.3%)
+   Neil Armstrong                    598 (0.3%)
+   Masahisa Kojima                   567 (0.3%)
+   Adam Ford                         524 (0.3%)
+   Billy Tsai                        497 (0.3%)
+   Alper Nebi Yasak                  440 (0.2%)
+   Fabio Estevam                     420 (0.2%)
+   Michael Trimarchi                 393 (0.2%)
+   Durai Manickam KR                 378 (0.2%)
+   Vincent Stehlé                    369 (0.2%)
+   Andrew Jeffery                    359 (0.2%)
+   T Karthik Reddy                   322 (0.2%)
+   Francesco Dolcini                 306 (0.2%)
+   Ye Li                             303 (0.2%)
+   Nate Drude                        275 (0.1%)
+   Dave Gerlach                      263 (0.1%)
+   Sergiu Moga                       260 (0.1%)
+   Tony Dinh                         256 (0.1%)
+   Sam Shih                          252 (0.1%)
+   Ivan Vozvakhov                    252 (0.1%)
+   Dzmitry Sankouski                 244 (0.1%)
+   Tommaso Merciai                   242 (0.1%)
+   Yannick Fertre                    217 (0.1%)
+   Clément Léger                     208 (0.1%)
+   Eddie James                       202 (0.1%)
+   Ilias Apalodimas                  190 (0.1%)
+   Philippe Schenker                 189 (0.1%)
+   Adarsh Babu Kalepalli             174 (0.1%)
+   Igor Opaniuk                      160 (0.1%)
+   Michael Walle                     159 (0.1%)
+   Lukasz Majewski                   157 (0.1%)
+   Josua Mayer                       137 (0.1%)
+   Vyacheslav Bocharov               131 (0.1%)
+   Stanley Chu                       131 (0.1%)
+   Gireesh Hiremath                  127 (0.1%)
+   Hari Nagalla                      126 (0.1%)
+   Leo Yu-Chi Liang                  116 (0.1%)
+   Luca Ellero                       107 (0.1%)
+   Chris Morgan                      100 (0.1%)
+   Peter Hoyes                       100 (0.1%)
+   Ji Luo                            100 (0.1%)
+   George Hilliard                   82 (0.0%)
+   Mark Kettenis                     79 (0.0%)
+   Frieder Schrempf                  78 (0.0%)
+   Heiko Thiery                      72 (0.0%)
+   Icenowy Zheng                     69 (0.0%)
+   Joel Stanley                      66 (0.0%)
+   Diego Rondini                     64 (0.0%)
+   Robert Marko                      63 (0.0%)
+   Dinesh Maniyam                    59 (0.0%)
+   Andrejs Cainikovs                 49 (0.0%)
+   Samuel Dionne-Riel                48 (0.0%)
+   Mihai Sain                        45 (0.0%)
+   Bin Meng                          41 (0.0%)
+   Loic Poulain                      40 (0.0%)
+   SESA644425                        40 (0.0%)
+   Masami Hiramatsu                  39 (0.0%)
+   Clement Faure                     39 (0.0%)
+   He Yong                           39 (0.0%)
+   Rasmus Villemoes                  38 (0.0%)
+   Jernej Skrabec                    37 (0.0%)
+   Jerome Forissier                  35 (0.0%)
+   Paul HENRYS                       31 (0.0%)
+   Jérôme Carretero                  30 (0.0%)
+   Paul Barbieri                     28 (0.0%)
+   Aswath Govindraju                 27 (0.0%)
+   Jan Kiszka                        26 (0.0%)
+   Jesse Taube                       26 (0.0%)
+   Nicolas Heemeryck                 23 (0.0%)
+   Ville Baillie                     23 (0.0%)
+   Andrew Davis                      22 (0.0%)
+   Kyle Evans                        22 (0.0%)
+   Peter Robinson                    21 (0.0%)
+   Romain Naour                      21 (0.0%)
+   Peter Cai                         21 (0.0%)
+   Hou Zhiqiang                      20 (0.0%)
+   Clark Wang                        20 (0.0%)
+   Sai Pavan Boddu                   18 (0.0%)
+   Amit Kumar Mahapatra              18 (0.0%)
+   Elmar Albert                      18 (0.0%)
+   Tudor Ambarus                     16 (0.0%)
+   Oleksandr Suvorov                 16 (0.0%)
+   Chris Packham                     15 (0.0%)
+   Vagrant Cascadian                 15 (0.0%)
+   Dominic Rath                      13 (0.0%)
+   Andrea Scian                      13 (0.0%)
+   Christoph Fritz                   13 (0.0%)
+   Nicolas Iooss                     12 (0.0%)
+   Miquel Raynal                     11 (0.0%)
+   Vishal Patel                      11 (0.0%)
+   Georgi Vlaev                      9 (0.0%)
+   Dario Binacchi                    8 (0.0%)
+   Teik Heng Chong                   8 (0.0%)
+   Piyush Mehta                      8 (0.0%)
+   Ovidiu Panait                     8 (0.0%)
+   John Keeping                      8 (0.0%)
+   Dhananjay Phadke                  8 (0.0%)
+   Tom Saeger                        8 (0.0%)
+   Tien Fong Chee                    7 (0.0%)
+   Stephen Carlson                   7 (0.0%)
+   Lyle Franklin                     7 (0.0%)
+   Felix Vietmeyer                   7 (0.0%)
+   Alexander Graf                    7 (0.0%)
+   Andrey Zhizhikin                  6 (0.0%)
+   Vignesh Raghavendra               6 (0.0%)
+   Christian Gmeiner                 6 (0.0%)
+   Haolin Li                         6 (0.0%)
+   Daniel Golle                      6 (0.0%)
+   Rick Chen                         5 (0.0%)
+   Ying-Chun Liu (PaulLiu)           5 (0.0%)
+   Rogier Stam                       5 (0.0%)
+   Alexandre Besnard                 5 (0.0%)
+   Angelo Dureghello                 5 (0.0%)
+   Christoph Niedermaier             4 (0.0%)
+   Hannes Schmelzer                  4 (0.0%)
+   Chunfeng Yun                      4 (0.0%)
+   Kshitiz Varshney                  4 (0.0%)
+   Yi Liu                            4 (0.0%)
+   Baltazár Radics                   4 (0.0%)
+   Christophe Leroy                  3 (0.0%)
+   Wasim Khan                        3 (0.0%)
+   Andrea zi0Black Cappa             3 (0.0%)
+   Sean Nyekjaer                     3 (0.0%)
+   Andy Shevchenko                   3 (0.0%)
+   Du Huanpeng                       2 (0.0%)
+   Vladimir Oltean                   2 (0.0%)
+   Camelia Groza                     2 (0.0%)
+   Sergei Antonov                    2 (0.0%)
+   Oliver Graute                     2 (0.0%)
+   Yuantian Tang                     2 (0.0%)
+   Oleksii Titov                     2 (0.0%)
+   Arjan Minzinga Zijlstra           2 (0.0%)
+   Oleksii Bidnichenko               2 (0.0%)
+   Clément Péron                     2 (0.0%)
+   Hajo Noerenberg                   2 (0.0%)
+   Sai Krishna Potthuri              2 (0.0%)
+   Emmanuel Vadot                    1 (0.0%)
+   qianfan Zhao                      1 (0.0%)
+   Yau Wai Gan                       1 (0.0%)
+   Corentin LABBE                    1 (0.0%)
+   Jorge Ramirez-Ortiz               1 (0.0%)
+   Ralph Siemsen                     1 (0.0%)
+   Josef Schlehofer                  1 (0.0%)
+   Andrew Abbott                     1 (0.0%)
+   Ian Ray                           1 (0.0%)
+   ================================  =====
+
+
+.. table:: Developers with the most lines removed
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Tom Rini                          19724 (34.9%)
+   Denys Drozdov                     941 (1.7%)
+   Marcel Ziswiler                   430 (0.8%)
+   Stefan Roese                      331 (0.6%)
+   Marek Behún                       309 (0.5%)
+   Adam Ford                         247 (0.4%)
+   Tony Dinh                         187 (0.3%)
+   Igor Opaniuk                      134 (0.2%)
+   Leo Yu-Chi Liang                  116 (0.2%)
+   Etienne Carriere                  97 (0.2%)
+   Francesco Dolcini                 30 (0.1%)
+   Rasmus Villemoes                  19 (0.0%)
+   Hou Zhiqiang                      16 (0.0%)
+   Frieder Schrempf                  14 (0.0%)
+   John Keeping                      8 (0.0%)
+   Romain Naour                      5 (0.0%)
+   Ying-Chun Liu (PaulLiu)           5 (0.0%)
+   Ovidiu Panait                     3 (0.0%)
+   Vignesh Raghavendra               3 (0.0%)
+   Andrea zi0Black Cappa             2 (0.0%)
+   Andy Shevchenko                   2 (0.0%)
+   Peter Robinson                    1 (0.0%)
+   Josef Schlehofer                  1 (0.0%)
+   Ian Ray                           1 (0.0%)
+   ================================  =====
+
+
+.. table:: Developers with the most signoffs (total 266)
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Andre Przywara                    50 (18.8%)
+   Michal Simek                      43 (16.2%)
+   Stefan Roese                      41 (15.4%)
+   Patrice Chotard                   23 (8.6%)
+   Peng Fan                          17 (6.4%)
+   Marcel Ziswiler                   16 (6.0%)
+   Neil Armstrong                    9 (3.4%)
+   Priyanka Jain                     7 (2.6%)
+   Michael Trimarchi                 6 (2.3%)
+   Johan Jonker                      5 (1.9%)
+   Tom Rini                          4 (1.5%)
+   Tom Warren                        4 (1.5%)
+   T Karthik Reddy                   4 (1.5%)
+   Stanley Chu                       4 (1.5%)
+   Samuel Holland                    4 (1.5%)
+   Yau Wai Gan                       2 (0.8%)
+   Jagan Teki                        2 (0.8%)
+   Biwen Li                          2 (0.8%)
+   Ye Li                             2 (0.8%)
+   Ilias Apalodimas                  2 (0.8%)
+   Heinrich Schuchardt               2 (0.8%)
+   Ariel D'Alessandro                2 (0.8%)
+   Amit Kumar Mahapatra              1 (0.4%)
+   Wolfgang Wallner                  1 (0.4%)
+   Alexandru M Stan                  1 (0.4%)
+   Kever Yang                        1 (0.4%)
+   Chee Hong Ang                     1 (0.4%)
+   Yifan Gu                          1 (0.4%)
+   Horia Geantă                      1 (0.4%)
+   Richard Weinberger                1 (0.4%)
+   Anatolij Gustschin                1 (0.4%)
+   Gabriel Fernandez                 1 (0.4%)
+   Christian Gmeiner                 1 (0.4%)
+   Sai Krishna Potthuri              1 (0.4%)
+   Josua Mayer                       1 (0.4%)
+   Masahisa Kojima                   1 (0.4%)
+   Ashok Reddy Soma                  1 (0.4%)
+   ================================  =====
+
+
+.. table:: Developers with the most reviews (total 871)
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Simon Glass                       100 (11.5%)
+   Fabio Estevam                     69 (7.9%)
+   Stefan Roese                      67 (7.7%)
+   Ramon Fried                       65 (7.5%)
+   Kever Yang                        63 (7.2%)
+   Priyanka Jain                     53 (6.1%)
+   Patrice Chotard                   38 (4.4%)
+   Patrick Delaunay                  38 (4.4%)
+   Heinrich Schuchardt               35 (4.0%)
+   Andre Przywara                    31 (3.6%)
+   Peng Fan                          26 (3.0%)
+   Bin Meng                          25 (2.9%)
+   Alper Nebi Yasak                  23 (2.6%)
+   Tom Rini                          21 (2.4%)
+   Marek Behún                       21 (2.4%)
+   Jaehoon Chung                     19 (2.2%)
+   Ye Li                             13 (1.5%)
+   Marek Vasut                       12 (1.4%)
+   Heiko Schocher                    9 (1.0%)
+   Tien Fong Chee                    9 (1.0%)
+   Sean Anderson                     9 (1.0%)
+   Vladimir Oltean                   8 (0.9%)
+   Ilias Apalodimas                  7 (0.8%)
+   Leo Yu-Chi Liang                  6 (0.7%)
+   Mark Kettenis                     6 (0.7%)
+   Neil Armstrong                    5 (0.6%)
+   Samuel Holland                    5 (0.6%)
+   Jagan Teki                        5 (0.6%)
+   Masami Hiramatsu                  5 (0.6%)
+   Gaurav Jain                       5 (0.6%)
+   Christian Gmeiner                 4 (0.5%)
+   Chia-Wei Wang                     4 (0.5%)
+   Claudiu Beznea                    4 (0.5%)
+   Pali Rohár                        4 (0.5%)
+   Ashok Reddy Soma                  3 (0.3%)
+   Francesco Dolcini                 3 (0.3%)
+   Nishanth Menon                    3 (0.3%)
+   Stefano Babic                     3 (0.3%)
+   Holger Brunck                     3 (0.3%)
+   Miquel Raynal                     3 (0.3%)
+   Michael Walle                     3 (0.3%)
+   Michal Simek                      2 (0.2%)
+   Michael Trimarchi                 2 (0.2%)
+   Tony Dinh                         2 (0.2%)
+   Frieder Schrempf                  2 (0.2%)
+   Minkyu Kang                       2 (0.2%)
+   Rick Chen                         2 (0.2%)
+   Tudor Ambarus                     2 (0.2%)
+   Joel Stanley                      2 (0.2%)
+   Tim Harvey                        2 (0.2%)
+   Marcel Ziswiler                   1 (0.1%)
+   John Keeping                      1 (0.1%)
+   Peter Robinson                    1 (0.1%)
+   Peter Collingbourne               1 (0.1%)
+   Pankaj Gupta                      1 (0.1%)
+   Han Xu                            1 (0.1%)
+   Radhey Shyam Pandey               1 (0.1%)
+   Philipp Tomsich                   1 (0.1%)
+   Thomas Chou                       1 (0.1%)
+   Kristian Amlie                    1 (0.1%)
+   Qu Wenruo                         1 (0.1%)
+   Jacky Bai                         1 (0.1%)
+   Ley Foon Tan                      1 (0.1%)
+   Dylan Hung                        1 (0.1%)
+   Andrey Zhizhikin                  1 (0.1%)
+   Kshitiz Varshney                  1 (0.1%)
+   Andrew Scull                      1 (0.1%)
+   Janne Grunau                      1 (0.1%)
+   ================================  =====
+
+
+.. table:: Developers with the most test credits (total 66)
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Tim Harvey                        15 (22.7%)
+   Patrice Chotard                   5 (7.6%)
+   Mark Kettenis                     4 (6.1%)
+   Adam Ford                         4 (6.1%)
+   Fabio Estevam                     3 (4.5%)
+   Marek Vasut                       3 (4.5%)
+   Marcel Ziswiler                   3 (4.5%)
+   Derald D. Woods                   3 (4.5%)
+   Pali Rohár                        2 (3.0%)
+   Ariel D'Alessandro                2 (3.0%)
+   Heiko Thiery                      2 (3.0%)
+   Andre Przywara                    1 (1.5%)
+   Chia-Wei Wang                     1 (1.5%)
+   Stefano Babic                     1 (1.5%)
+   Frieder Schrempf                  1 (1.5%)
+   John Keeping                      1 (1.5%)
+   Peter Robinson                    1 (1.5%)
+   Peter Collingbourne               1 (1.5%)
+   Kshitiz Varshney                  1 (1.5%)
+   Janne Grunau                      1 (1.5%)
+   Josua Mayer                       1 (1.5%)
+   Ying-Chun Liu (PaulLiu)           1 (1.5%)
+   Peter Griffin                     1 (1.5%)
+   Tatsuhiko Yasumatsu               1 (1.5%)
+   Jincheng Wang                     1 (1.5%)
+   Gabriel Hojda                     1 (1.5%)
+   Arti Zirk                         1 (1.5%)
+   Merlijn Wajer                     1 (1.5%)
+   Soeren Moch                       1 (1.5%)
+   Raffaele RECALCATI                1 (1.5%)
+   Angus Ainslie                     1 (1.5%)
+   ================================  =====
+
+
+.. table:: Developers who gave the most tested-by credits (total 67)
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Marek Vasut                       14 (20.9%)
+   Fabio Estevam                     6 (9.0%)
+   Michael Trimarchi                 6 (9.0%)
+   Heiko Thiery                      4 (6.0%)
+   Adam Ford                         3 (4.5%)
+   Heinrich Schuchardt               3 (4.5%)
+   Tom Rini                          3 (4.5%)
+   Pali Rohár                        2 (3.0%)
+   Andre Przywara                    2 (3.0%)
+   Frieder Schrempf                  2 (3.0%)
+   Janne Grunau                      2 (3.0%)
+   Miquel Raynal                     2 (3.0%)
+   Masahisa Kojima                   2 (3.0%)
+   Tim Harvey                        1 (1.5%)
+   Mark Kettenis                     1 (1.5%)
+   Angus Ainslie                     1 (1.5%)
+   Simon Glass                       1 (1.5%)
+   Peng Fan                          1 (1.5%)
+   Marek Behún                       1 (1.5%)
+   Ye Li                             1 (1.5%)
+   Gaurav Jain                       1 (1.5%)
+   Joel Stanley                      1 (1.5%)
+   Rasmus Villemoes                  1 (1.5%)
+   Christoph Niedermaier             1 (1.5%)
+   Peter Cai                         1 (1.5%)
+   Jerome Forissier                  1 (1.5%)
+   Andrejs Cainikovs                 1 (1.5%)
+   Nate Drude                        1 (1.5%)
+   AKASHI Takahiro                   1 (1.5%)
+   ================================  =====
+
+
+.. table:: Developers with the most report credits (total 19)
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Tom Rini                          2 (10.5%)
+   Patrick Delaunay                  2 (10.5%)
+   Fabio Estevam                     1 (5.3%)
+   Tim Harvey                        1 (5.3%)
+   Tatsuhiko Yasumatsu               1 (5.3%)
+   Jincheng Wang                     1 (5.3%)
+   Gabriel Hojda                     1 (5.3%)
+   Nishanth Menon                    1 (5.3%)
+   Milan P. Stanić                   1 (5.3%)
+   Yun-Chien Yu                      1 (5.3%)
+   Nicolas Bidron                    1 (5.3%)
+   Balaji Anandapadmanaban           1 (5.3%)
+   David Mosberger-Tang              1 (5.3%)
+   Jesse Villarreal                  1 (5.3%)
+   Suman Anna                        1 (5.3%)
+   Vagrant Cascadian                 1 (5.3%)
+   Chris Morgan                      1 (5.3%)
+   ================================  =====
+
+
+.. table:: Developers who gave the most report credits (total 19)
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   Simon Glass                       5 (26.3%)
+   Andre Przywara                    3 (15.8%)
+   Heinrich Schuchardt               2 (10.5%)
+   Miquel Raynal                     2 (10.5%)
+   Aswath Govindraju                 2 (10.5%)
+   Tom Rini                          1 (5.3%)
+   Fabio Estevam                     1 (5.3%)
+   Samuel Holland                    1 (5.3%)
+   Tudor Ambarus                     1 (5.3%)
+   Chunfeng Yun                      1 (5.3%)
+   ================================  =====
+
+
+.. table:: Top changeset contributors by employer
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   (Unknown)                         669 (39.4%)
+   Google, Inc.                      168 (9.9%)
+   Konsulko Group                    164 (9.7%)
+   DENX Software Engineering         147 (8.7%)
+   NXP                               112 (6.6%)
+   Linaro                            80 (4.7%)
+   ST Microelectronics               53 (3.1%)
+   AMD                               51 (3.0%)
+   Marvell                           40 (2.4%)
+   Xilinx                            39 (2.3%)
+   ARM                               34 (2.0%)
+   Toradex                           33 (1.9%)
+   Texas Instruments                 27 (1.6%)
+   Amarula Solutions                 24 (1.4%)
+   Intel                             12 (0.7%)
+   Semihalf Embedded Systems         11 (0.6%)
+   Bootlin                           7 (0.4%)
+   BayLibre SAS                      5 (0.3%)
+   Collabora Ltd.                    5 (0.3%)
+   Siemens                           4 (0.2%)
+   Debian.org                        3 (0.2%)
+   IBM                               3 (0.2%)
+   Wind River                        1 (0.1%)
+   Dave S.r.l.                       1 (0.1%)
+   General Electric                  1 (0.1%)
+   Oracle                            1 (0.1%)
+   Rockchip                          1 (0.1%)
+   ================================  =====
+
+
+.. table:: Top lines changed by employer
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   (Unknown)                         63402 (34.0%)
+   Marvell                           31473 (16.9%)
+   Konsulko Group                    25599 (13.7%)
+   DENX Software Engineering         22078 (11.9%)
+   Google, Inc.                      18578 (10.0%)
+   NXP                               4382 (2.4%)
+   Linaro                            4183 (2.2%)
+   Collabora Ltd.                    3358 (1.8%)
+   ST Microelectronics               2455 (1.3%)
+   Xilinx                            2277 (1.2%)
+   Toradex                           2140 (1.1%)
+   ARM                               1787 (1.0%)
+   Semihalf Embedded Systems         1162 (0.6%)
+   AMD                               1061 (0.6%)
+   Amarula Solutions                 643 (0.3%)
+   BayLibre SAS                      599 (0.3%)
+   Texas Instruments                 453 (0.2%)
+   Bootlin                           219 (0.1%)
+   IBM                               202 (0.1%)
+   Intel                             78 (0.0%)
+   Siemens                           26 (0.0%)
+   Debian.org                        15 (0.0%)
+   Dave S.r.l.                       13 (0.0%)
+   Wind River                        8 (0.0%)
+   Oracle                            8 (0.0%)
+   Rockchip                          4 (0.0%)
+   General Electric                  1 (0.0%)
+   ================================  =====
+
+
+.. table:: Employers with the most signoffs (total 266)
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   ARM                               50 (18.8%)
+   DENX Software Engineering         42 (15.8%)
+   Xilinx                            39 (14.7%)
+   NXP                               29 (10.9%)
+   ST Microelectronics               24 (9.0%)
+   (Unknown)                         21 (7.9%)
+   Toradex                           16 (6.0%)
+   AMD                               11 (4.1%)
+   BayLibre SAS                      9 (3.4%)
+   Amarula Solutions                 8 (3.0%)
+   Konsulko Group                    4 (1.5%)
+   NVidia                            4 (1.5%)
+   Linaro                            3 (1.1%)
+   Intel                             3 (1.1%)
+   Collabora Ltd.                    2 (0.8%)
+   Rockchip                          1 (0.4%)
+   ================================  =====
+
+
+.. table:: Employers with the most hackers (total 185)
+   :widths: auto
+
+   ================================  =====
+   Name                              Count
+   ================================  =====
+   (Unknown)                         102 (55.1%)
+   NXP                               12 (6.5%)
+   Linaro                            10 (5.4%)
+   Xilinx                            9 (4.9%)
+   Toradex                           7 (3.8%)
+   Texas Instruments                 6 (3.2%)
+   DENX Software Engineering         5 (2.7%)
+   Intel                             5 (2.7%)
+   ARM                               3 (1.6%)
+   ST Microelectronics               3 (1.6%)
+   Amarula Solutions                 3 (1.6%)
+   AMD                               2 (1.1%)
+   BayLibre SAS                      2 (1.1%)
+   Google, Inc.                      2 (1.1%)
+   Bootlin                           2 (1.1%)
+   Konsulko Group                    1 (0.5%)
+   Collabora Ltd.                    1 (0.5%)
+   Rockchip                          1 (0.5%)
+   Marvell                           1 (0.5%)
+   Semihalf Embedded Systems         1 (0.5%)
+   IBM                               1 (0.5%)
+   Siemens                           1 (0.5%)
+   Debian.org                        1 (0.5%)
+   Dave S.r.l.                       1 (0.5%)
+   Wind River                        1 (0.5%)
+   Oracle                            1 (0.5%)
+   General Electric                  1 (0.5%)
+   ================================  =====
diff --git a/doc/dumpimage.1 b/doc/dumpimage.1
new file mode 100644
index 0000000..52a45a3
--- /dev/null
+++ b/doc/dumpimage.1
@@ -0,0 +1,103 @@
+.\" SPDX-License-Identifier: GPL-2.0
+.\" Copyright (C) 2022 Sean Anderson <seanga2@gmail.com>
+.TH DUMPIMAGE 1 2022-06-11 U-Boot
+.SH NAME
+dumpimage \- extract data from U-Boot images
+.
+.SH SYNOPSIS
+.SY dumpimage
+.OP \-T type
+.BI \-l\~ image
+.YS
+.SY dumpimage
+.OP \-T type
+.OP \-p position
+.BI \-o\~ outfile
+.I image
+.YS
+.SY dumpimage
+.B \-h
+.YS
+.SY dumpimage
+.B \-V
+.YS
+.
+.SH DESCRIPTION
+.B dumpimage
+lists and extracts data from U-Boot images. If
+.B \-l
+is specified,
+.B dumpimage
+lists the components in
+.IR image .
+Otherwise,
+.B dumpimage
+extracts the component at
+.IR position " to " outfile .
+.
+.SH OPTIONS
+.TP
+.B \-h
+Print usage information and exit.
+.
+.TP
+.B \-l
+Print the header information for
+.IR image ,
+including a list of components.
+.
+.TP
+.BI \-o " outfile"
+The file to write the dumped component to.
+.TP
+.BI \-p " position"
+Specify the
+.I position
+of the component to dump. This should be a numeric index, starting at 0. If not
+specified, the default
+.I position
+is 0.
+.
+.TP
+.BI \-T " type"
+Specify the
+.I type
+of the image. If not specified, the image type will be automatically detected. A
+list of supported image types may be printed by running
+.BR "mkimage\~\-T\~list" .
+.
+.TP
+.B \-V
+Print version information and exit.
+.
+.SH BUGS
+Please report bugs to the
+.UR https://\:source\:.denx\:.de/\:u-boot/\:u-boot/\:issues
+U-Boot bug tracker
+.UE .
+.SH EXAMPLES
+Create a multi-file image and then extract part of that image
+.PP
+.EX
+.in +4
+$ \c
+.B mkimage \-A x86 \-O linux \-T multi \-n x86 \\\\\&
+.in +4
+.B \-d vmlinuz:initrd.img:System.map multi.img
+.in
+Image Name:   x86
+Created:      Thu Jul 25 10:29:13 2013
+Image Type:   Intel x86 Linux Multi-File Image (gzip compressed)
+Data Size:    13722956 Bytes = 13401.32 kB = 13.09 MB
+Load Address: 00000000
+Entry Point:  00000000
+Contents:
+   Image 0: 4040128 Bytes = 3945.44 kB = 3.85 MB
+   Image 1: 7991719 Bytes = 7804.41 kB = 7.62 MB
+   Image 2: 1691092 Bytes = 1651.46 kB = 1.61 MB
+$ \c
+.B dumpimage -p 2 -o System.map multi.img
+.EE
+.in
+.SH SEE ALSO
+.BR mkimage (1)
diff --git a/doc/mkimage.1 b/doc/mkimage.1
index 759dc2d..353ea8b 100644
--- a/doc/mkimage.1
+++ b/doc/mkimage.1
@@ -1,116 +1,666 @@
-.TH MKIMAGE 1 "2022-02-07"
-
+.\" SPDX-License-Identifier: GPL-2.0
+.\" Copyright (C) 2022 Sean Anderson <seanga2@gmail.com>
+.\" Copyright (C) 2013-20 Simon Glass <sjg@chromium.org>
+.\" Copyright (C) 2010 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+.\" Copyright (C) 2010 Wolfgang Denk <wd@denx.de>
+.TH MKIMAGE 1 2022-06-11 U-Boot
+.
 .SH NAME
-mkimage \- Generate image for U-Boot
+mkimage \- generate images for U-Boot
 .SH SYNOPSIS
-.B mkimage
-.RB [ \-T " \fItype\fP] " \-l " [\fIuimage file name\fP]"
-
-.B mkimage
-.RB [\fIoptions\fP] " \-f [" "image tree source file" "]" " [" "uimage file name" "]"
-
-.B mkimage
-.RB [\fIoptions\fP] " \-F [" "uimage file name" "]"
-
-.B mkimage
-.RB [\fIoptions\fP] " (legacy mode)"
-
-.SH "DESCRIPTION"
+.SY mkimage
+.OP \-T type
+.BI \-l\~ image-file-name
+.YS
+.
+.SY mkimage
+.RI [ option\~ .\|.\|.\&]
+.OP \-T type
+.I image-file-name
+.YS
+.
+.SY mkimage
+.RI [ option\~ .\|.\|.\&]
+.BI \-f\~ image-tree-source-file\c
+.RB | auto
+.I image-file-name
+.YS
+.
+.SY mkimage
+.RI [ option\~ .\|.\|.\&]
+.BI \-F\~ image-file-name
+.YS
+.
+.SH DESCRIPTION
 The
 .B mkimage
-command is used to create images for use with the U-Boot boot loader.
-These images can contain the linux kernel, device tree blob, root file
-system image, firmware images etc., either separate or combined.
-
-.B mkimage
-supports two different formats:
-
-The old
-.I legacy image
-format concatenates the individual parts (for example, kernel image,
-device tree blob and ramdisk image) and adds a 64 bytes header
-containing information about target architecture, operating system,
-image type, compression method, entry points, time stamp, checksums,
-etc.
-
-The new
-.I FIT (Flattened Image Tree) format
-allows for more flexibility in handling images of various types and also
-enhances integrity protection of images with stronger checksums. It also
-supports verified boot.
-
-.SH "OPTIONS"
-
-.B List image information:
-
-.TP
-.BI "\-l [" "uimage file name" "]"
-mkimage lists the information contained in the header of an existing U-Boot image.
-
-.TP
-.BI "\-T [" "image type" "]"
-Parse image file as type.
-Pass \-h as the image to see the list of supported image type.
-Without this option image type is autodetected.
-
-.TP
-.BI "\-q"
-Quiet. Don't print the image header on successful verification.
-
+command is used to create images for use with the U-Boot boot loader.  These
+images can contain the Linux kernel, device tree blob, root file system image,
+firmware images etc., either separate or combined.
 .P
-.B Create old legacy image:
-
+.B mkimage
+supports many image formats. Some of these formats may be used by embedded boot
+firmware to load U-Boot. Others may be used by U-Boot to load Linux (or some
+other kernel):
+.P
+The legacy image format concatenates the individual parts (for example, kernel
+image, device tree blob and ramdisk image) and adds a 64 byte header containing
+information about the target architecture, operating system, image type,
+compression method, entry points, time stamp, checksums, etc.
+.P
+The new
+.I FIT
+(Flattened Image Tree) format allows for more flexibility in handling images of
+various types and also enhances integrity protection of images with stronger
+checksums. It also supports verified boot.
+.
+.SH OPTIONS
+.
+.SS General options
+.
 .TP
-.BI "\-A [" "architecture" "]"
-Set architecture. Pass \-h as the architecture to see the list of supported architectures.
-
+.B \-h
+.TQ
+.B \-\-help
+Print a help message and exit.
+.
 .TP
-.BI "\-O [" "os" "]"
-Set operating system. bootm command of u-boot changes boot method by os type.
-Pass \-h as the OS to see the list of supported OS.
-
+.B \-l
+.TQ
+.B \-\-list
+.B mkimage
+lists the information contained in the header of an existing U-Boot image.
+.
 .TP
-.BI "\-T [" "image type" "]"
-Set image type.
-Pass \-h as the image to see the list of supported image type.
-
+.B \-s
+.TQ
+.B \-\-no\-copy
+Don't copy in the image data. Depending on the image type, this may create
+just the header, everything but the image data, or nothing at all.
+.
 .TP
-.BI "\-C [" "compression type" "]"
-Set compression type.
-Pass \-h as the compression to see the list of supported compression type.
-
+.BI \-T " image-type"
+.TQ
+.BI \-\-type " image-type"
+Parse image file as
+.IR image-type .
+Pass
+.B list
+as
+.I image-type
+to see the list of supported image types. If this option is absent, then it
+defaults to
+.B kernel
+(legacy image). If this option is absent when
+.B \-l
+is passed, then
+.B mkimage
+will attempt to automatically detect the image type. Not all image types support
+automatic detection, so it may be necessary to pass
+.B \-T
+explicitly.
+.IP
+When creating a FIT image with
+.BR \-f ,
+the image type is always set to
+.BR flat_dt .
+In this case,
+.B \-T
+specifies the image node's \(oqtype\(cq property. If
+.B \-T
+is absent, then the \(oqtype\(cq property will default to
+.BR kernel .
+.
 .TP
-.BI "\-a [" "load address" "]"
-Set load address with a hex number.
-
+.B \-q
+.TQ
+.B \-\-quiet
+Quiet. Don't print the image header.
+.
 .TP
-.BI "\-e [" "entry point" "]"
-Set entry point with a hex number.
-
+.B \-v
+.TQ
+.B \-\-verbose
+Verbose. Print file names as they are added to the image.
+.
 .TP
-.BI "\-l"
-List the contents of an image.
-
+.B \-V
+.TQ
+.B \-\-version
+Print version information and exit.
+.
+.SS General image-creation options
+.
 .TP
-.BI "\-n [" "image name" "]"
-Set image name to 'image name'.
-
+.BI \-A " architecture"
+.TQ
+.BI \-\-architecture " architecture"
+Set the architecture. Pass
+.B \-h
+as the architecture to see the list of supported architectures. If
+.B \-A
+is absent, it defaults to
+.BR ppc .
+.
 .TP
-.BI "\-R [" "secondary image name" "]"
-Some image types support a second image for additional data. For these types,
-use \-R to specify this second image.
+.BI \-O " os"
+.TQ
+.BI \-\-os " os"
+Set the operating system. The U-Boot
+.I bootm
+command changes boot method based on the OS type.
+Pass
+.B \-h
+as the
+.I os
+to see the list of supported OSs. If
+.B \-O
+is absent, it defaults to
+.BR linux .
+.
+.TP
+.BI \-C " compression-type"
+.TQ
+.BI \-\-compression " compression-type"
+Set the compression type. The image data should have already been compressed
+using this compression type.
+.B mkimage
+will not automatically compress image data.
+Pass
+.B \-h
+as the
+.I compression-type
+to see the list of supported compression types. If
+.B \-C
+is absent, it defaults to
+.BR gzip .
+.
+.TP
+.BI \-a " load-address"
+.TQ
+.BI \-\-load\-address " load-address"
+Set the absolute address to load the image data to.
+.I load-address
+will be interpreted as a hexadecimal number.
+.
+.TP
+.BI \-e " entry-point"
+.TQ
+.BI \-\-entry\-point " entry-point"
+Set the absolute address of the image entry point. The U-Boot
+.I bootm
+command will jump to this address after loading the image.
+.I entry-point
+will be interpreted as a hexadecimal number.
+.
+.TP
+.BI \-n " primary-configuration"
+.TQ
+.BI \-\-config " primary-configuration"
+Images may require additional configuration not specified with other options,
+often in a image-type-specific format. The image types which support this
+option and the format of their configuration are listed in
+.BR CONFIGURATION .
+.
+.TP
+.BI \-R " secondary-configuration"
+.TQ
+.BI \-\-secondary\-config " secondary-configuration"
+Some image types support a second set of configuration data. The image types
+which support secondary configuration and the formap of their configuration are
+listed in
+.BR CONFIGURATION .
+.
+.TP
+.BI \-d " image-data-file"
+.TQ
+.BI \-\-image " image-data-file"
+Use image data from
+.IR image-data-file .
+If the
+.I image-type
+is
+.BR multi ,
+then multiple images may be specified, separated by colons:
+.RS
+.IP
+.IR image-data-file [\fB:\fP image-data-file .\|.\|.]
+.RE
+.
+.TP
+.B \-x
+.TQ
+.B \-\-xip
+Set the
+.I XIP
+(execute in place) flag. The U-Boot
+.I bootm
+command will not load the image data, and instead will assume it is already
+accessible at the load address (such as via memory-mapped flash).
+.
+.SS Options for creating FIT images
+.
+.TP
+.BI \-b " device-tree-file"
+.TQ
+.BI \-\-device\-tree " device-tree-file"
+Appends the device tree binary file (.dtb) to the FIT.
+.
+.TP
+.BI \-c " comment"
+.TQ
+.BI \-\-comment " comment"
+Specifies a comment to be added when signing. This is typically a message which
+describes how the image was signed or some other useful information.
+.
+.TP
+.BI \-D " dtc-options"
+.TQ
+.BI \-\-dtcopts " dtc-options"
+Provide additional options to the device tree compiler when creating the image.
+See
+.BR dtc (1)
+for documentation of possible options. If
+.B \-D
+is absent, it defaults to
+.BR "\-I dts \-O dtb \-p 500" .
+.
+.TP
+.BI \-E
+.TQ
+.BI \-\-external
+After processing, move the image data outside the FIT and store a data offset
+in the FIT. Images will be placed one after the other immediately after the FIT,
+with each one aligned to a 4-byte boundary. The existing \(oqdata\(cq property
+in each image will be replaced with \(oqdata-offset\(cq and \(oqdata-size\(cq
+properties.  A \(oqdata-offset\(cq of 0 indicates that it starts in the first
+(4-byte-aligned) byte after the FIT.
+.
+.TP
+.BI \-B " alignment"
+.TQ
+.BI \-\-alignment " alignment"
+The alignment, in hexadecimal, that external data will be aligned to. This
+option only has an effect when \-E is specified.
+.
+.TP
+.BI \-p " external-position"
+.TQ
+.BI \-\-position " external-position"
+Place external data at a static external position. Instead of writing a
+\(oqdata-offset\(cq property defining the offset from the end of the FIT,
+.B \-p
+will use \(oqdata-position\(cq as the absolute position from the base of the
+FIT. See
+.B \-E
+for details on using external data.
+.
+.TP
+\fB\-f \fIimage-tree-source-file\fR | \fBauto
+.TQ
+\fB\-\-fit \fIimage-tree-source-file\fR | \fBauto
+Image tree source file that describes the structure and contents of the
+FIT image.
+.IP
+In some simple cases, the image tree source can be generated automatically. To
+use this feature, pass
+.BR "\-f auto" .
+The
+.BR \-d ,
+.BR \-A ,
+.BR \-O ,
+.BR \-T ,
+.BR \-C ,
+.BR \-a ,
+and
+.B \-e
+options may be used to specify the image to include in the FIT and its
+attributes. No
+.I image-tree-source-file
+is required.
+.
+.TP
+.B \-F
+.TQ
+.B \-\-update
+Indicates that an existing FIT image should be modified. No dtc compilation will
+be performed and
+.B \-f
+should not be passed. This can be used to sign images with additional keys
+after initial image creation.
+.
+.TP
+.BI \-i " ramdisk-file"
+.TQ
+.BI \-\-initramfs " ramdisk-file"
+Append a ramdisk or initramfs file to the image.
+.
+.TP
+.BI \-k " key-directory"
+.TQ
+.BI \-\-key\-dir " key-directory"
+Specifies the directory containing keys to use for signing. This directory
+should contain a private key file
+.IR name .key
+for use with signing, and a certificate
+.IR name .crt
+(containing the public key) for use with verification. The public key is only
+necessary when embedding it into another device tree using
+.BR \-K .
+.I name
+defaults to the value of the signature node's \(oqkey-name-hint\(cq property,
+but may be overridden using
+.BR \-g .
+.
+.TP
+.BI \-G " key-file"
+.TQ
+.BI \-\-key\-file " key-file"
+Specifies the private key file to use when signing. This option may be used
+instead of \-k.
+.
+.TP
+.BI \-K " key-destination"
+.TQ
+.BI \-\-key\-dest " key-destination"
+Specifies a compiled device tree binary file (typically .dtb) to write
+public key information into. When a private key is used to sign an image,
+the corresponding public key is written into this file for for run-time
+verification. Typically the file here is the device tree binary used by
+CONFIG_OF_CONTROL in U-Boot.
+.
+.TP
+.BI \-g " key-name-hint"
+.TQ
+.BI \-\-key\-name\-hint " key-name-hint"
+Overrides the signature node's \(oqkey-name-hint\(cq property. This is
+especially useful when signing an image with
+.BR "\-f auto" .
+This is the
+.I name
+part of the key. The directory part is set by
+.BR \-k .
+This option also indicates that the images included in the FIT should be signed.
+If this option is specified, then
+.B \-o
+must be specified as well.
+.
+.TP
+.BI \-o " crypto" , checksum
+.TQ
+.BI \-\-algo " crypto" , checksum
+Specifies the algorithm to be used for signing a FIT image. The default is
+taken from the signature node's \(oqalgo\(cq property.
+The valid values for
+.I crypto
+are:
+.RS
+.IP
 .TS
-allbox;
+lb.
+rsa2048
+rsa3072
+rsa4096
+ecdsa256
+.TE
+.RE
+.IP
+The valid values for
+.I checksum
+are
+.RS
+.IP
+.TS
+lb.
+sha1
+sha256
+sha384
+sha512
+.TE
+.RE
+.
+.TP
+.B \-r
+.TQ
+.B \-\-key\-required
+Specifies that keys used to sign the FIT are required. This means that they
+must be verified for the image to boot. Without this option, the verification
+will be optional (useful for testing but not for release).
+.
+.TP
+.BI \-N " engine"
+.TQ
+.BI \-\-engine " engine"
+The openssl engine to use when signing and verifying the image. For a complete
+list of available engines, refer to
+.BR engine (1).
+.
+.TP
+.B \-t
+.TQ
+.B \-\-touch
+Update the timestamp in the FIT.
+.IP
+Normally the FIT timestamp is created the first time mkimage runs,
+when converting the source .its to the binary .fit file. This corresponds to
+using
+.BR -f .
+But if the original input to mkimage is a binary file (already compiled), then
+the timestamp is assumed to have been set previously.
+.
+.SH CONFIGURATION
+This section documents the formats of the primary and secondary configuration
+options for each image type which supports them.
+.
+.SS aisimage
+The primary configuration is a file containing a series of
+.I AIS
+(Application Image Script) commands, one per line. Each command has the form
+.RS
+.P
+.IR "command argument " .\|.\|.
+.RE
+.P
+See
+.UR https://\:www\:.ti\:.com/\:lit/\:pdf/\:spraag0
+TI application report SPRAAG0E
+.UE
+for details.
+.
+.SS atmelimage
+The primary configuration is a comma-separated list of NAND Flash parameters of
+the form
+.RS
+.P
+\fIparameter\fB=\fIvalue\fR[\fB,\fIparameter\fB=\fIvalue\fR.\|.\|.\&]
+.RE
+.P
+Valid
+.IR parameter s
+are
+.RS
+.P
+.TS
+lb.
+usePmecc
+nbSectorPerPage
+spareSize
+eccBitReq
+sectorSize
+eccOffset
+.TE
+.RE
+.P
+and valid
+.IR value s
+are decimal numbers. See section 11.4.4.1 of the SAMA5D3 Series Data Sheet for
+valid values for each parameter.
+.
+.SS imximage
+The primary configuration is a file containing configuration commands, as
+documented in doc/\:imx/\:mkimage/\:imximage.txt of the U-Boot source.
+.
+.SS imx8image and imx8mimage
+The primary configuration is a file containing configuration commands, as
+documented in doc/\:imx/\:mkimage/\:imx8image.txt of the U-Boot source.
+.
+.SS kwbimage
+The primary configuration is a file containing configuration commands, as
+documented in doc/\:imx/\:mkimage/\:kwbimage.txt of the U-Boot source.
+.
+.SS mtk_image
+The primary configuration is a semicolon-separated list of header options of the
+form
+.RS
+.P
+\fIkey\fB=\fIvalue\fR[\fB;\fIkey\fB=\fIvalue\fR.\|.\|.\&]
+.RE
+.P
+where the valid keys are:
+.RS
+.P
+.TS
 lb lbx
-l l.
-Image Type	Secondary Image Description
-pblimage	Additional RCW-style header, typically used for PBI commands.
-zynqimage, zynqmpimage	T{
-Initialization parameters, one per line. Each parameter has the form
-.sp
-.ti 4
+lb l.
+Key	Description
+_
+lk	T{
+If \fB1\fP, then an \fILK\fP (legacy) image header is used. Otherwise, a
+\fIBootROM\fP image header is used.
+T}
+lkname	T{
+The name of the LK image header. The maximum length is 32 ASCII characters. If
+not specified, the default value is \fBU-Boot\fP.
+T}
+media	The boot device. See below for valid values.
+nandinfo	The desired NAND device type. See below for valid values.
+arm64	If \fB1\fP, then this denotes an AArch64 image.
+hdroffset	Increase the reported size of the BRLYT header by this amount.
+.TE
+.RE
+.P
+Valid values for
+.B media
+are:
+.RS
+.P
+.TS
+lb lb
+lb l.
+Value	Description
+_
+nand	Parallel NAND flash
+snand	Serial NAND flash
+nor	Serial NOR flash
+emmc	\fIeMMC\fP (Embedded Multi-Media Card)
+sdmmc	\fISD\fP (Secure Digital) card
+.TE
+.RE
+.P
+Valid values for
+.B nandinfo
+are:
+.RS
+.P
+.TS
+lb lb lb	lb	lb
+lb l	l	l	l.
+Value	NAND type	Page size	OOB size	Total size
+_
+2k+64	Serial	2KiB	64B
+2k+120	Serial	2KiB	120B
+2k+128	Serial	2KiB	128B
+4k+256	Serial	4KiB	256B
+1g:2k+64	Parallel	2KiB	64B	1Gbit
+2g:2k+64	Parallel	2KiB	64B	2Gbit
+4g:2k+64	Parallel	2KiB	64B	4Gbit
+2g:2k+128	Parallel	2KiB	128B	2Gbit
+4g:2k+128	Parallel	2KiB	128B	4Gbit
+.TE
+.RE
+.
+.SS mxsimage
+The primary configuration is a file containing configuration commands, as
+documented in doc/\:imx/\:mkimage/\:mxsimage.txt of the U-Boot source.
+.
+.SS omapimage
+The primary configuration is the optional value
+.BR byteswap .
+If present, each 32-bit word of the image will have its bytes swapped
+(converting from little-endian to big-endian, or vice versa).
+.
+.SS pblimage
+The primary configuration is a file containing the
+.I PBI
+(Pre-Boot Image) header. Each line of the configuration has the format
+.RS
+.P
+.IR value "[ " value .\|.\|.\&]
+.RE
+.P
+Where
+.I value
+is a 32-bit hexadecimal integer. Each
+.I value
+will, after being converted to raw bytes, be literally prepended to the PBI.
+.P
+The secondary configuration is a file with the same format as the primary
+configuration file. It will be inserted into the image after the primary
+configuration data and before the image data.
+.P
+It is traditional to use the primary configuration file for the
+.I RCW
+(Reset Configuration Word), and the secondary configuration file for any
+additional PBI commands. However, it is also possible to convert an existing PBI
+to the above format and \(lqchain\(rq additional data onto the end of the
+image. This may be especially useful for creating secure boot images.
+.
+.SS rkimage
+The primary configuration is the name of the processor to generate the image
+for. Valid values are:
+.RS
+.P
+.TS
+lb.
+px30
+rk3036
+rk3066
+rk3128
+rk3188
+rk322x
+rk3288
+rk3308
+rk3328
+rk3368
+rk3399
+rv1108
+rk3568
+.TE
+.RE
+.
+.SS sunxi_egon
+The primary configuration is the name to use for the device tree.
+.
+.SS ublimage
+The primary configuration is a file containing configuration commands, as
+documented in doc/\:README.ublimage of the U-Boot source.
+.
+.SS zynqimage and zynqmpimage
+For
+.BR zynqmpimage ,
+the primary configuration is a file containing the
+.I PMUFW
+(Power Management Unit Firmware).
+.B zynqimage
+does not use the primary configuration.
+.P
+For both image types, the secondary configuration is a file containinig
+initialization parameters, one per line. Each parameter has the form
+.RS
+.P
 .I address data
-.sp
+.RE
+.P
 where
 .I address
 and
@@ -121,220 +671,109 @@
 .I address
 when loading the image. At most 256 parameters may be specified in this
 manner.
-T}
-.TE
-
-.TP
-.BI "\-d [" "image data file" "]"
-Use image data from 'image data file'.
-
-.TP
-.BI "\-x"
-Set XIP (execute in place) flag.
-
-.TP
-.BI "\-s"
-Don't copy in the image data. Depending on the image type, this may create
-just the header, everything but the image data, or nothing at all.
-
-.TP
-.BI "\-v"
-Verbose. Print file names as they are added to the image.
-
-.P
-.B Create FIT image:
-
-.TP
-.BI "\-b [" "device tree file" "]
-Appends the device tree binary file (.dtb) to the FIT.
-
-.TP
-.BI "\-c [" "comment" "]"
-Specifies a comment to be added when signing. This is typically a useful
-message which describes how the image was signed or some other useful
-information.
-
-.TP
-.BI "\-D [" "dtc options" "]"
-Provide special options to the device tree compiler that is used to
-create the image.
-
-.TP
-.BI "\-E
-After processing, move the image data outside the FIT and store a data offset
-in the FIT. Images will be placed one after the other immediately after the
-FIT, with each one aligned to a 4-byte boundary. The existing 'data' property
-in each image will be replaced with 'data-offset' and 'data-size' properties.
-A 'data-offset' of 0 indicates that it starts in the first (4-byte aligned)
-byte after the FIT.
-
-.TP
-.BI "\-B [" "alignment" "]"
-The alignment, in hexadecimal, that external data will be aligned to. This
-option only has an effect when \-E is specified.
-
-.TP
-.BI "\-f [" "image tree source file" " | " "auto" "]"
-Image tree source file that describes the structure and contents of the
-FIT image.
-
-This can be automatically generated for some simple cases.
-Use "-f auto" for this. In that case the arguments -d, -A, -O, -T, -C, -a
-and -e are used to specify the image to include in the FIT and its attributes.
-No .its file is required.
-
-.TP
-.BI "\-F"
-Indicates that an existing FIT image should be modified. No dtc
-compilation is performed and the \-f flag should not be given.
-This can be used to sign images with additional keys after initial image
-creation.
-
-.TP
-.BI "\-i [" "ramdisk_file" "]"
-Appends the ramdisk file to the FIT.
-
-.TP
-.BI "\-k [" "key_directory" "]"
-Specifies the directory containing keys to use for signing. This directory
-should contain a private key file <name>.key for use with signing and a
-certificate <name>.crt (containing the public key) for use with verification.
-
-.TP
-.BI "\-G [" "key_file" "]"
-Specifies the private key file to use when signing. This option may be used
-instead of \-k.
-
-.TP
-.BI "\-K [" "key_destination" "]"
-Specifies a compiled device tree binary file (typically .dtb) to write
-public key information into. When a private key is used to sign an image,
-the corresponding public key is written into this file for for run-time
-verification. Typically the file here is the device tree binary used by
-CONFIG_OF_CONTROL in U-Boot.
-
-.TP
-.BI "\-G [" "key_file" "]"
-Specifies the private key file to use when signing. This option may be used
-instead of \-k.
-
-.TP
-.BI "\-g [" "key_name_hint" "]"
-Sets the key-name-hint property when used with \-f auto. This is the <name>
-part of the key. The directory part is set by \-k. This option also indicates
-that the images included in the FIT should be signed. If this option is
-specified, \-o must be specified as well.
-
-.TP
-.BI "\-o [" "signing algorithm" "]"
-Specifies the algorithm to be used for signing a FIT image. The default is
-taken from the signature node's 'algo' property.
-
-.TP
-.BI "\-p [" "external position" "]"
-Place external data at a static external position. See \-E. Instead of writing
-a 'data-offset' property defining the offset from the end of the FIT, \-p will
-use 'data-position' as the absolute position from the base of the FIT.
-
-.TP
-.BI "\-r"
-Specifies that keys used to sign the FIT are required. This means that they
-must be verified for the image to boot. Without this option, the verification
-will be optional (useful for testing but not for release).
-
-.TP
-.BI "\-N [" "engine" "]"
-The openssl engine to use when signing and verifying the image. For a complete list of
-available engines, refer to
-.BR engine (1).
-
-.TP
-.BI "\-t
-Update the timestamp in the FIT.
-
-Normally the FIT timestamp is created the first time mkimage is run on a FIT,
-when converting the source .its to the binary .fit file. This corresponds to
-using the -f flag. But if the original input to mkimage is a binary file
-(already compiled) then the timestamp is assumed to have been set previously.
-
+.
+.SH BUGS
+Please report bugs to the
+.UR https://\:source\:.denx\:.de/\:u-boot/\:u-boot/\:issues
+U-Boot bug tracker
+.UE .
 .SH EXAMPLES
-
+.\" Reduce the width of the tab stops to something reasonable
+.ta T 1i
 List image information:
-.nf
-.B mkimage -l uImage
-.fi
+.RS
+.P
+.EX
+\fBmkimage \-l uImage
+.EE
+.RE
 .P
 Create legacy image with compressed PowerPC Linux kernel:
-.nf
-.B mkimage -A powerpc -O linux -T kernel -C gzip \\\\
-.br
-.B -a 0 -e 0 -n Linux -d vmlinux.gz uImage
-.fi
+.RS
+.P
+.EX
+\fBmkimage \-A powerpc \-O linux \-T kernel \-C gzip \\
+	\-a 0 \-e 0 \-n Linux \-d vmlinux.gz uImage
+.EE
+.RE
 .P
 Create FIT image with compressed PowerPC Linux kernel:
-.nf
-.B mkimage -f kernel.its kernel.itb
-.fi
+.RS
+.P
+.EX
+\fBmkimage \-f kernel.its kernel.itb
+.EE
+.RE
 .P
 Create FIT image with compressed kernel and sign it with keys in the
-/public/signing-keys directory. Add corresponding public keys into u-boot.dtb,
+/public/signing\-keys directory. Add corresponding public keys into u\-boot.dtb,
 skipping those for which keys cannot be found. Also add a comment.
-.nf
-.B mkimage -f kernel.its -k /public/signing-keys -K u-boot.dtb \\\\
-.br
-.B -c """Kernel 3.8 image for production devices""" kernel.itb
-.fi
-
+.RS
 .P
-Add public keys to u-boot.dtb without needing a FIT to sign. This will also
+.EX
+\fBmkimage \-f kernel.its \-k /public/signing\-keys \-K u\-boot.dtb \\
+	\-c \(dqKernel 3.8 image for production devices\(dq kernel.itb
+.EE
+.RE
+.P
+Add public keys to u\-boot.dtb without needing a FIT to sign. This will also
 create a FIT containing an images node with no data named unused.itb.
-.nf
-.B mkimage -f auto -d /dev/null -k /public/signing-keys -g dev \\\\
-.br
-.B -o sha256,rsa2048 -K u-boot.dtb unused.itb
-.fi
-
+.RS
+.P
+.EX
+\fBmkimage \-f auto \-d /dev/null \-k /public/signing\-keys \-g dev \\
+	\-o sha256,rsa2048 \-K u\-boot.dtb unused.itb
+.EE
+.RE
 .P
 Update an existing FIT image, signing it with additional keys.
-Add corresponding public keys into u-boot.dtb. This will resign all images
+Add corresponding public keys into u\-boot.dtb. This will resign all images
 with keys that are available in the new directory. Images that request signing
 with unavailable keys are skipped.
-.nf
-.B mkimage -F -k /secret/signing-keys -K u-boot.dtb \\\\
-.br
-.B -c """Kernel 3.8 image for production devices""" kernel.itb
-.fi
-
+.RS
+.P
+.EX
+\fBmkimage \-F \-k /secret/signing\-keys \-K u\-boot.dtb \\
+	\-c \(dqKernel 3.8 image for production devices\(dq kernel.itb
+.EE
+.RE
 .P
 Create a FIT image containing a kernel, using automatic mode. No .its file
 is required.
-.nf
-.B mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \\\\
-.br
-.B -c """Kernel 4.4 image for production devices""" -d vmlinuz kernel.itb
-.fi
+.RS
+.P
+.EX
+\fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
+	\-c \(dqKernel 4.4 image for production devices\(dq \-d vmlinuz kernel.itb
+.EE
+.RE
 .P
 Create a FIT image containing a kernel and some device tree files, using
 automatic mode. No .its file is required.
-.nf
-.B mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \\\\
-.br
-.B -c """Kernel 4.4 image for production devices""" -d vmlinuz \\\\
-.B -b /path/to/rk3288-firefly.dtb -b /path/to/rk3288-jerry.dtb kernel.itb
-.fi
+.RS
+.P
+.EX
+\fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
+	\-c \(dqKernel 4.4 image for production devices\(dq \-d vmlinuz \\
+	\-b /path/to/rk3288\-firefly.dtb \-b /path/to/rk3288\-jerry.dtb kernel.itb
+.EE
+.RE
 .P
 Create a FIT image containing a signed kernel, using automatic mode. No .its
 file is required.
-.nf
-.B mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \\\\
-.br
-.B -d vmlinuz -k /secret/signing-keys -g dev -o sha256,rsa2048 kernel.itb
-.fi
-
-.SH HOMEPAGE
-http://www.denx.de/wiki/U-Boot/WebHome
-.PP
-.SH AUTHOR
-This manual page was written by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-and Wolfgang Denk <wd@denx.de>. It was updated for image signing by
-Simon Glass <sjg@chromium.org>.
+.RS
+.P
+.EX
+\fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
+	\-d vmlinuz \-k /secret/signing\-keys \-g dev \-o sha256,rsa2048 kernel.itb
+.EE
+.RE
+.
+.SH SEE ALSO
+.BR dtc (1),
+.BR dumpimage (1),
+.BR openssl (1),
+the\~
+.UR https://\:u-boot\:.readthedocs\:.io/\:en/\:latest/\:index.html
+U-Boot documentation
+.UE
diff --git a/doc/usage/environment.rst b/doc/usage/environment.rst
index 28a8952..83543f6 100644
--- a/doc/usage/environment.rst
+++ b/doc/usage/environment.rst
@@ -204,7 +204,9 @@
     to work it must reside in writable memory, have
     sufficient padding on the end of it for u-boot to
     add the information it needs into it, and the memory
-    must be accessible by the kernel.
+    must be accessible by the kernel. This usage is strongly discouraged
+    however as it also stops U-Boot from ensuring the device tree starting
+    address is properly aligned and a misaligned tree will cause OS failures.
 
 fdtcontroladdr
     if set this is the address of the control flattened
@@ -240,14 +242,21 @@
     memory. In this case U-Boot will NOT COPY the
     ramdisk at all. This may be useful to reduce the
     boot time on your system, but requires that this
-    feature is supported by your Linux kernel.
+    feature is supported by your Linux kernel. This usage however requires
+    that the user ensure that there will be no overlap with other parts of the
+    image such as the Linux kernel BSS. It should not be enabled by default
+    and only done as part of optimizing a deployment.
 
 ipaddr
     IP address; needed for tftpboot command
 
 loadaddr
     Default load address for commands like "bootp",
-    "rarpboot", "tftpboot", "loadb" or "diskboot"
+    "rarpboot", "tftpboot", "loadb" or "diskboot".  Note that the optimal
+    default values here will vary between architectures.  On 32bit ARM for
+    example, some offset from start of memory is used as the Linux kernel
+    zImage has a self decompressor and it's best if we stay out of where that
+    will be working.
 
 loads_echo
     see CONFIG_LOADS_ECHO
@@ -390,7 +399,6 @@
 ================= ============== ================ ==============
 Image             File Name      RAM Address      Flash Location
 ================= ============== ================ ==============
-u-boot            u-boot         u-boot_addr_r    u-boot_addr
 Linux kernel      bootfile       kernel_addr_r    kernel_addr
 device tree blob  fdtfile        fdt_addr_r       fdt_addr
 ramdisk           ramdiskfile    ramdisk_addr_r   ramdisk_addr
diff --git a/include/efi_loader.h b/include/efi_loader.h
index 5b41985..3a63a1f 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -802,6 +802,9 @@
 	(((_dp)->type == DEVICE_PATH_TYPE_##_type) && \
 	 ((_dp)->sub_type == DEVICE_PATH_SUB_TYPE_##_subtype))
 
+/* template END node: */
+extern const struct efi_device_path END;
+
 /* Indicate supported runtime services */
 efi_status_t efi_init_runtime_supported(void);
 
diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
index 2493d74..ebffb77 100644
--- a/lib/efi_loader/efi_device_path.c
+++ b/lib/efi_loader/efi_device_path.c
@@ -30,7 +30,7 @@
 #endif
 
 /* template END node: */
-static const struct efi_device_path END = {
+const struct efi_device_path END = {
 	.type     = DEVICE_PATH_TYPE_END,
 	.sub_type = DEVICE_PATH_SUB_TYPE_END,
 	.length   = sizeof(END),
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index c0a5bb9..8e13bf2 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -426,8 +426,8 @@
 	$(call cmd,efi_objcopy)
 
 quiet_cmd_efi_ld = LD      $@
-cmd_efi_ld = $(LD) -nostdlib -znocombreloc -T $(EFI_LDS_PATH) -shared \
-		-Bsymbolic -znorelro -s $^ -o $@
+cmd_efi_ld = $(LD) -nostdlib -zexecstack -znocombreloc -T $(EFI_LDS_PATH) \
+		-shared -Bsymbolic -znorelro -s $^ -o $@
 
 EFI_LDS_PATH = $(srctree)/arch/$(ARCH)/lib/$(EFI_LDS)
 
diff --git a/tools/mkimage.c b/tools/mkimage.c
index 0e1198b..597cb3a 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -11,6 +11,7 @@
 #include "mkimage.h"
 #include "imximage.h"
 #include <fit_common.h>
+#include <getopt.h>
 #include <image.h>
 #include <version.h>
 #ifdef __linux__
@@ -134,6 +135,7 @@
 	fprintf(stderr, "       %s -V ==> print version information and exit\n",
 		params.cmdname);
 	fprintf(stderr, "Use '-T list' to see a list of available image types\n");
+	fprintf(stderr, "Long options are available; read the man page for details\n");
 
 	exit(EXIT_FAILURE);
 }
@@ -156,6 +158,45 @@
 	return 0;
 }
 
+static const char optstring[] =
+	"a:A:b:B:c:C:d:D:e:Ef:Fg:G:i:k:K:ln:N:o:O:p:qrR:stT:vVx";
+
+static const struct option longopts[] = {
+	{ "load-address", required_argument, NULL, 'a' },
+	{ "architecture", required_argument, NULL, 'A' },
+	{ "device-tree", required_argument, NULL, 'b' },
+	{ "alignment", required_argument, NULL, 'B' },
+	{ "comment", required_argument, NULL, 'c' },
+	{ "compression", required_argument, NULL, 'C' },
+	{ "image", required_argument, NULL, 'd' },
+	{ "dtcopts", required_argument, NULL, 'D' },
+	{ "entry-point", required_argument, NULL, 'e' },
+	{ "external", no_argument, NULL, 'E' },
+	{ "fit", required_argument, NULL, 'f' },
+	{ "update", no_argument, NULL, 'F' },
+	{ "key-name-hint", required_argument, NULL, 'g' },
+	{ "key-file", required_argument, NULL, 'G' },
+	{ "help", no_argument, NULL, 'h' },
+	{ "initramfs", required_argument, NULL, 'i' },
+	{ "key-dir", required_argument, NULL, 'k' },
+	{ "key-dest", required_argument, NULL, 'K' },
+	{ "list", no_argument, NULL, 'l' },
+	{ "config", required_argument, NULL, 'n' },
+	{ "engine", required_argument, NULL, 'N' },
+	{ "algo", required_argument, NULL, 'o' },
+	{ "os", required_argument, NULL, 'O' },
+	{ "position", required_argument, NULL, 'p' },
+	{ "quiet", no_argument, NULL, 'q' },
+	{ "key-required", no_argument, NULL, 'r' },
+	{ "secondary-config", required_argument, NULL, 'R' },
+	{ "no-copy", no_argument, NULL, 's' },
+	{ "touch", no_argument, NULL, 't' },
+	{ "type", required_argument, NULL, 'T' },
+	{ "verbose", no_argument, NULL, 'v' },
+	{ "version", no_argument, NULL, 'V' },
+	{ "xip", no_argument, NULL, 'x' },
+};
+
 static void process_args(int argc, char **argv)
 {
 	char *ptr;
@@ -163,8 +204,8 @@
 	char *datafile = NULL;
 	int opt;
 
-	while ((opt = getopt(argc, argv,
-		   "a:A:b:B:c:C:d:D:e:Ef:Fg:G:k:i:K:ln:N:p:o:O:rR:qstT:vVx")) != -1) {
+	while ((opt = getopt_long(argc, argv, optstring,
+				  longopts, NULL)) != -1) {
 		switch (opt) {
 		case 'a':
 			params.addr = strtoull(optarg, &ptr, 16);