From: Tom Rini Date: Fri, 24 Oct 2025 16:02:57 +0000 (-0600) Subject: doc: usage: Add general rule for `$?` X-Git-Tag: v2026.01-rc1~3^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=11da3403e91c9f510495c75d07750b6ac3c3b2e7;p=thirdparty%2Fu-boot.git doc: usage: Add general rule for `$?` For nearly all commands in U-Boot the '?' variable is handled the same way with 0 meaning success, 1 meaning any failure. Explain this in the general rules section of the cmdline documentation (with a link to a counter example) and then remove the redundant wording from most commands. We retain a section about the return value in a number of places where we are doing something such as always returning a specific value or we have useful additional information to go along with the normal return codes. Signed-off-by: Tom Rini Reviewed-by: Heinrich Schuchardt --- diff --git a/doc/usage/cmd/armffa.rst b/doc/usage/cmd/armffa.rst index 4f41e3393fd..dbe4d5bc842 100644 --- a/doc/usage/cmd/armffa.rst +++ b/doc/usage/cmd/armffa.rst @@ -90,8 +90,3 @@ Configuration ------------- The command is available if CONFIG_CMD_ARMFFA=y and CONFIG_ARM_FFA_TRANSPORT=y. - -Return value ------------- - -The return value $? is 0 (true) on success, 1 (false) on failure. diff --git a/doc/usage/cmd/bdinfo.rst b/doc/usage/cmd/bdinfo.rst index a21fbc83ccf..a139c9d855c 100644 --- a/doc/usage/cmd/bdinfo.rst +++ b/doc/usage/cmd/bdinfo.rst @@ -115,8 +115,3 @@ Configuration ------------- The bdinfo command is available if CONFIG_CMD_BDI=y. - -Return code ------------ - -The return code $? is 0 (true). diff --git a/doc/usage/cmd/bind.rst b/doc/usage/cmd/bind.rst index 67a0405bab5..d2bef15508d 100644 --- a/doc/usage/cmd/bind.rst +++ b/doc/usage/cmd/bind.rst @@ -99,8 +99,3 @@ Configuration ------------- The bind command is only available if CONFIG_CMD_BIND=y. - -Return code ------------ - -The return code $? is 0 (true) on success and 1 (false) on failure. diff --git a/doc/usage/cmd/blkcache.rst b/doc/usage/cmd/blkcache.rst index 0329261ba9a..764a4903ca0 100644 --- a/doc/usage/cmd/blkcache.rst +++ b/doc/usage/cmd/blkcache.rst @@ -69,9 +69,3 @@ Configuration ------------- The blkcache command is only available if CONFIG_CMD_BLOCK_CACHE=y. - -Return code ------------ - -If the command succeeds, the return code $? is set 0 (true). In case of an -error the return code is set to 1 (false). diff --git a/doc/usage/cmd/cat.rst b/doc/usage/cmd/cat.rst index b22dc6184a2..fa70e5f6a09 100644 --- a/doc/usage/cmd/cat.rst +++ b/doc/usage/cmd/cat.rst @@ -45,8 +45,3 @@ Configuration ------------- The cat command is only available if CONFIG_CMD_CAT=y. - -Return value ------------- - -The return value $? is set to 0 (true) if the file is readable, otherwise it returns a non-zero error code. diff --git a/doc/usage/cmd/cli.rst b/doc/usage/cmd/cli.rst index 23e5ee7a902..97de5331d1b 100644 --- a/doc/usage/cmd/cli.rst +++ b/doc/usage/cmd/cli.rst @@ -70,8 +70,3 @@ compiled:: modern => cli set old Want to set current parser to old, but its code was not compiled! - -Return value ------------- - -The return value $? indicates whether the command succeeded. diff --git a/doc/usage/cmd/cls.rst b/doc/usage/cmd/cls.rst index 828276742b9..b8fa335079e 100644 --- a/doc/usage/cmd/cls.rst +++ b/doc/usage/cmd/cls.rst @@ -22,8 +22,3 @@ Configuration ------------- The cls command is only available if CONFIG_CMD_CLS=y. - -Return value ------------- - -The return value $? is 0 (true) on success and 1 (false) on failure. diff --git a/doc/usage/cmd/cp.rst b/doc/usage/cmd/cp.rst index 434dfedfc2b..7bf2f468421 100644 --- a/doc/usage/cmd/cp.rst +++ b/doc/usage/cmd/cp.rst @@ -79,9 +79,3 @@ Configuration The cp command is available if CONFIG_CMD_MEMORY=y. Support for 64 bit words (cp.q) is only available on 64-bit targets. Copying to flash depends on CONFIG_MTD_NOR_FLASH=y. - -Return value ------------- - -The return value $? is set to 0 (true) if the command was successfully, -1 (false) otherwise. diff --git a/doc/usage/cmd/cpu.rst b/doc/usage/cmd/cpu.rst index 8b0b7d5a699..705fb2dd691 100644 --- a/doc/usage/cmd/cpu.rst +++ b/doc/usage/cmd/cpu.rst @@ -93,9 +93,3 @@ Configuration ------------- The cpu command is available if CONFIG_CMD_CPU=y. - -Return code ------------ - -The return value $? is set to 0 (true) if the command is successful, -1 (false) otherwise. diff --git a/doc/usage/cmd/cpuid.rst b/doc/usage/cmd/cpuid.rst index cccf9262ed4..568c7e86ca1 100644 --- a/doc/usage/cmd/cpuid.rst +++ b/doc/usage/cmd/cpuid.rst @@ -25,11 +25,6 @@ Configuration The cpuid command is only available on x86. -Return value ------------- - -The return value $? is 0 (true). - Example ------- diff --git a/doc/usage/cmd/dmareset.rst b/doc/usage/cmd/dmareset.rst index ab06979251b..56180595363 100644 --- a/doc/usage/cmd/dmareset.rst +++ b/doc/usage/cmd/dmareset.rst @@ -47,9 +47,3 @@ Configuration The dmareset command is only available if CONFIG_CMD_C5_PL330_DMA=y in "Shell scripting commands". - -Return value ------------- - -If the command succeeds, the return value $? is set to 0 (true). -If an error occurs, the return value $? is set to 1 (false). diff --git a/doc/usage/cmd/ebtupdate.rst b/doc/usage/cmd/ebtupdate.rst index 22415ee07b4..5102e6090a4 100644 --- a/doc/usage/cmd/ebtupdate.rst +++ b/doc/usage/cmd/ebtupdate.rst @@ -64,9 +64,3 @@ Configuration The ebtupdate command is only available if CONFIG_CMD_EBTUPDATE=y and only on Tegra 2 and Tegra 3 configurations. - -Return value ------------- - -The return value $? is set to 0 (true) if everything went successfully. If an -error occurs, the return value $? is set to 1 (false). diff --git a/doc/usage/cmd/fatinfo.rst b/doc/usage/cmd/fatinfo.rst index 2e05ab8bece..e5a89f37ba6 100644 --- a/doc/usage/cmd/fatinfo.rst +++ b/doc/usage/cmd/fatinfo.rst @@ -46,9 +46,3 @@ Configuration ------------- The fatinfo command is only available if CONFIG_CMD_FAT=y. - -Return value ------------- - -The return value $? is set to 0 (true) if the partition is a FAT partition. -Otherwise it is set to 1 (false). diff --git a/doc/usage/cmd/fdt.rst b/doc/usage/cmd/fdt.rst index 71a9fc627e5..493ed895bc7 100644 --- a/doc/usage/cmd/fdt.rst +++ b/doc/usage/cmd/fdt.rst @@ -66,8 +66,3 @@ address and expand it to 0xf000 in size:: Working FDT set to 10000 => md 10000 4 00010000: edfe0dd0 00f00000 78000000 7c270000 ...........x..'| - -Return value ------------- - -The return value $? indicates whether the command succeeded. diff --git a/doc/usage/cmd/font.rst b/doc/usage/cmd/font.rst index 44a04f5d075..a1860466ac1 100644 --- a/doc/usage/cmd/font.rst +++ b/doc/usage/cmd/font.rst @@ -54,9 +54,3 @@ Configuration ------------- The command is only available if CONFIG_CONSOLE_TRUETYPE=y. - -Return value ------------- - -The return value $? is 0 (true) if the command completes. -The return value is 1 (false) if the command fails. diff --git a/doc/usage/cmd/fuse.rst b/doc/usage/cmd/fuse.rst index 42c6e209f99..50cf5a4b657 100644 --- a/doc/usage/cmd/fuse.rst +++ b/doc/usage/cmd/fuse.rst @@ -168,9 +168,3 @@ Configuration The fuse commands are available if CONFIG_CMD_FUSE=y. The fuse writebuff command is available if CONFIG_CMD_FUSE_WRITEBUFF=y. - -Return code ------------ - -The return value $? is set to 0 (true) if the command is successful, -1 (false) otherwise. diff --git a/doc/usage/cmd/gpio.rst b/doc/usage/cmd/gpio.rst index 4b0dc2716e5..0159d3478c2 100644 --- a/doc/usage/cmd/gpio.rst +++ b/doc/usage/cmd/gpio.rst @@ -127,9 +127,3 @@ Configuration The *gpio* command is only available if CONFIG_CMD_GPIO=y. The *gpio read* command is only available if CONFIG_CMD_GPIO_READ=y. - -Return value ------------- - -If the command succeds the return value $? is set to 0. If an error occurs, the -return value $? is set to 1. diff --git a/doc/usage/cmd/host.rst b/doc/usage/cmd/host.rst index a70a432b6f2..672d8f2112b 100644 --- a/doc/usage/cmd/host.rst +++ b/doc/usage/cmd/host.rst @@ -111,9 +111,3 @@ Unbind a device:: => host info dev blocks label path 1 2048 fat 1MB.fat32.img - - -Return value ------------- - -The return value $? indicates whether the command succeeded. diff --git a/doc/usage/cmd/i3c.rst b/doc/usage/cmd/i3c.rst index 922fa3ea37c..f49fcd4e766 100644 --- a/doc/usage/cmd/i3c.rst +++ b/doc/usage/cmd/i3c.rst @@ -129,12 +129,6 @@ Configuration The ``i3c`` command is only available if CONFIG_CMD_I3C=y. -Return value ------------- - -If the command succeeds, the return value ``$?`` is set to 0. If an error -occurs, the return value ``$?`` is set to 1. - Note ---- diff --git a/doc/usage/cmd/imxtract.rst b/doc/usage/cmd/imxtract.rst index 235d15e445b..1621a4a68b2 100644 --- a/doc/usage/cmd/imxtract.rst +++ b/doc/usage/cmd/imxtract.rst @@ -76,9 +76,3 @@ Configuration The imxtract command is only available if CONFIG_CMD_XIMG=y. Support for FIT images requires CONFIG_FIT=y. Support for legacy U-Boot images requires CONFIG_LEGACY_IMAGE_FORMAT=y. - -Return value ------------- - -On success the return value $? of the command is 0 (true). On failure the -return value is 1 (false). diff --git a/doc/usage/cmd/loadb.rst b/doc/usage/cmd/loadb.rst index 4f9a52c793f..9e6a41e7fa0 100644 --- a/doc/usage/cmd/loadb.rst +++ b/doc/usage/cmd/loadb.rst @@ -66,8 +66,3 @@ Configuration ------------- The command is only available if CONFIG_CMD_LOADB=y. - -Return value ------------- - -The return value $? is 0 (true) on success, 1 (false) on error. diff --git a/doc/usage/cmd/loadm.rst b/doc/usage/cmd/loadm.rst index 005840a27bb..722690be2c5 100644 --- a/doc/usage/cmd/loadm.rst +++ b/doc/usage/cmd/loadm.rst @@ -43,10 +43,3 @@ Configuration ------------- The command is only available if CONFIG_CMD_LOADM=y. - -Return value ------------- - -The return value $? is set 0 (true) if the loading is succefull, and -is set to 1 (false) in case of error. - diff --git a/doc/usage/cmd/loads.rst b/doc/usage/cmd/loads.rst index 0a2ac14acfe..278d17850d7 100644 --- a/doc/usage/cmd/loads.rst +++ b/doc/usage/cmd/loads.rst @@ -92,8 +92,3 @@ Configuration The command is only available if CONFIG_CMD_LOADS=y. The parameter to set the baud rate is only available if CONFIG_SYS_LOADS_BAUD_CHANGE=y - -Return value ------------- - -The return value $? is 0 (true) on success, 1 (false) otherwise. diff --git a/doc/usage/cmd/loadx.rst b/doc/usage/cmd/loadx.rst index 661b36723c3..50182eaa9d3 100644 --- a/doc/usage/cmd/loadx.rst +++ b/doc/usage/cmd/loadx.rst @@ -73,8 +73,3 @@ The command is only available if CONFIG_CMD_LOADB=y. Initial timeout in seconds while waiting for transfer is configured by config option CMD_LOADXY_TIMEOUT or by env variable $loadxy_timeout. Setting it to 0 means infinite timeout. - -Return value ------------- - -The return value $? is 0 (true) on success, 1 (false) otherwise. diff --git a/doc/usage/cmd/loady.rst b/doc/usage/cmd/loady.rst index 8367759471e..8d21d7c3267 100644 --- a/doc/usage/cmd/loady.rst +++ b/doc/usage/cmd/loady.rst @@ -70,8 +70,3 @@ The command is only available if CONFIG_CMD_LOADB=y. Initial timeout in seconds while waiting for transfer is configured by config option CMD_LOADXY_TIMEOUT or by env variable $loadxy_timeout. Setting it to 0 means infinite timeout. - -Return value ------------- - -The return value $? is 0 (true) on success, 1 (false) otherwise. diff --git a/doc/usage/cmd/msr.rst b/doc/usage/cmd/msr.rst index 04ee52cc1c7..8bb1212cdc1 100644 --- a/doc/usage/cmd/msr.rst +++ b/doc/usage/cmd/msr.rst @@ -38,11 +38,6 @@ Configuration The msr command is only available on x86. -Return value ------------- - -The return value $? is 0 (true). - Example ------- diff --git a/doc/usage/cmd/mtest.rst b/doc/usage/cmd/mtest.rst index e01f2a6d575..a5705076af7 100644 --- a/doc/usage/cmd/mtest.rst +++ b/doc/usage/cmd/mtest.rst @@ -62,8 +62,3 @@ Configuration ------------- The mtest command is enabled by CONFIG_CMD_MEMTEST=y. - -Return value ------------- - -The return value $? is 0 (true) if the command succeeds, 1 (false) otherwise. diff --git a/doc/usage/cmd/optee.rst b/doc/usage/cmd/optee.rst index 46c569a105f..caefdceeb7b 100644 --- a/doc/usage/cmd/optee.rst +++ b/doc/usage/cmd/optee.rst @@ -63,8 +63,3 @@ Configuration ------------- The optee command is enabled by CONFIG_OPTEE=y and CONFIG_CMD_OPTEE=y. - -Return value ------------- - -The return value $? is 0 (true) if the command succeeds, 1 (false) otherwise. diff --git a/doc/usage/cmd/part.rst b/doc/usage/cmd/part.rst index e7f6e54ecea..72f5d8b8de7 100644 --- a/doc/usage/cmd/part.rst +++ b/doc/usage/cmd/part.rst @@ -223,9 +223,3 @@ This shows looking at a device with multiple partition tables:: type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: a0891d7e-b930-4513-94da-f629dbd637b2 => - -Return value ------------- - -The return value $? is set to 0 (true) if the command succededd. If an -error occurs, the return value $? is set to 1 (false). diff --git a/doc/usage/cmd/pause.rst b/doc/usage/cmd/pause.rst index 6cdd83d3163..b55825f5d93 100644 --- a/doc/usage/cmd/pause.rst +++ b/doc/usage/cmd/pause.rst @@ -48,9 +48,3 @@ Note that complex prompts require proper quoting: Usage: pause [prompt] - Wait until users presses any key. [prompt] can be used to customize the message. - -Return value ------------- - -The return value $? is always set to 0 (true), unless invoked in an invalid -manner. diff --git a/doc/usage/cmd/pinmux.rst b/doc/usage/cmd/pinmux.rst index 30c5eb16a68..c066db1770c 100644 --- a/doc/usage/cmd/pinmux.rst +++ b/doc/usage/cmd/pinmux.rst @@ -90,9 +90,3 @@ Configuration ------------- The pinmux command is only available if CONFIG_CMD_PINMUX=y. - -Return value ------------- - -The return value $? is set to 0 (true) if the command succeded and to 1 (false) -otherwise. diff --git a/doc/usage/cmd/pwm.rst b/doc/usage/cmd/pwm.rst index 522acb5afa3..6f7daba0736 100644 --- a/doc/usage/cmd/pwm.rst +++ b/doc/usage/cmd/pwm.rst @@ -83,9 +83,3 @@ Configuration ------------- The ``pwm`` command is only available if CONFIG_CMD_PWM=y. - -Return value ------------- - -If the command succeeds, the return value ``$?`` is set to 0. If an error occurs, the -return value ``$?`` is set to 1. diff --git a/doc/usage/cmd/saves.rst b/doc/usage/cmd/saves.rst index b380a4feb6f..d429eeceddf 100644 --- a/doc/usage/cmd/saves.rst +++ b/doc/usage/cmd/saves.rst @@ -84,8 +84,3 @@ Configuration The command is only available if CONFIG_CMD_SAVES=y. The parameter to set the baud rate is only available if CONFIG_SYS_LOADS_BAUD_CHANGE=y - -Return value ------------- - -The return value $? is 0 (true) on success, 1 (false) otherwise. diff --git a/doc/usage/cmd/scmi.rst b/doc/usage/cmd/scmi.rst index 9591cdc07a5..c6e80a56a60 100644 --- a/doc/usage/cmd/scmi.rst +++ b/doc/usage/cmd/scmi.rst @@ -119,11 +119,4 @@ Configuration The scmi command is only available if CONFIG_CMD_SCMI=y. Default n because this command is mainly for debug purpose. -Return value ------------- - -The return value ($?) is set to 0 if the operation succeeded, -1 if the operation failed or -1 if the operation failed due to -a syntax error. - .. _`SCMI specification`: https://developer.arm.com/documentation/den0056/e/?lang=en diff --git a/doc/usage/cmd/setexpr.rst b/doc/usage/cmd/setexpr.rst index 5bc37ae50fc..96894a2754f 100644 --- a/doc/usage/cmd/setexpr.rst +++ b/doc/usage/cmd/setexpr.rst @@ -147,10 +147,3 @@ Configuration * The *setexpr gsub* and *setexpr sub* sub-commands are only available if CONFIG_REGEX=y. For an overview of the supported regex syntax, see :doc:`test`. - -Return value ------------- - -The return value $? is set to 0 (true) if the operation was successful. - -If an error occurs, the return value $? is set to 1 (false). diff --git a/doc/usage/cmd/size.rst b/doc/usage/cmd/size.rst index 306fcba0ba4..42e2dec6323 100644 --- a/doc/usage/cmd/size.rst +++ b/doc/usage/cmd/size.rst @@ -35,9 +35,3 @@ Configuration ------------- The size command is only available if CONFIG_CMD_FS_GENERIC=y. - -Return value ------------- - -The return value $? is set to 0 (true) if the command succeded and to 1 (false) -otherwise. diff --git a/doc/usage/cmd/smbios.rst b/doc/usage/cmd/smbios.rst index 1ffd706d7de..3c98795698e 100644 --- a/doc/usage/cmd/smbios.rst +++ b/doc/usage/cmd/smbios.rst @@ -86,8 +86,3 @@ Configuration ------------- The command is only available if CONFIG_CMD_SMBIOS=y. - -Return value ------------- - -The return value $? is 0 (true) on success, 1 (false) otherwise. diff --git a/doc/usage/cmd/sound.rst b/doc/usage/cmd/sound.rst index 97d610f3745..4474ce95420 100644 --- a/doc/usage/cmd/sound.rst +++ b/doc/usage/cmd/sound.rst @@ -56,8 +56,3 @@ Configuration ------------- The sound command is enabled by CONFIG_CMD_SOUND=y. - -Return value ------------- - -The return value $? is 0 (true) if the command succeeds, 1 (false) otherwise. diff --git a/doc/usage/cmd/source.rst b/doc/usage/cmd/source.rst index 0de5f33390e..bd585f37414 100644 --- a/doc/usage/cmd/source.rst +++ b/doc/usage/cmd/source.rst @@ -188,9 +188,3 @@ The FIT image file format requires CONFIG_FIT=y.# The legacy U-Boot image file format requires CONFIG_LEGACY_IMAGE_FORMAT=y. On hardened systems support for the legacy U-Boot image format should be disabled as these images cannot be signed and verified. - -Return value ------------- - -If the scripts is executed successfully, the return value $? is 0 (true). -Otherwise it is 1 (false). diff --git a/doc/usage/cmd/temperature.rst b/doc/usage/cmd/temperature.rst index 945bc8204ac..d5ea1196f45 100644 --- a/doc/usage/cmd/temperature.rst +++ b/doc/usage/cmd/temperature.rst @@ -45,9 +45,3 @@ Configuration ------------- The *temperature* command is only available if CONFIG_CMD_TEMPERATURE=y. - -Return value ------------- - -The return value $? is set to 0 (true) if the command succeeded and to 1 (false) -otherwise. diff --git a/doc/usage/cmd/tftpput.rst b/doc/usage/cmd/tftpput.rst index 2bcb3032cb2..bdffa3af463 100644 --- a/doc/usage/cmd/tftpput.rst +++ b/doc/usage/cmd/tftpput.rst @@ -79,8 +79,3 @@ after which an ACK response is required. The window size defaults to 1. If CONFIG_TFTP_TSIZE=y, the progress bar is limited to 50 '#' characters. Otherwise an '#' is written per UDP package which may decrease performance. - -Return value ------------- - -The return value $? is 0 (true) on success and 1 (false) otherwise. diff --git a/doc/usage/cmd/unbind.rst b/doc/usage/cmd/unbind.rst index 1ae9c1b172c..5a165cfee23 100644 --- a/doc/usage/cmd/unbind.rst +++ b/doc/usage/cmd/unbind.rst @@ -91,8 +91,3 @@ Configuration ------------- The unbind command is only available if CONFIG_CMD_BIND=y. - -Return code ------------ - -The return code $? is 0 (true) on success and 1 (false) on failure. diff --git a/doc/usage/cmd/wdt.rst b/doc/usage/cmd/wdt.rst index f48b8840907..711b74d20da 100644 --- a/doc/usage/cmd/wdt.rst +++ b/doc/usage/cmd/wdt.rst @@ -73,8 +73,3 @@ Configuration ------------- The command is only available if CONFIG_CMD_WDT=y. - -Return value ------------- - -The return value $? is 0 if the command succeeds, 1 upon failure. diff --git a/doc/usage/cmd/wget.rst b/doc/usage/cmd/wget.rst index 8feda0248b2..e6c42f967b9 100644 --- a/doc/usage/cmd/wget.rst +++ b/doc/usage/cmd/wget.rst @@ -184,8 +184,3 @@ CONFIG_WGET_CACERT=y (for the wget cacert command). TCP Selective Acknowledgments in the legacy network stack can be enabled via CONFIG_PROT_TCP_SACK=y. This will improve the download speed. Selective Acknowledgments are enabled by default with lwIP. - -Return value ------------- - -The return value $? is 0 (true) on success and 1 (false) otherwise. diff --git a/doc/usage/cmdline.rst b/doc/usage/cmdline.rst index 58240c5279c..79b9baf7bfe 100644 --- a/doc/usage/cmdline.rst +++ b/doc/usage/cmdline.rst @@ -55,6 +55,12 @@ General rules command will cause "run" to terminate, i. e. the remaining variables are not executed. +#. The variable ``$?`` will be set as the return value of any command. The + possible values are 0 on success or 1 on any error e. g. invalid syntax or + failure of the command. Any exceptions to this are documented by the + specific command, e.g. the :doc:`for command ` sets ``$?`` based on + the last command run within the loop. + Representing numbers --------------------