aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-03-21 08:35:23 -0400
committerTom Rini <trini@konsulko.com>2024-03-21 08:35:23 -0400
commit5397daaed8994000f2b3480896df9c163dea4375 (patch)
tree21671fe2a0f3ff4fbeda01be16060406004d93d5
parent6ec096a7116a5f1f7dfac5f69ef192429331905c (diff)
parentfcd0c8b8474f7db0b94608424715a73fbeba92dc (diff)
downloadu-boot-WIP/21Mar2024.zip
u-boot-WIP/21Mar2024.tar.gz
u-boot-WIP/21Mar2024.tar.bz2
Merge tag 'efi-2024-04-rc5-2' of https://source.denx.de/u-boot/custodians/u-boot-efiWIP/21Mar2024
Pull request efi-2024-04-rc5-2 Documentation: * patman: Properly document the patchwork_url setting * doc: man-page for if * colibri-imx8x, apalis-imx8: update board documentation UEFI: * correct handling of EFI binary return code * don't show usage help if EFI binary fails. * correct error handling for bootefi selftest command
-rw-r--r--cmd/bootefi.c12
-rw-r--r--doc/board/toradex/apalis-imx8.rst32
-rw-r--r--doc/board/toradex/colibri-imx8x.rst23
-rw-r--r--doc/usage/cmd/acpi.rst4
-rw-r--r--doc/usage/cmd/bootdev.rst4
-rw-r--r--doc/usage/cmd/bootflow.rst4
-rw-r--r--doc/usage/cmd/bootmeth.rst4
-rw-r--r--doc/usage/cmd/cbsysinfo.rst4
-rw-r--r--doc/usage/cmd/cedit.rst4
-rw-r--r--doc/usage/cmd/cli.rst4
-rw-r--r--doc/usage/cmd/dm.rst4
-rw-r--r--doc/usage/cmd/fdt.rst4
-rw-r--r--doc/usage/cmd/font.rst4
-rw-r--r--doc/usage/cmd/for.rst4
-rw-r--r--doc/usage/cmd/history.rst4
-rw-r--r--doc/usage/cmd/host.rst4
-rw-r--r--doc/usage/cmd/if.rst72
-rw-r--r--doc/usage/cmd/md.rst4
-rw-r--r--doc/usage/cmd/mtrr.rst4
-rw-r--r--doc/usage/cmd/panic.rst4
-rw-r--r--doc/usage/cmd/part.rst4
-rw-r--r--doc/usage/cmd/sf.rst4
-rw-r--r--doc/usage/cmd/sm.rst4
-rw-r--r--doc/usage/cmd/trace.rst4
-rw-r--r--doc/usage/cmd/ut.rst4
-rw-r--r--doc/usage/index.rst1
-rw-r--r--lib/efi_loader/efi_bootbin.c16
-rw-r--r--tools/patman/patman.rst8
28 files changed, 165 insertions, 83 deletions
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 9cf9027..578dbb1 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -154,9 +154,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
!strcmp(argv[1], "bootmgr")) {
ret = efi_bootmgr_run(fdt);
- if (ret == EFI_INVALID_PARAMETER)
- return CMD_RET_USAGE;
- else if (ret)
+ if (ret != EFI_SUCCESS)
return CMD_RET_FAILURE;
return CMD_RET_SUCCESS;
@@ -173,9 +171,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
}
ret = efi_install_fdt(fdt);
- if (ret == EFI_INVALID_PARAMETER)
- return CMD_RET_USAGE;
- else if (ret != EFI_SUCCESS)
+ if (ret != EFI_SUCCESS)
return CMD_RET_FAILURE;
return do_efi_selftest();
@@ -218,9 +214,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
ret = efi_binary_run(image_buf, size, fdt);
- if (ret == EFI_INVALID_PARAMETER)
- return CMD_RET_USAGE;
- else if (ret)
+ if (ret != EFI_SUCCESS)
return CMD_RET_FAILURE;
return CMD_RET_SUCCESS;
diff --git a/doc/board/toradex/apalis-imx8.rst b/doc/board/toradex/apalis-imx8.rst
index ffc4c7d..069d86c 100644
--- a/doc/board/toradex/apalis-imx8.rst
+++ b/doc/board/toradex/apalis-imx8.rst
@@ -20,36 +20,36 @@ Quick Start
Get and Build the ARM Trusted Firmware
--------------------------------------
+Download the imx-atf repository:
+
+.. code-block:: bash
+
+ $ git clone -b lf_v2.6 https://github.com/nxp-imx/imx-atf.git
+
+Compile it with an aarch64 toolchain:
+
.. code-block:: bash
- $ git clone -b imx_4.14.78_1.0.0_ga https://github.com/nxp-imx/imx-atf
$ cd imx-atf/
$ make PLAT=imx8qm bl31
Get scfw_tcm.bin and ahab-container.img
---------------------------------------
-.. code-block:: bash
-
- $ wget https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-
- bsp/imx-sc-firmware/files/mx8qm-apalis-scfw-tcm.bin?raw=true
- $ mv mx8qm-apalis-scfw-tcm.bin\?raw\=true mx8qm-apalis-scfw-tcm.bin
- $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin
- $ chmod +x firmware-imx-8.0.bin
- $ ./firmware-imx-8.0.bin
-
-Copy the following binaries to the U-Boot folder:
+Download imx-seco firmware and extract it:
.. code-block:: bash
- $ cp imx-atf/build/imx8qm/release/bl31.bin .
- $ cp u-boot/u-boot.bin .
+ $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-seco-5.8.7.bin
+ $ sh imx-seco-5.8.7.bin --auto-accept
-Copy the following firmware to the U-Boot folder:
+Copy the following binaries to the U-Boot folder:
.. code-block:: bash
- $ cp firmware-imx-8.0/firmware/seco/ahab-container.img .
+ $ wget https://github.com/toradex/i.MX-System-Controller-Firmware/raw/master/src/scfw_export_mx8qm_b0/build_mx8qm_b0/mx8qm-apalis-scfw-tcm.bin
+ $ cp ../imx-atf/build/imx8qm/release/bl31.bin .
+ $ cp ../imx-seco-5.8.7/firmware/seco/mx8qmb0-ahab-container.img mx8qm-ahab-container.img
Build U-Boot
------------
@@ -64,7 +64,7 @@ Load the U-Boot Binary Using UUU
Get the latest version of the universal update utility (uuu) aka ``mfgtools 3.0``:
-https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
+https://github.com/nxp-imx/mfgtools/releases
Put the module into USB recovery aka serial downloader mode, connect the USB
device to your host and execute ``uuu``:
diff --git a/doc/board/toradex/colibri-imx8x.rst b/doc/board/toradex/colibri-imx8x.rst
index 9e61d98..378b259 100644
--- a/doc/board/toradex/colibri-imx8x.rst
+++ b/doc/board/toradex/colibri-imx8x.rst
@@ -20,26 +20,35 @@ Quick Start
Get and Build the ARM Trusted Firmware
--------------------------------------
+Download the imx-atf repository:
+
+.. code-block:: bash
+
+ $ git clone -b lf_v2.6 https://github.com/nxp-imx/imx-atf.git
+
+Compile it with an aarch64 toolchain:
+
.. code-block:: bash
- $ git clone -b toradex_imx_5.4.70_2.3.0 http://git.toradex.com/cgit/imx-atf.git/
$ make PLAT=imx8qx bl31 -C imx-atf
Get scfw_tcm.bin and ahab-container.img
---------------------------------------
+Download imx-seco firmware and extract it:
+
.. code-block:: bash
- $ wget https://github.com/toradex/i.MX-System-Controller-Firmware/raw/master/src/scfw_export_mx8qx_b0/build_mx8qx_b0/mx8qx-colibri-scfw-tcm.bin
- $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-seco-3.8.1.bin
- $ sh imx-seco-3.8.1.bin --auto-accept
+ $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-seco-5.8.7.bin
+ $ sh imx-seco-5.8.7.bin --auto-accept
Copy the following firmware to the U-Boot folder:
.. code-block:: bash
- $ cp imx-atf/build/imx8qx/release/bl31.bin .
- $ cp imx-seco-3.8.1/firmware/seco/mx8qxc0-ahab-container.img mx8qx-ahab-container.img
+ $ wget https://github.com/toradex/i.MX-System-Controller-Firmware/raw/master/src/scfw_export_mx8qx_b0/build_mx8qx_b0/mx8qx-colibri-scfw-tcm.bin
+ $ cp ../imx-atf/build/imx8qx/release/bl31.bin .
+ $ cp ../imx-seco-5.8.7/firmware/seco/mx8qxc0-ahab-container.img mx8qx-ahab-container.img
Build U-Boot
------------
@@ -54,7 +63,7 @@ Load the U-Boot Binary Using UUU
Get the latest version of the universal update utility (uuu) aka ``mfgtools 3.0``:
-https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
+https://github.com/nxp-imx/mfgtools/releases
Put the module into USB recovery aka serial downloader mode, connect the USB
device to your host and execute ``uuu``:
diff --git a/doc/usage/cmd/acpi.rst b/doc/usage/cmd/acpi.rst
index a630f1e..9f30972 100644
--- a/doc/usage/cmd/acpi.rst
+++ b/doc/usage/cmd/acpi.rst
@@ -6,8 +6,8 @@
acpi command
============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/bootdev.rst b/doc/usage/cmd/bootdev.rst
index 658020e..f759aba 100644
--- a/doc/usage/cmd/bootdev.rst
+++ b/doc/usage/cmd/bootdev.rst
@@ -6,8 +6,8 @@
bootdev command
===============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/bootflow.rst b/doc/usage/cmd/bootflow.rst
index 16ba986..6519e48 100644
--- a/doc/usage/cmd/bootflow.rst
+++ b/doc/usage/cmd/bootflow.rst
@@ -6,8 +6,8 @@
bootflow command
================
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/bootmeth.rst b/doc/usage/cmd/bootmeth.rst
index 95651fd..2903977 100644
--- a/doc/usage/cmd/bootmeth.rst
+++ b/doc/usage/cmd/bootmeth.rst
@@ -6,8 +6,8 @@
bootmeth command
================
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/cbsysinfo.rst b/doc/usage/cmd/cbsysinfo.rst
index 8c03a85..80d8ba1 100644
--- a/doc/usage/cmd/cbsysinfo.rst
+++ b/doc/usage/cmd/cbsysinfo.rst
@@ -3,8 +3,8 @@
cbsysinfo
=========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/cedit.rst b/doc/usage/cmd/cedit.rst
index b39d708..5670805 100644
--- a/doc/usage/cmd/cedit.rst
+++ b/doc/usage/cmd/cedit.rst
@@ -6,8 +6,8 @@
cedit command
=============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/cli.rst b/doc/usage/cmd/cli.rst
index 8148772..23e5ee7 100644
--- a/doc/usage/cmd/cli.rst
+++ b/doc/usage/cmd/cli.rst
@@ -6,8 +6,8 @@
cli command
===========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/dm.rst b/doc/usage/cmd/dm.rst
index 9bef2ee..7651507 100644
--- a/doc/usage/cmd/dm.rst
+++ b/doc/usage/cmd/dm.rst
@@ -6,8 +6,8 @@
dm command
==========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/fdt.rst b/doc/usage/cmd/fdt.rst
index 3e8c32c..71a9fc6 100644
--- a/doc/usage/cmd/fdt.rst
+++ b/doc/usage/cmd/fdt.rst
@@ -6,8 +6,8 @@
fdt command
===========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/font.rst b/doc/usage/cmd/font.rst
index adcd512..a8782546 100644
--- a/doc/usage/cmd/font.rst
+++ b/doc/usage/cmd/font.rst
@@ -6,8 +6,8 @@
font command
============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/for.rst b/doc/usage/cmd/for.rst
index 4c98419..729bd4d 100644
--- a/doc/usage/cmd/for.rst
+++ b/doc/usage/cmd/for.rst
@@ -4,8 +4,8 @@
for command
===========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/history.rst b/doc/usage/cmd/history.rst
index 564a159..b52b5b2 100644
--- a/doc/usage/cmd/history.rst
+++ b/doc/usage/cmd/history.rst
@@ -6,8 +6,8 @@
history command
===============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/host.rst b/doc/usage/cmd/host.rst
index 072497d..a70a432 100644
--- a/doc/usage/cmd/host.rst
+++ b/doc/usage/cmd/host.rst
@@ -6,8 +6,8 @@
host command
============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/if.rst b/doc/usage/cmd/if.rst
new file mode 100644
index 0000000..6b3dbe7
--- /dev/null
+++ b/doc/usage/cmd/if.rst
@@ -0,0 +1,72 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+.. index::
+ single: if (command)
+
+if command
+==========
+
+Synopsis
+--------
+
+::
+
+ if <test statement>
+ then
+ <statements>
+ fi
+
+ if <test statement>
+ then
+ <statements>
+ else
+ <statements>
+ fi
+
+Description
+-----------
+
+The if command is used to conditionally execute statements.
+
+test statement
+ Any command. The test statement set the $? variable. If the value of
+ $? becomes 0 (true) the statements after the **then** statement will
+ be executed. Otherwise the statements after the **else** statement.
+
+Example
+-------
+
+The examples shows how the value of a numeric variable can be tested with
+**itest**.
+
+::
+
+ => a=1; if itest $a == 0; then echo true; else echo false; fi
+ false
+ => a=0; if itest $a == 0; then echo true; else echo false; fi
+ true
+
+In the following example we try to load an EFI binary via TFTP. If loading
+succeeds, the binary is executed.
+
+::
+
+ if tftp $kernel_addr_r shellriscv64.efi; then bootefi $kernel_addr_r; fi
+
+Return value
+------------
+
+The value of $? is the return value of the last executed statement.
+
+::
+
+ => if true; then true; else true; fi; echo $?
+ 0
+ => if false; then true; else true; fi; echo $?
+ 0
+ => if false; then false; else false; fi; echo $?
+ 1
+ => if true; then false; else false; fi; echo $?
+ 1
+ => if false; then true; fi; echo $?
+ 1
diff --git a/doc/usage/cmd/md.rst b/doc/usage/cmd/md.rst
index 9ea148a..9a9919f 100644
--- a/doc/usage/cmd/md.rst
+++ b/doc/usage/cmd/md.rst
@@ -6,8 +6,8 @@
md command
==========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/mtrr.rst b/doc/usage/cmd/mtrr.rst
index c656189..3c5c3ba 100644
--- a/doc/usage/cmd/mtrr.rst
+++ b/doc/usage/cmd/mtrr.rst
@@ -6,8 +6,8 @@
mtrr command
============
-Synopis
--------
+Synopsis
+--------
mtrr [list]
mtrr set <reg> <type> <start> <size>
diff --git a/doc/usage/cmd/panic.rst b/doc/usage/cmd/panic.rst
index ba5ea62..39d32ad 100644
--- a/doc/usage/cmd/panic.rst
+++ b/doc/usage/cmd/panic.rst
@@ -6,8 +6,8 @@
panic command
=============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/part.rst b/doc/usage/cmd/part.rst
index 58be387..e7faecc 100644
--- a/doc/usage/cmd/part.rst
+++ b/doc/usage/cmd/part.rst
@@ -6,8 +6,8 @@
part command
============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/sf.rst b/doc/usage/cmd/sf.rst
index 24d5dc6..dfdca46 100644
--- a/doc/usage/cmd/sf.rst
+++ b/doc/usage/cmd/sf.rst
@@ -6,8 +6,8 @@
sf command
==========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/sm.rst b/doc/usage/cmd/sm.rst
index b767647..e828fdd 100644
--- a/doc/usage/cmd/sm.rst
+++ b/doc/usage/cmd/sm.rst
@@ -6,8 +6,8 @@
sm command
==========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/trace.rst b/doc/usage/cmd/trace.rst
index ad6db12..e798b2b 100644
--- a/doc/usage/cmd/trace.rst
+++ b/doc/usage/cmd/trace.rst
@@ -6,8 +6,8 @@
trace command
=============
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/cmd/ut.rst b/doc/usage/cmd/ut.rst
index ddc48ec..45bc9ff 100644
--- a/doc/usage/cmd/ut.rst
+++ b/doc/usage/cmd/ut.rst
@@ -6,8 +6,8 @@
ut command
==========
-Synopis
--------
+Synopsis
+--------
::
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index 0d174ee..66d73e7 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -71,6 +71,7 @@ Shell commands
cmd/gpt
cmd/history
cmd/host
+ cmd/if
cmd/imxtract
cmd/load
cmd/loadb
diff --git a/lib/efi_loader/efi_bootbin.c b/lib/efi_loader/efi_bootbin.c
index 733cc1a..b7910f7 100644
--- a/lib/efi_loader/efi_bootbin.c
+++ b/lib/efi_loader/efi_bootbin.c
@@ -125,7 +125,7 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size)
efi_handle_t mem_handle = NULL, handle;
struct efi_device_path *file_path = NULL;
struct efi_device_path *msg_path;
- efi_status_t ret, ret2;
+ efi_status_t ret;
u16 *load_options;
if (!bootefi_device_path || !bootefi_image_path) {
@@ -172,11 +172,17 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size)
ret = do_bootefi_exec(handle, load_options);
out:
- ret2 = efi_uninstall_multiple_protocol_interfaces(mem_handle,
- &efi_guid_device_path,
- file_path, NULL);
+ if (mem_handle) {
+ efi_status_t r;
+
+ r = efi_uninstall_multiple_protocol_interfaces(
+ mem_handle, &efi_guid_device_path, file_path, NULL);
+ if (r != EFI_SUCCESS)
+ log_err("Uninstalling protocol interfaces failed\n");
+ }
efi_free_pool(file_path);
- return (ret != EFI_SUCCESS) ? ret : ret2;
+
+ return ret;
}
/**
diff --git a/tools/patman/patman.rst b/tools/patman/patman.rst
index e013558..f4588c0 100644
--- a/tools/patman/patman.rst
+++ b/tools/patman/patman.rst
@@ -144,7 +144,7 @@ patman.py. For reference, the useful ones (at the moment) shown below
process_tags: False
verbose: True
smtp_server: /path/to/sendmail
- patchwork_server: https://patchwork.ozlabs.org
+ patchwork_url: https://patchwork.ozlabs.org
If you want to adjust settings (or aliases) that affect just a single
project you can add a section that looks like [project_settings] or
@@ -248,9 +248,9 @@ Series-links: [id | version:id]...
Series-patchwork-url: url
This allows specifying the Patchwork URL for a branch. This overrides
- both the setting files and the command-line argument. The URL should
- include the protocol and web site, with no trailing slash, for example
- 'https://patchwork.ozlabs.org/project'
+ both the setting files ("patchwork_url") and the command-line argument.
+ The URL should include the protocol and web site, with no trailing slash,
+ for example 'https://patchwork.ozlabs.org/project'
Cover-letter:
Sets the cover letter contents for the series. The first line