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);