aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-07-13 21:31:46 -0400
committerTom Rini <trini@konsulko.com>2022-07-13 21:31:46 -0400
commit854d6de6107bca044db362612f39691f4f5395ca (patch)
tree7ccfd331396ba02a8d5a0fd1a77f3f67f80895c0
parent357fa8bb4d40abf411a6cca70f5a2dd6413028ea (diff)
parenta093d72e628a798238269eb77850d57ee50198bb (diff)
downloadu-boot-WIP/13Jul2022.zip
u-boot-WIP/13Jul2022.tar.gz
u-boot-WIP/13Jul2022.tar.bz2
Merge tag 'efi-2022-10-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efiWIP/13Jul2022
Pull request for efi-2022-10-rc1 Documentation: * rework the mkimage.1 man-page * add a statistics page for v2022.07 * update environment description UEFI: * add Ilias Apalodimas as co-maintainer * fix a memory leak in efi_set_bootdev() * suppress a build warning
-rw-r--r--MAINTAINERS1
-rw-r--r--cmd/bootefi.c4
-rw-r--r--doc/develop/statistics/u-boot-stats-v2022.07.rst805
-rw-r--r--doc/dumpimage.1103
-rw-r--r--doc/mkimage.11003
-rw-r--r--doc/usage/environment.rst16
-rw-r--r--include/efi_loader.h3
-rw-r--r--lib/efi_loader/efi_device_path.c2
-rw-r--r--scripts/Makefile.lib4
-rw-r--r--tools/mkimage.c45
10 files changed, 1693 insertions, 293 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 1baa038..2515ce7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -827,6 +827,7 @@ F: test/dm/efi_media.c
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 @@ void efi_set_bootdev(const char *dev, const char *devnr, const char *path,
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,340 +1,779 @@
-.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.
-
+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 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.
-
+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"
-
-.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.
-
-.P
-.B Create old legacy image:
-
-.TP
-.BI "\-A [" "architecture" "]"
-Set architecture. Pass \-h as the architecture to see the list of supported architectures.
-
-.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.
-
-.TP
-.BI "\-T [" "image type" "]"
-Set image type.
-Pass \-h as the image to see the list of supported image type.
-
-.TP
-.BI "\-C [" "compression type" "]"
-Set compression type.
-Pass \-h as the compression to see the list of supported compression type.
-
-.TP
-.BI "\-a [" "load address" "]"
-Set load address with a hex number.
-
-.TP
-.BI "\-e [" "entry point" "]"
-Set entry point with a hex number.
-
-.TP
-.BI "\-l"
-List the contents of an image.
-
-.TP
-.BI "\-n [" "image name" "]"
-Set image name to 'image name'.
-
-.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.
-.TS
-allbox;
-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
-.I address data
-.sp
-where
-.I address
-and
-.I data
-are hexadecimal integers. The boot ROM will write each
-.I data
-to
-.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.
-
+.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
+.B \-h
+.TQ
+.B \-\-help
+Print a help message and exit.
+.
+.TP
+.B \-l
+.TQ
+.B \-\-list
+.B mkimage
+lists the information contained in the header of an existing U-Boot image.
+.
.TP
-.BI "\-s"
+.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 "\-v"
+.
+.TP
+.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
+.B \-q
+.TQ
+.B \-\-quiet
+Quiet. Don't print the image header.
+.
+.TP
+.B \-v
+.TQ
+.B \-\-verbose
Verbose. Print file names as they are added to the image.
-
-.P
-.B Create FIT image:
-
-.TP
-.BI "\-b [" "device tree file" "]
+.
+.TP
+.B \-V
+.TQ
+.B \-\-version
+Print version information and exit.
+.
+.SS General image-creation options
+.
+.TP
+.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 \-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" "]"
-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
+.
+.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 '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" "]"
+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 "\-f [" "image tree source file" " | " "auto" "]"
+.
+.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.
-
-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" "]"
+.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 <name>.key for use with signing and a
-certificate <name>.crt (containing the public key) for use with verification.
-
-.TP
-.BI "\-G [" "key_file" "]"
+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" "]"
+.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_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" "]"
+.
+.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 '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.
-
+taken from the signature node's \(oqalgo\(cq property.
+The valid values for
+.I crypto
+are:
+.RS
+.IP
+.TS
+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
-.BI "\-r"
+.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" "]"
-The openssl engine to use when signing and verifying the image. For a complete list of
-available engines, refer to
+.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
-.BI "\-t
+.B \-t
+.TQ
+.B \-\-touch
Update the timestamp in the FIT.
-
-Normally the FIT timestamp is created the first time mkimage is run on a 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 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.
-
+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
+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
+.RE
+.P
+where
+.I address
+and
+.I data
+are hexadecimal integers. The boot ROM will write each
+.I data
+to
+.I address
+when loading the image. At most 256 parameters may be specified in this
+manner.
+.
+.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
-
-.P
-Add public keys to u-boot.dtb without needing a FIT to sign. This will also
+.RS
+.P
+.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 @@ fdt_high
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 @@ initrd_high
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 @@ in U-Boot code.
================= ============== ================ ==============
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 @@ ssize_t efi_dp_check_length(const struct efi_device_path *dp,
(((_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 @@ const efi_guid_t efi_guid_virtio_dev = U_BOOT_VIRTIO_DEV_GUID;
#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 @@ $(obj)/%.efi: $(obj)/%_efi.so
$(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 @@ static void usage(const char *msg)
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 @@ static int add_content(int type, const char *fname)
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 @@ static void process_args(int argc, char **argv)
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);