diff options
| -rw-r--r-- | MAINTAINERS | 1 | ||||
| -rw-r--r-- | cmd/bootefi.c | 4 | ||||
| -rw-r--r-- | doc/develop/statistics/u-boot-stats-v2022.07.rst | 805 | ||||
| -rw-r--r-- | doc/dumpimage.1 | 103 | ||||
| -rw-r--r-- | doc/mkimage.1 | 1003 | ||||
| -rw-r--r-- | doc/usage/environment.rst | 16 | ||||
| -rw-r--r-- | include/efi_loader.h | 3 | ||||
| -rw-r--r-- | lib/efi_loader/efi_device_path.c | 2 | ||||
| -rw-r--r-- | scripts/Makefile.lib | 4 | ||||
| -rw-r--r-- | tools/mkimage.c | 45 | 
10 files changed, 1693 insertions, 293 deletions
| diff --git a/MAINTAINERS b/MAINTAINERS index 2047a2adbf9..b85629d9b10 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 37ce659fa12..8ab0ff5a642 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 00000000000..c1b627cd868 --- /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 00000000000..52a45a3404e --- /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 759dc2d12f5..353ea8b2f76 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 28a8952b752..83543f63f6f 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 5b41985244e..3a63a1f75fd 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 2493d743261..ebffb771228 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 c0a5bb9addc..8e13bf2b986 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 0e1198b4113..597cb3a5ced 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); | 
