]> git.baikalelectronics.ru Git - uboot.git/commitdiff
doc: usage: Group all shell command docs into cmd/ sub-directory
authorBin Meng <bmeng.cn@gmail.com>
Mon, 28 Mar 2022 03:02:56 +0000 (11:02 +0800)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Thu, 31 Mar 2022 17:06:16 +0000 (19:06 +0200)
Currently all shell command docs are put in the doc/usage root.
Let's group them into cmd/ sub-directory.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
71 files changed:
doc/usage/acpi.rst [deleted file]
doc/usage/addrmap.rst [deleted file]
doc/usage/askenv.rst [deleted file]
doc/usage/base.rst [deleted file]
doc/usage/bootefi.rst [deleted file]
doc/usage/booti.rst [deleted file]
doc/usage/bootmenu.rst [deleted file]
doc/usage/button.rst [deleted file]
doc/usage/cmd/acpi.rst [new file with mode: 0644]
doc/usage/cmd/addrmap.rst [new file with mode: 0644]
doc/usage/cmd/askenv.rst [new file with mode: 0644]
doc/usage/cmd/base.rst [new file with mode: 0644]
doc/usage/cmd/bootefi.rst [new file with mode: 0644]
doc/usage/cmd/booti.rst [new file with mode: 0644]
doc/usage/cmd/bootmenu.rst [new file with mode: 0644]
doc/usage/cmd/button.rst [new file with mode: 0644]
doc/usage/cmd/cbsysinfo.rst [new file with mode: 0644]
doc/usage/cmd/conitrace.rst [new file with mode: 0644]
doc/usage/cmd/echo.rst [new file with mode: 0644]
doc/usage/cmd/exception.rst [new file with mode: 0644]
doc/usage/cmd/exit.rst [new file with mode: 0644]
doc/usage/cmd/extension.rst [new file with mode: 0644]
doc/usage/cmd/false.rst [new file with mode: 0644]
doc/usage/cmd/fatinfo.rst [new file with mode: 0644]
doc/usage/cmd/fatload.rst [new file with mode: 0644]
doc/usage/cmd/for.rst [new file with mode: 0644]
doc/usage/cmd/load.rst [new file with mode: 0644]
doc/usage/cmd/loady.rst [new file with mode: 0644]
doc/usage/cmd/mbr.rst [new file with mode: 0644]
doc/usage/cmd/md.rst [new file with mode: 0644]
doc/usage/cmd/mmc.rst [new file with mode: 0644]
doc/usage/cmd/pinmux.rst [new file with mode: 0644]
doc/usage/cmd/pstore.rst [new file with mode: 0644]
doc/usage/cmd/qfw.rst [new file with mode: 0644]
doc/usage/cmd/reset.rst [new file with mode: 0644]
doc/usage/cmd/sbi.rst [new file with mode: 0644]
doc/usage/cmd/scp03.rst [new file with mode: 0644]
doc/usage/cmd/setexpr.rst [new file with mode: 0644]
doc/usage/cmd/sf.rst [new file with mode: 0644]
doc/usage/cmd/size.rst [new file with mode: 0644]
doc/usage/cmd/true.rst [new file with mode: 0644]
doc/usage/cmd/ums.rst [new file with mode: 0644]
doc/usage/cmd/wdt.rst [new file with mode: 0644]
doc/usage/conitrace.rst [deleted file]
doc/usage/echo.rst [deleted file]
doc/usage/exception.rst [deleted file]
doc/usage/exit.rst [deleted file]
doc/usage/extension.rst [deleted file]
doc/usage/false.rst [deleted file]
doc/usage/fatinfo.rst [deleted file]
doc/usage/fatload.rst [deleted file]
doc/usage/for.rst [deleted file]
doc/usage/index.rst
doc/usage/load.rst [deleted file]
doc/usage/loady.rst [deleted file]
doc/usage/mbr.rst [deleted file]
doc/usage/md.rst [deleted file]
doc/usage/mmc.rst [deleted file]
doc/usage/pinmux.rst [deleted file]
doc/usage/pstore.rst [deleted file]
doc/usage/qfw.rst [deleted file]
doc/usage/reset.rst [deleted file]
doc/usage/sbi.rst [deleted file]
doc/usage/scp03.rst [deleted file]
doc/usage/setexpr.rst [deleted file]
doc/usage/sf.rst [deleted file]
doc/usage/size.rst [deleted file]
doc/usage/true.rst [deleted file]
doc/usage/ums.rst [deleted file]
doc/usage/wdt.rst [deleted file]
doc/usage/x86/cbsysinfo.rst [deleted file]

diff --git a/doc/usage/acpi.rst b/doc/usage/acpi.rst
deleted file mode 100644 (file)
index 14bafc8..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-acpi command
-============
-
-Synopis
--------
-
-::
-
-    acpi list
-    acpi items [-d]
-    acpi dump <name>
-
-Description
------------
-
-The *acpi* command is used to dump the ACPI tables generated by U-Boot for passing
-to the operating systems.
-
-ACPI tables can be generated by various output functions and even devices can
-output material to include in the Differentiated System Description Table (DSDT)
-and SSDT tables (Secondary System Description Table). U-Boot keeps track of
-which device or table-writer produced each piece of the ACPI tables.
-
-The ACPI tables are stored contiguously in memory.
-
-
-acpi list
-~~~~~~~~~
-
-List the ACPI tables that have been generated. Each table has a 4-character
-table name (e.g. SSDT, FACS) and has a format defined by the
-`ACPI specification`_.
-
-U-Boot does not currently support decoding the tables. Unlike devicetree, ACPI
-tables have no regular schema and also some include bytecode, so decoding the
-tables requires a lot of code.
-
-The table shows the following information:
-
-Name
-    Table name, e.g. `MCFG`
-
-Base
-    Base address of table in memory
-
-Size
-    Size of table in bytes
-
-Detail
-    More information depending on the table type
-
-    Revision
-        Table revision number (two decimal digits)
-
-    OEM ID
-        ID for the Original Equipment Manufacturer. Typically this is "U-BOOT".
-
-    OEM Table ID
-        Table ID for the Original Equipment Manufacturer. Typically this is
-        "U-BOOTBL" (U-Boot bootloader)
-
-    OEM Revision
-        Revision string for the Original Equipment Manufacturer. Typically this
-        is the U-Boot release number, e.g. 20220101 (meaning v2022.01 since the
-        final 01 is not used). For DSDT, this is set by the source code in
-        the parameters of DefinitionBlock().
-
-    ACPI compiler-vendor ID
-        This is normally `INTL` for Intel
-
-    ACPI compiler revision
-        This is the compiler revision. It is set to the version string for the
-        DSDT table but other tables just use the value 0 or 1, since U-Boot does
-        not actually use the compiler in these cases. It generates the code
-        itself.
-
-acpi items
-~~~~~~~~~~
-
-List the ACPI data that was generated, broken down by item. An item is either
-an ACPI table generated by a writer function, or the part of a table that was
-generated by a particular device.
-
-The `-d` flag also shows a binary dump of the table.
-
-The table shows the following information about each item:
-
-Seq
-    Sequence number in hex
-
-Type
-    Type of item
-
-    =====  ============================================================
-    Type   Meaning
-    =====  ============================================================
-    dsdt   Fragment of a DSDT table, as generated by a device
-    ssdt   Fragment of a SSDT table, as generated by a device
-    other  A whole table of a particular type. as generated by a writer
-    =====  ============================================================
-
-Base
-    Base address of table in memory
-
-Size
-    Size of table in bytes
-
-Device / Writer
-    Name of device (for ssdt/dsdt) that wrong this fragment of the table, or
-    name of the registered writer function (otherwise) that wrote the table.
-
-acpi dump
-~~~~~~~~~
-
-Dump a paticular ACPI table in binary format. This can be used to read the table
-if you have the specification handy.
-
-
-Example
--------
-
-::
-
-    => acpi list
-    Name      Base   Size  Detail
-    ----  --------  -----  ------
-    RSDP  79925000     24  v02 U-BOOT
-    RSDT  79925030     48  v01 U-BOOT U-BOOTBL 20220101 INTL 0
-    XSDT  799250e0     6c  v01 U-BOOT U-BOOTBL 20220101 INTL 0
-    FACP  79929570     f4  v04 U-BOOT U-BOOTBL 20220101 INTL 1
-    DSDT  79925280   32ea  v02 U-BOOT U-BOOTBL 20110725 INTL 20180105
-    FACS  79925240     40
-    MCFG  79929670     2c  v01 U-BOOT U-BOOTBL 20220101 INTL 0
-    SPCR  799296a0     50  v02 U-BOOT U-BOOTBL 20220101 INTL 0
-    TPM2  799296f0     4c  v04 U-BOOT U-BOOTBL 20220101 INTL 0
-    APIC  79929740     6c  v02 U-BOOT U-BOOTBL 20220101 INTL 0
-    SSDT  799297b0   1523  v02 U-BOOT U-BOOTBL 20220101 INTL 1
-    NHLT  7992ace0    e60  v05 coral coral 3 INTL 0
-    DBG2  7992db40     61  v00 U-BOOT U-BOOTBL 20220101 INTL 0
-    HPET  7992dbb0     38  v01 U-BOOT U-BOOTBL 20220101 INTL 0
-    => acpi items
-    Seq  Type       Base   Size  Device/Writer
-    ---  -----  --------   ----  -------------
-      0  other  79925000    240  0base
-      1  other  79925240     40  1facs
-      2  dsdt   799252a4     58  board
-      3  dsdt   799252fc     10  lpc
-      4  other  79925280   32f0  3dsdt
-      5  other  79928570   1000  4gnvs
-      6  other  79929570    100  5fact
-      7  other  79929670     30  5mcfg
-      8  other  799296a0     50  5spcr
-      9  other  799296f0     50  5tpm2
-      a  other  79929740     70  5x86
-      b  ssdt   799297d4     fe  maxim-codec
-      c  ssdt   799298d2     28  i2c2@16,0
-      d  ssdt   799298fa    270  da-codec
-      e  ssdt   79929b6a     28  i2c2@16,1
-      f  ssdt   79929b92     28  i2c2@16,2
-     10  ssdt   79929bba     83  tpm@50
-     11  ssdt   79929c3d     28  i2c2@16,3
-     12  ssdt   79929c65    282  elan-touchscreen@10
-     13  ssdt   79929ee7    285  raydium-touchscreen@39
-     14  ssdt   7992a16c     28  i2c2@17,0
-     15  ssdt   7992a194     d8  elan-touchpad@15
-     16  ssdt   7992a26c    163  synaptics-touchpad@2c
-     17  ssdt   7992a3cf     28  i2c2@17,1
-     18  ssdt   7992a3f7    111  wacom-digitizer@9
-     19  ssdt   7992a508     8f  sdmmc@1b,0
-     1a  ssdt   7992a597     4b  wifi
-     1b  ssdt   7992a5e2    1a0  cpu@0
-     1c  ssdt   7992a782    1a0  cpu@1
-     1d  ssdt   7992a922    1a0  cpu@2
-     1e  ssdt   7992aac2    211  cpu@3
-     1f  other  799297b0   1530  6ssdt
-     20  other  7992ace0   2f10  8dev
-    => acpi dump mcfg
-    MCFG @ 79929670
-    00000000: 4d 43 46 47 2c 00 00 00 01 41 55 2d 42 4f 4f 54  MCFG,....AU-BOOT
-    00000010: 55 2d 42 4f 4f 54 42 4c 01 01 22 20 49 4e 54 4c  U-BOOTBL.." INTL
-    00000020: 00 00 00 00 00 00 00 00 00 00 00 00              ............
-    => acpi items -d
-    Seq  Type       Base   Size  Device/Writer
-    ---  -----  --------   ----  -------------
-      0  other  79925000    240  0base
-    00000000: 52 53 44 20 50 54 52 20 9e 55 2d 42 4f 4f 54 02  RSD PTR .U-BOOT.
-    00000010: 30 50 92 79 24 00 00 00 e0 50 92 79 00 00 00 00  0P.y$....P.y....
-    00000020: a1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    00000030: 52 53 44 54 48 00 00 00 01 8b 55 2d 42 4f 4f 54  RSDTH.....U-BOOT
-    00000040: 55 2d 42 4f 4f 54 42 4c 01 01 22 20 49 4e 54 4c  U-BOOTBL.." INTL
-    00000050: 00 00 00 00 70 95 92 79 70 96 92 79 a0 96 92 79  ....p..yp..y...y
-    00000060: f0 96 92 79 40 97 92 79 b0 97 92 79 e0 ac 92 79  ...y@..y...y...y
-    00000070: 40 db 92 79 b0 db 92 79 00 00 00 00 00 00 00 00  @..y...y........
-    00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    000000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    000000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    000000e0: 58 53 44 54 6c 00 00 00 01 61 55 2d 42 4f 4f 54  XSDTl....aU-BOOT
-    000000f0: 55 2d 42 4f 4f 54 42 4c 01 01 22 20 49 4e 54 4c  U-BOOTBL.." INTL
-    00000100: 00 00 00 00 70 95 92 79 00 00 00 00 70 96 92 79  ....p..y....p..y
-    00000110: 00 00 00 00 a0 96 92 79 00 00 00 00 f0 96 92 79  .......y.......y
-    00000120: 00 00 00 00 40 97 92 79 00 00 00 00 b0 97 92 79  ....@..y.......y
-    00000130: 00 00 00 00 e0 ac 92 79 00 00 00 00 40 db 92 79  .......y....@..y
-    00000140: 00 00 00 00 b0 db 92 79 00 00 00 00 00 00 00 00  .......y........
-    00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    ...
-
-      1  other  79925240     40  1facs
-    00000000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  FACS@...........
-    00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    00000020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-    00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
-
-      2  dsdt   799252a4     58  board
-    00000000: 10 87 05 00 5c 00 08 4f 49 50 47 12 8c 04 00 03  ....\..OIPG.....
-    00000010: 12 8b 01 00 04 01 01 0e ff ff ff ff ff ff ff ff  ................
-    00000020: 0d 49 4e 54 33 34 35 32 3a 30 31 00 12 85 01 00  .INT3452:01.....
-    00000030: 04 0a 03 01 0a 23 0d 49 4e 54 33 34 35 32 3a 30  .....#.INT3452:0
-    00000040: 31 00 12 85 01 00 04 0a 04 01 0a 0a 0d 49 4e 54  1............INT
-    00000050: 33 34 35 32 3a 30 30 00                          3452:00.
-
-      3  dsdt   799252fc     10  lpc
-    00000000: 10 8f 00 00 5c 00 08 4e 56 53 41 0c 10 50 93 79  ....\..NVSA..P.y
-
-      4  other  79925280   32f0  3dsdt
-    00000000: 44 53 44 54 ea 32 00 00 02 eb 55 2d 42 4f 4f 54  DSDT.2....U-BOOT
-    00000010: 55 2d 42 4f 4f 54 42 4c 25 07 11 20 49 4e 54 4c  U-BOOTBL%.. INTL
-
-
-.. _`ACPI specification`: https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf
diff --git a/doc/usage/addrmap.rst b/doc/usage/addrmap.rst
deleted file mode 100644 (file)
index 472fd54..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-addrmap command
-===============
-
-Synopsis
---------
-
-::
-
-    addrmap
-
-Description
------------
-
-The addrmap command is used to display non-identity virtual-physical memory
-mappings for 32-bit CPUs.
-
-The output may look like:
-
-::
-
-    => addrmap
-               vaddr            paddr             size
-    ================ ================ ================
-            e0000000        fe0000000         00100000
-            00000000         00000000         04000000
-            04000000         04000000         04000000
-            80000000        c00000000         10000000
-            90000000        c10000000         10000000
-            a0000000        fe1000000         00010000
-
-The first column indicates the virtual address.
-The second column indicates the physical address.
-The third column indicates the mapped size.
-
-Configuration
--------------
-
-To use the addrmap command you must specify CONFIG_CMD_ADDRMAP=y.
-It is automatically turned on when CONFIG_ADDR_MAP is set.
diff --git a/doc/usage/askenv.rst b/doc/usage/askenv.rst
deleted file mode 100644 (file)
index 5c4ca35..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-askenv command
-===============
-
-Synopsis
---------
-
-::
-
-    askenv name [message] [size]
-
-Description
------------
-
-Display message and get environment variable name of max size characters
-from stdin.
-
-name
-    name of the environment variable
-
-message
-    message is displayed while the command waits for the  value to be
-    entered from stdin.if no message is specified,a default message
-    "Please enter name:" will be displayed.
-
-size
-    maximum number of characters that will be stored in environment
-    variable name.this is in decimal number format (unlike in
-    other commands where size values are in hexa-decimal). Default
-    value of size is 1023 (CONFIG_SYS_CBSIZE - 1).
-
-Example
--------
-
-Value of a environment variable env1 without message and size parameters:
-
-::
-
-    => askenv env1;echo $?
-    Please enter 'env1': val1
-    0
-    => printenv env1
-    env1=val1
-
-Value of a environment variable env2 with message and size parameters:
-
-::
-
-    => askenv env2 Please type-in a value for env2: 10;echo $?
-    Please type-in a value for env2: 1234567890123
-    0
-    => printenv env2
-    env2=1234567890
-
-Value of a environment variable env3 with size parameter only:
-
-::
-
-    => askenv env3 10;echo $?
-    Please enter 'env3': val3
-    0
-    => printenv env3
-    env3=val3
-
-Return Value of askenv command, when used without any other arguments:
-
-::
-
-    => askenv;echo $?
-    askenv - get environment variables from stdin
-
-    Usage:
-    askenv name [message] [size]
-        - display 'message' and get environment variable 'name' from stdin (max 'size' chars)
-    1
-
-Configuration
--------------
-
-The askenv command is only available if CMD_ASKENV=y
-
-Return value
-------------
-
-The return value $? is set to 0 (true).
-If no other arguments are specified (along with askenv), it is set to 1 (false).
diff --git a/doc/usage/base.rst b/doc/usage/base.rst
deleted file mode 100644 (file)
index db9cd4d..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-base command
-============
-
-Synopsis
---------
-
-::
-
-    base [address]
-
-Description
------------
-
-The *base* command sets or displays the address offset used by the memory
-commands *cmp, cp, md, mdc, mm, ms, mw, mwc*.
-
-All other commands ignore the address defined by *base*.
-
-address
-    new base address as hexadecimal number. If no value is provided, the current
-    value is displayed.
diff --git a/doc/usage/bootefi.rst b/doc/usage/bootefi.rst
deleted file mode 100644 (file)
index 282f22a..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-.. Copyright 2020, Heinrich Schuchardt <xypron.glpk@gmx.de>
-
-bootefi command
-===============
-
-Synopsis
---------
-
-::
-
-    bootefi [image_addr] [fdt_addr]
-    bootefi bootmgr [fdt_addr]
-    bootefi hello [fdt_addr]
-    bootefi selftest [fdt_addr]
-
-Description
------------
-
-The *bootefi* command is used to launch a UEFI binary which can be either of
-
-* UEFI application
-* UEFI boot services driver
-* UEFI run-time services driver
-
-An operating system requires a hardware description which can either be
-presented as ACPI table (CONFIG\_GENERATE\_ACPI\_TABLE=y) or as device-tree
-The load address of the device-tree may be provided as parameter *fdt\_addr*. If
-this address is not specified, the bootefi command will try to fall back in
-sequence to:
-
-* the device-tree specified by environment variable *fdt\_addr*
-* the device-tree specified by environment variable *fdtcontroladdr*
-
-The load address of the binary is specified by parameter *image_address*. A
-command sequence to run a UEFI application might look like
-
-::
-
-    load mmc 0:2 $fdt_addr_r dtb
-    load mmc 0:1 $kernel_addr_r /EFI/grub/grubaa64.efi
-    bootefi $kernel_addr_r $fdt_addr_r
-
-The last file loaded defines the image file path in the loaded image protocol.
-Hence the executable should always be loaded last.
-
-The value of the environment variable *bootargs* is converted from UTF-8 to
-UTF-16 and passed as load options in the loaded image protocol to the UEFI
-binary.
-
-Note
-    UEFI binaries that are contained in FIT images are launched via the
-    *bootm* command.
-
-UEFI boot manager
-'''''''''''''''''
-
-The UEFI boot manager is invoked by the *bootefi bootmgr* sub-command.
-Here boot options are defined by UEFI variables with a name consisting of the
-letters *Boot* followed by a four digit hexadecimal number, e.g. *Boot0001* or
-*BootA03E*. The boot variable defines a label, the device path of the binary to
-execute as well as the load options passed in the loaded image protocol.
-
-If the UEFI variable *BootNext* is defined, it specifies the number of the boot
-option to execute next. If no binary can be loaded via *BootNext* the variable
-*BootOrder* specifies in which sequence boot options shalled be tried.
-
-The values of these variables can be managed using the U-Boot command
-*efidebug*.
-
-UEFI hello world application
-''''''''''''''''''''''''''''
-
-U-Boot can be compiled with a hello world application that can be launched using
-the *bootefi hello* sub-command. A session might look like
-
-::
-
-    => setenv bootargs 'Greetings to the world'
-    => bootefi hello
-    Booting /MemoryMapped(0x0,0x10001000,0x1000)
-    Hello, world!
-    Running on UEFI 2.8
-    Have SMBIOS table
-    Have device tree
-    Load options: Greetings to the world
-
-UEFI selftest
-'''''''''''''
-
-U-Boot can be compiled with UEFI unit tests. These unit tests are invoked using
-the *bootefi selftest* sub-command.
-
-Which unit test is executed is controlled by the environment variable
-*efi\_selftest*. If this variable is not set, all unit tests that are not marked
-as 'on request' are executed.
-
-To show a list of the available unit tests the value *list* can be used
-
-::
-
-    => setenv efi_selftest list
-    => bootefi selftest
-
-    Available tests:
-    'block image transfer' - on request
-    'block device'
-    'configuration tables'
-    ...
-
-A single test is selected for execution by setting the *efi\_selftest*
-environment variable to match one of the listed identifiers
-
-::
-
-    => setenv efi_selftest 'block image transfer'
-    => bootefi selftest
-
-Some of the tests execute the ExitBootServices() UEFI boot service and will not
-return to the command line but require a board reset.
-
-Configuration
--------------
-
-To use the *bootefi* command you must specify CONFIG\_CMD\_BOOTEFI=y.
-The *bootefi hello* sub-command requries CMD\_BOOTEFI\_HELLO=y.
-The *bootefi selftest* sub-command depends on CMD\_BOOTEFI\_SELFTEST=y.
-
-See also
---------
-
-* *bootm* for launching UEFI binaries packed in FIT images
-* *booti*, *bootm*, *bootz* for launching a Linux kernel without using the
-  UEFI sub-system
-* *efidebug* for setting UEFI boot variables
diff --git a/doc/usage/booti.rst b/doc/usage/booti.rst
deleted file mode 100644 (file)
index d631fb5..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-booti command
-=============
-
-Synopsis
---------
-
-::
-
-    booti [<addr> [<initrd>[:<size>]] [<fdt>]]
-
-Description
------------
-
-The booti command is used to boot a Linux kernel in flat or compressed
-'Image' format. Which compressed formats are supported is configurable.
-
-addr
-    address of kernel image, defaults to CONFIG_SYS_LOAD_ADDR.
-
-initrd
-    address of the initial RAM disk. Use '-' to boot a kernel with a device
-    tree but without an initial RAM disk.
-
-size
-    size of the initial RAM disk. This parameter must be specified for raw
-    initial RAM disks.
-
-fdt
-    address of the device tree.
-
-To support compressed Image files the following environment variables must be
-set:
-
-kernel_comp_addr_r
-    start of memory area used for decompression
-
-kernel_comp_size
-    size of the compressed file. The value has to be at least the size of
-    loaded image for decompression to succeed. For the booti command the
-    maximum decompressed size is 10 times this value.
-
-Example
--------
-
-This is the boot log of an Odroid C2 board:
-
-::
-
-    => load mmc 0:1 $fdt_addr_r dtb-5.10.0-3-arm64
-    27530 bytes read in 7 ms (3.7 MiB/s)
-    => load mmc 0:1 $kernel_addr_r vmlinuz-5.10.0-3-arm64
-    26990448 bytes read in 1175 ms (21.9 MiB/s)
-    => load mmc 0:1 $ramdisk_addr_r initrd.img-5.10.0-3-arm64
-    27421776 bytes read in 1209 ms (21.6 MiB/s)
-    => booti $kernel_addr_r $ramdisk_addr_r:$filesize $fdt_addr_r
-    Moving Image from 0x8080000 to 0x8200000, end=9c60000
-    ## Flattened Device Tree blob at 08008000
-       Booting using the fdt blob at 0x8008000
-       Loading Ramdisk to 7a52a000, end 7bf50c50 ... OK
-       Loading Device Tree to 000000007a520000, end 000000007a529b89 ... OK
-
-    Starting kernel ...
-
-The kernel can be compressed with gzip:
-
-.. code-block:: bash
-
-    cd /boot
-    gzip -k vmlinuz-5.10.0-3-arm64
-
-Here is the boot log for the compressed kernel:
-
-::
-
-    => setenv kernel_comp_addr_r 0x50000000
-    => setenv kernel_comp_size 0x04000000
-    => load mmc 0:1 $fdt_addr_r dtb-5.10.0-3-arm64
-    27530 bytes read in 6 ms (4.4 MiB/s)
-    => load mmc 0:1 $kernel_addr_r vmlinuz-5.10.0-3-arm64.gz
-    9267730 bytes read in 402 ms (22 MiB/s)
-    => load mmc 0:1 $ramdisk_addr_r initrd.img-5.10.0-3-arm64
-    27421776 bytes read in 1181 ms (22.1 MiB/s)
-    => booti $kernel_addr_r $ramdisk_addr_r:$filesize $fdt_addr_r
-       Uncompressing Kernel Image
-    Moving Image from 0x8080000 to 0x8200000, end=9c60000
-    ## Flattened Device Tree blob at 08008000
-       Booting using the fdt blob at 0x8008000
-       Loading Ramdisk to 7a52a000, end 7bf50c50 ... OK
-       Loading Device Tree to 000000007a520000, end 000000007a529b89 ... OK
-
-    Starting kernel ...
-
-Configuration
--------------
-
-The booti command is only available if CONFIG_CMD_BOOTI=y.
-
-Which compression types are supported depends on:
-
-* CONFIG_BZIP2
-* CONFIG_GZIP
-* CONFIG_LZ4
-* CONFIG_LZMA
-* CONFIG_LZO
-* CONFIG_ZSTD
-
-Return value
-------------
-
-Normally this command does not return. If an error occurs, the return value $?
-is set to 1 (false). If the operating system returns to U-Boot, the system is
-reset.
diff --git a/doc/usage/bootmenu.rst b/doc/usage/bootmenu.rst
deleted file mode 100644 (file)
index 1f094ad..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-.. (C) Copyright 2011-2012 Pali Rohár <pali@kernel.org>
-
-bootmenu command
-================
-
-The "bootmenu" command uses U-Boot menu interfaces and provides
-a simple mechanism for creating menus with different boot items.
-The cursor keys "Up" and "Down" are used for navigation through
-the items. Current active menu item is highlighted and can be
-selected using the "Enter" key. The selection of the highlighted
-menu entry invokes an U-Boot command (or a list of commands)
-associated with this menu entry.
-
-The "bootmenu" command interprets ANSI escape sequencies, so
-an ANSI terminal is required for proper menu rendering and item
-selection.
-
-The assembling of the menu is done via a set of environment variables
-"bootmenu_<num>" and "bootmenu_delay", i.e.::
-
-    bootmenu_delay=<delay>
-    bootmenu_<num>="<title>=<commands>"
-
-<delay>
-    is the autoboot delay in seconds, after which the first
-    menu entry will be selected automatically
-
-<num>
-    is the boot menu entry number, starting from zero
-
-<title>
-    is the text of the menu entry shown on the console
-    or on the boot screen
-
-<commands>
-    are commands which will be executed when a menu
-    entry is selected
-
-Title and commands are separated by the first appearance of a '='
-character in the value of the environment variable.
-
-The first (optional) argument of the "bootmenu" command is a delay specifier
-and it overrides the delay value defined by "bootmenu_delay" environment
-variable. If the environment variable "bootmenu_delay" is not set or if
-the argument of the "bootmenu" command is not specified, the default delay
-will be CONFIG_BOOTDELAY. If delay is 0, no menu entries will be shown on
-the console (or on the screen) and the command of the first menu entry will
-be called immediately. If delay is less then 0, bootmenu will be shown and
-autoboot will be disabled.
-
-Bootmenu always adds menu entry "U-Boot console" at the end of all menu
-entries specified by environment variables. When selecting this entry
-the bootmenu terminates and the usual U-Boot command prompt is presented
-to the user.
-
-Example environment::
-
-    setenv bootmenu_0 Boot 1. kernel=bootm 0x82000000  # Set first menu entry
-    setenv bootmenu_1 Boot 2. kernel=bootm 0x83000000  # Set second menu entry
-    setenv bootmenu_2 Reset board=reset                # Set third menu entry
-    setenv bootmenu_3 U-Boot boot order=boot           # Set fourth menu entry
-    bootmenu 20        # Run bootmenu with autoboot delay 20s
-
-
-The above example will be rendered as below::
-
-    *** U-Boot Boot Menu ***
-
-       Boot 1. kernel
-       Boot 2. kernel
-       Reset board
-       U-Boot boot order
-       U-Boot console
-
-    Hit any key to stop autoboot: 20
-    Press UP/DOWN to move, ENTER to select
-
-The selected menu entry will be highlighted - it will have inverted
-background and text colors.
-
-The "bootmenu" cammand is enabled by::
-
-    CONFIG_CMD_BOOTMENU=y
-
-To run the bootmenu at startup add these additional settings::
-
-    CONFIG_AUTOBOOT_KEYED=y
-    CONFIG_BOOTDELAY=30
-    CONFIG_AUTOBOOT_MENU_SHOW=y
-
-When you intend to use the bootmenu on a color frame buffer console,
-make sure to additionally define::
-
-    CONFIG_CFB_CONSOLE_ANSI=y
diff --git a/doc/usage/button.rst b/doc/usage/button.rst
deleted file mode 100644 (file)
index ea41762..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-button command
-==============
-
-Synopsis
---------
-
-::
-
-    button list
-    button <name>
-
-Description
------------
-
-The button command is used to retrieve the status of a button. To show the
-status of a button with name 'button1' you would issue the command
-
-::
-
-    button button1
-
-The status of the button is both written to the console as *ON* or *OFF* and
-set in the return value variable *$?* as 0 (true) or 1 (false). To retrieve
-the status of a button with name *button1* and to write it to environment
-variable *status1* you would execute the commands
-
-::
-
-    button button1
-    setenv status1 $?
-
-A list of all available buttons and their status can be displayed using
-
-::
-
-    button list
-
-If a button device has not been probed yet, its status will be shown as
-*<inactive>* in the list.
-
-Configuration
--------------
-
-To use the button command you must specify CONFIG_CMD_BUTTON=y and enable a
-button driver. The available buttons are defined in the device-tree.
-
-Return value
-------------
-
-The variable *$?* takes the following values
-
-+---+-----------------------------+
-| 0 | ON, the button is pressed   |
-+---+-----------------------------+
-| 1 | OFF, the button is released |
-+---+-----------------------------+
-| 0 | button list was shown       |
-+---+-----------------------------+
-| 1 | button not found            |
-+---+-----------------------------+
-| 1 | invalid arguments           |
-+---+-----------------------------+
diff --git a/doc/usage/cmd/acpi.rst b/doc/usage/cmd/acpi.rst
new file mode 100644 (file)
index 0000000..14bafc8
--- /dev/null
@@ -0,0 +1,235 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+acpi command
+============
+
+Synopis
+-------
+
+::
+
+    acpi list
+    acpi items [-d]
+    acpi dump <name>
+
+Description
+-----------
+
+The *acpi* command is used to dump the ACPI tables generated by U-Boot for passing
+to the operating systems.
+
+ACPI tables can be generated by various output functions and even devices can
+output material to include in the Differentiated System Description Table (DSDT)
+and SSDT tables (Secondary System Description Table). U-Boot keeps track of
+which device or table-writer produced each piece of the ACPI tables.
+
+The ACPI tables are stored contiguously in memory.
+
+
+acpi list
+~~~~~~~~~
+
+List the ACPI tables that have been generated. Each table has a 4-character
+table name (e.g. SSDT, FACS) and has a format defined by the
+`ACPI specification`_.
+
+U-Boot does not currently support decoding the tables. Unlike devicetree, ACPI
+tables have no regular schema and also some include bytecode, so decoding the
+tables requires a lot of code.
+
+The table shows the following information:
+
+Name
+    Table name, e.g. `MCFG`
+
+Base
+    Base address of table in memory
+
+Size
+    Size of table in bytes
+
+Detail
+    More information depending on the table type
+
+    Revision
+        Table revision number (two decimal digits)
+
+    OEM ID
+        ID for the Original Equipment Manufacturer. Typically this is "U-BOOT".
+
+    OEM Table ID
+        Table ID for the Original Equipment Manufacturer. Typically this is
+        "U-BOOTBL" (U-Boot bootloader)
+
+    OEM Revision
+        Revision string for the Original Equipment Manufacturer. Typically this
+        is the U-Boot release number, e.g. 20220101 (meaning v2022.01 since the
+        final 01 is not used). For DSDT, this is set by the source code in
+        the parameters of DefinitionBlock().
+
+    ACPI compiler-vendor ID
+        This is normally `INTL` for Intel
+
+    ACPI compiler revision
+        This is the compiler revision. It is set to the version string for the
+        DSDT table but other tables just use the value 0 or 1, since U-Boot does
+        not actually use the compiler in these cases. It generates the code
+        itself.
+
+acpi items
+~~~~~~~~~~
+
+List the ACPI data that was generated, broken down by item. An item is either
+an ACPI table generated by a writer function, or the part of a table that was
+generated by a particular device.
+
+The `-d` flag also shows a binary dump of the table.
+
+The table shows the following information about each item:
+
+Seq
+    Sequence number in hex
+
+Type
+    Type of item
+
+    =====  ============================================================
+    Type   Meaning
+    =====  ============================================================
+    dsdt   Fragment of a DSDT table, as generated by a device
+    ssdt   Fragment of a SSDT table, as generated by a device
+    other  A whole table of a particular type. as generated by a writer
+    =====  ============================================================
+
+Base
+    Base address of table in memory
+
+Size
+    Size of table in bytes
+
+Device / Writer
+    Name of device (for ssdt/dsdt) that wrong this fragment of the table, or
+    name of the registered writer function (otherwise) that wrote the table.
+
+acpi dump
+~~~~~~~~~
+
+Dump a paticular ACPI table in binary format. This can be used to read the table
+if you have the specification handy.
+
+
+Example
+-------
+
+::
+
+    => acpi list
+    Name      Base   Size  Detail
+    ----  --------  -----  ------
+    RSDP  79925000     24  v02 U-BOOT
+    RSDT  79925030     48  v01 U-BOOT U-BOOTBL 20220101 INTL 0
+    XSDT  799250e0     6c  v01 U-BOOT U-BOOTBL 20220101 INTL 0
+    FACP  79929570     f4  v04 U-BOOT U-BOOTBL 20220101 INTL 1
+    DSDT  79925280   32ea  v02 U-BOOT U-BOOTBL 20110725 INTL 20180105
+    FACS  79925240     40
+    MCFG  79929670     2c  v01 U-BOOT U-BOOTBL 20220101 INTL 0
+    SPCR  799296a0     50  v02 U-BOOT U-BOOTBL 20220101 INTL 0
+    TPM2  799296f0     4c  v04 U-BOOT U-BOOTBL 20220101 INTL 0
+    APIC  79929740     6c  v02 U-BOOT U-BOOTBL 20220101 INTL 0
+    SSDT  799297b0   1523  v02 U-BOOT U-BOOTBL 20220101 INTL 1
+    NHLT  7992ace0    e60  v05 coral coral 3 INTL 0
+    DBG2  7992db40     61  v00 U-BOOT U-BOOTBL 20220101 INTL 0
+    HPET  7992dbb0     38  v01 U-BOOT U-BOOTBL 20220101 INTL 0
+    => acpi items
+    Seq  Type       Base   Size  Device/Writer
+    ---  -----  --------   ----  -------------
+      0  other  79925000    240  0base
+      1  other  79925240     40  1facs
+      2  dsdt   799252a4     58  board
+      3  dsdt   799252fc     10  lpc
+      4  other  79925280   32f0  3dsdt
+      5  other  79928570   1000  4gnvs
+      6  other  79929570    100  5fact
+      7  other  79929670     30  5mcfg
+      8  other  799296a0     50  5spcr
+      9  other  799296f0     50  5tpm2
+      a  other  79929740     70  5x86
+      b  ssdt   799297d4     fe  maxim-codec
+      c  ssdt   799298d2     28  i2c2@16,0
+      d  ssdt   799298fa    270  da-codec
+      e  ssdt   79929b6a     28  i2c2@16,1
+      f  ssdt   79929b92     28  i2c2@16,2
+     10  ssdt   79929bba     83  tpm@50
+     11  ssdt   79929c3d     28  i2c2@16,3
+     12  ssdt   79929c65    282  elan-touchscreen@10
+     13  ssdt   79929ee7    285  raydium-touchscreen@39
+     14  ssdt   7992a16c     28  i2c2@17,0
+     15  ssdt   7992a194     d8  elan-touchpad@15
+     16  ssdt   7992a26c    163  synaptics-touchpad@2c
+     17  ssdt   7992a3cf     28  i2c2@17,1
+     18  ssdt   7992a3f7    111  wacom-digitizer@9
+     19  ssdt   7992a508     8f  sdmmc@1b,0
+     1a  ssdt   7992a597     4b  wifi
+     1b  ssdt   7992a5e2    1a0  cpu@0
+     1c  ssdt   7992a782    1a0  cpu@1
+     1d  ssdt   7992a922    1a0  cpu@2
+     1e  ssdt   7992aac2    211  cpu@3
+     1f  other  799297b0   1530  6ssdt
+     20  other  7992ace0   2f10  8dev
+    => acpi dump mcfg
+    MCFG @ 79929670
+    00000000: 4d 43 46 47 2c 00 00 00 01 41 55 2d 42 4f 4f 54  MCFG,....AU-BOOT
+    00000010: 55 2d 42 4f 4f 54 42 4c 01 01 22 20 49 4e 54 4c  U-BOOTBL.." INTL
+    00000020: 00 00 00 00 00 00 00 00 00 00 00 00              ............
+    => acpi items -d
+    Seq  Type       Base   Size  Device/Writer
+    ---  -----  --------   ----  -------------
+      0  other  79925000    240  0base
+    00000000: 52 53 44 20 50 54 52 20 9e 55 2d 42 4f 4f 54 02  RSD PTR .U-BOOT.
+    00000010: 30 50 92 79 24 00 00 00 e0 50 92 79 00 00 00 00  0P.y$....P.y....
+    00000020: a1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    00000030: 52 53 44 54 48 00 00 00 01 8b 55 2d 42 4f 4f 54  RSDTH.....U-BOOT
+    00000040: 55 2d 42 4f 4f 54 42 4c 01 01 22 20 49 4e 54 4c  U-BOOTBL.." INTL
+    00000050: 00 00 00 00 70 95 92 79 70 96 92 79 a0 96 92 79  ....p..yp..y...y
+    00000060: f0 96 92 79 40 97 92 79 b0 97 92 79 e0 ac 92 79  ...y@..y...y...y
+    00000070: 40 db 92 79 b0 db 92 79 00 00 00 00 00 00 00 00  @..y...y........
+    00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    000000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    000000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    000000e0: 58 53 44 54 6c 00 00 00 01 61 55 2d 42 4f 4f 54  XSDTl....aU-BOOT
+    000000f0: 55 2d 42 4f 4f 54 42 4c 01 01 22 20 49 4e 54 4c  U-BOOTBL.." INTL
+    00000100: 00 00 00 00 70 95 92 79 00 00 00 00 70 96 92 79  ....p..y....p..y
+    00000110: 00 00 00 00 a0 96 92 79 00 00 00 00 f0 96 92 79  .......y.......y
+    00000120: 00 00 00 00 40 97 92 79 00 00 00 00 b0 97 92 79  ....@..y.......y
+    00000130: 00 00 00 00 e0 ac 92 79 00 00 00 00 40 db 92 79  .......y....@..y
+    00000140: 00 00 00 00 b0 db 92 79 00 00 00 00 00 00 00 00  .......y........
+    00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    ...
+
+      1  other  79925240     40  1facs
+    00000000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  FACS@...........
+    00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    00000020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+    00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+
+      2  dsdt   799252a4     58  board
+    00000000: 10 87 05 00 5c 00 08 4f 49 50 47 12 8c 04 00 03  ....\..OIPG.....
+    00000010: 12 8b 01 00 04 01 01 0e ff ff ff ff ff ff ff ff  ................
+    00000020: 0d 49 4e 54 33 34 35 32 3a 30 31 00 12 85 01 00  .INT3452:01.....
+    00000030: 04 0a 03 01 0a 23 0d 49 4e 54 33 34 35 32 3a 30  .....#.INT3452:0
+    00000040: 31 00 12 85 01 00 04 0a 04 01 0a 0a 0d 49 4e 54  1............INT
+    00000050: 33 34 35 32 3a 30 30 00                          3452:00.
+
+      3  dsdt   799252fc     10  lpc
+    00000000: 10 8f 00 00 5c 00 08 4e 56 53 41 0c 10 50 93 79  ....\..NVSA..P.y
+
+      4  other  79925280   32f0  3dsdt
+    00000000: 44 53 44 54 ea 32 00 00 02 eb 55 2d 42 4f 4f 54  DSDT.2....U-BOOT
+    00000010: 55 2d 42 4f 4f 54 42 4c 25 07 11 20 49 4e 54 4c  U-BOOTBL%.. INTL
+
+
+.. _`ACPI specification`: https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf
diff --git a/doc/usage/cmd/addrmap.rst b/doc/usage/cmd/addrmap.rst
new file mode 100644 (file)
index 0000000..472fd54
--- /dev/null
@@ -0,0 +1,41 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+addrmap command
+===============
+
+Synopsis
+--------
+
+::
+
+    addrmap
+
+Description
+-----------
+
+The addrmap command is used to display non-identity virtual-physical memory
+mappings for 32-bit CPUs.
+
+The output may look like:
+
+::
+
+    => addrmap
+               vaddr            paddr             size
+    ================ ================ ================
+            e0000000        fe0000000         00100000
+            00000000         00000000         04000000
+            04000000         04000000         04000000
+            80000000        c00000000         10000000
+            90000000        c10000000         10000000
+            a0000000        fe1000000         00010000
+
+The first column indicates the virtual address.
+The second column indicates the physical address.
+The third column indicates the mapped size.
+
+Configuration
+-------------
+
+To use the addrmap command you must specify CONFIG_CMD_ADDRMAP=y.
+It is automatically turned on when CONFIG_ADDR_MAP is set.
diff --git a/doc/usage/cmd/askenv.rst b/doc/usage/cmd/askenv.rst
new file mode 100644 (file)
index 0000000..5c4ca35
--- /dev/null
@@ -0,0 +1,87 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+askenv command
+===============
+
+Synopsis
+--------
+
+::
+
+    askenv name [message] [size]
+
+Description
+-----------
+
+Display message and get environment variable name of max size characters
+from stdin.
+
+name
+    name of the environment variable
+
+message
+    message is displayed while the command waits for the  value to be
+    entered from stdin.if no message is specified,a default message
+    "Please enter name:" will be displayed.
+
+size
+    maximum number of characters that will be stored in environment
+    variable name.this is in decimal number format (unlike in
+    other commands where size values are in hexa-decimal). Default
+    value of size is 1023 (CONFIG_SYS_CBSIZE - 1).
+
+Example
+-------
+
+Value of a environment variable env1 without message and size parameters:
+
+::
+
+    => askenv env1;echo $?
+    Please enter 'env1': val1
+    0
+    => printenv env1
+    env1=val1
+
+Value of a environment variable env2 with message and size parameters:
+
+::
+
+    => askenv env2 Please type-in a value for env2: 10;echo $?
+    Please type-in a value for env2: 1234567890123
+    0
+    => printenv env2
+    env2=1234567890
+
+Value of a environment variable env3 with size parameter only:
+
+::
+
+    => askenv env3 10;echo $?
+    Please enter 'env3': val3
+    0
+    => printenv env3
+    env3=val3
+
+Return Value of askenv command, when used without any other arguments:
+
+::
+
+    => askenv;echo $?
+    askenv - get environment variables from stdin
+
+    Usage:
+    askenv name [message] [size]
+        - display 'message' and get environment variable 'name' from stdin (max 'size' chars)
+    1
+
+Configuration
+-------------
+
+The askenv command is only available if CMD_ASKENV=y
+
+Return value
+------------
+
+The return value $? is set to 0 (true).
+If no other arguments are specified (along with askenv), it is set to 1 (false).
diff --git a/doc/usage/cmd/base.rst b/doc/usage/cmd/base.rst
new file mode 100644 (file)
index 0000000..db9cd4d
--- /dev/null
@@ -0,0 +1,23 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+base command
+============
+
+Synopsis
+--------
+
+::
+
+    base [address]
+
+Description
+-----------
+
+The *base* command sets or displays the address offset used by the memory
+commands *cmp, cp, md, mdc, mm, ms, mw, mwc*.
+
+All other commands ignore the address defined by *base*.
+
+address
+    new base address as hexadecimal number. If no value is provided, the current
+    value is displayed.
diff --git a/doc/usage/cmd/bootefi.rst b/doc/usage/cmd/bootefi.rst
new file mode 100644 (file)
index 0000000..282f22a
--- /dev/null
@@ -0,0 +1,135 @@
+.. SPDX-License-Identifier: GPL-2.0+
+.. Copyright 2020, Heinrich Schuchardt <xypron.glpk@gmx.de>
+
+bootefi command
+===============
+
+Synopsis
+--------
+
+::
+
+    bootefi [image_addr] [fdt_addr]
+    bootefi bootmgr [fdt_addr]
+    bootefi hello [fdt_addr]
+    bootefi selftest [fdt_addr]
+
+Description
+-----------
+
+The *bootefi* command is used to launch a UEFI binary which can be either of
+
+* UEFI application
+* UEFI boot services driver
+* UEFI run-time services driver
+
+An operating system requires a hardware description which can either be
+presented as ACPI table (CONFIG\_GENERATE\_ACPI\_TABLE=y) or as device-tree
+The load address of the device-tree may be provided as parameter *fdt\_addr*. If
+this address is not specified, the bootefi command will try to fall back in
+sequence to:
+
+* the device-tree specified by environment variable *fdt\_addr*
+* the device-tree specified by environment variable *fdtcontroladdr*
+
+The load address of the binary is specified by parameter *image_address*. A
+command sequence to run a UEFI application might look like
+
+::
+
+    load mmc 0:2 $fdt_addr_r dtb
+    load mmc 0:1 $kernel_addr_r /EFI/grub/grubaa64.efi
+    bootefi $kernel_addr_r $fdt_addr_r
+
+The last file loaded defines the image file path in the loaded image protocol.
+Hence the executable should always be loaded last.
+
+The value of the environment variable *bootargs* is converted from UTF-8 to
+UTF-16 and passed as load options in the loaded image protocol to the UEFI
+binary.
+
+Note
+    UEFI binaries that are contained in FIT images are launched via the
+    *bootm* command.
+
+UEFI boot manager
+'''''''''''''''''
+
+The UEFI boot manager is invoked by the *bootefi bootmgr* sub-command.
+Here boot options are defined by UEFI variables with a name consisting of the
+letters *Boot* followed by a four digit hexadecimal number, e.g. *Boot0001* or
+*BootA03E*. The boot variable defines a label, the device path of the binary to
+execute as well as the load options passed in the loaded image protocol.
+
+If the UEFI variable *BootNext* is defined, it specifies the number of the boot
+option to execute next. If no binary can be loaded via *BootNext* the variable
+*BootOrder* specifies in which sequence boot options shalled be tried.
+
+The values of these variables can be managed using the U-Boot command
+*efidebug*.
+
+UEFI hello world application
+''''''''''''''''''''''''''''
+
+U-Boot can be compiled with a hello world application that can be launched using
+the *bootefi hello* sub-command. A session might look like
+
+::
+
+    => setenv bootargs 'Greetings to the world'
+    => bootefi hello
+    Booting /MemoryMapped(0x0,0x10001000,0x1000)
+    Hello, world!
+    Running on UEFI 2.8
+    Have SMBIOS table
+    Have device tree
+    Load options: Greetings to the world
+
+UEFI selftest
+'''''''''''''
+
+U-Boot can be compiled with UEFI unit tests. These unit tests are invoked using
+the *bootefi selftest* sub-command.
+
+Which unit test is executed is controlled by the environment variable
+*efi\_selftest*. If this variable is not set, all unit tests that are not marked
+as 'on request' are executed.
+
+To show a list of the available unit tests the value *list* can be used
+
+::
+
+    => setenv efi_selftest list
+    => bootefi selftest
+
+    Available tests:
+    'block image transfer' - on request
+    'block device'
+    'configuration tables'
+    ...
+
+A single test is selected for execution by setting the *efi\_selftest*
+environment variable to match one of the listed identifiers
+
+::
+
+    => setenv efi_selftest 'block image transfer'
+    => bootefi selftest
+
+Some of the tests execute the ExitBootServices() UEFI boot service and will not
+return to the command line but require a board reset.
+
+Configuration
+-------------
+
+To use the *bootefi* command you must specify CONFIG\_CMD\_BOOTEFI=y.
+The *bootefi hello* sub-command requries CMD\_BOOTEFI\_HELLO=y.
+The *bootefi selftest* sub-command depends on CMD\_BOOTEFI\_SELFTEST=y.
+
+See also
+--------
+
+* *bootm* for launching UEFI binaries packed in FIT images
+* *booti*, *bootm*, *bootz* for launching a Linux kernel without using the
+  UEFI sub-system
+* *efidebug* for setting UEFI boot variables
diff --git a/doc/usage/cmd/booti.rst b/doc/usage/cmd/booti.rst
new file mode 100644 (file)
index 0000000..d631fb5
--- /dev/null
@@ -0,0 +1,114 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+booti command
+=============
+
+Synopsis
+--------
+
+::
+
+    booti [<addr> [<initrd>[:<size>]] [<fdt>]]
+
+Description
+-----------
+
+The booti command is used to boot a Linux kernel in flat or compressed
+'Image' format. Which compressed formats are supported is configurable.
+
+addr
+    address of kernel image, defaults to CONFIG_SYS_LOAD_ADDR.
+
+initrd
+    address of the initial RAM disk. Use '-' to boot a kernel with a device
+    tree but without an initial RAM disk.
+
+size
+    size of the initial RAM disk. This parameter must be specified for raw
+    initial RAM disks.
+
+fdt
+    address of the device tree.
+
+To support compressed Image files the following environment variables must be
+set:
+
+kernel_comp_addr_r
+    start of memory area used for decompression
+
+kernel_comp_size
+    size of the compressed file. The value has to be at least the size of
+    loaded image for decompression to succeed. For the booti command the
+    maximum decompressed size is 10 times this value.
+
+Example
+-------
+
+This is the boot log of an Odroid C2 board:
+
+::
+
+    => load mmc 0:1 $fdt_addr_r dtb-5.10.0-3-arm64
+    27530 bytes read in 7 ms (3.7 MiB/s)
+    => load mmc 0:1 $kernel_addr_r vmlinuz-5.10.0-3-arm64
+    26990448 bytes read in 1175 ms (21.9 MiB/s)
+    => load mmc 0:1 $ramdisk_addr_r initrd.img-5.10.0-3-arm64
+    27421776 bytes read in 1209 ms (21.6 MiB/s)
+    => booti $kernel_addr_r $ramdisk_addr_r:$filesize $fdt_addr_r
+    Moving Image from 0x8080000 to 0x8200000, end=9c60000
+    ## Flattened Device Tree blob at 08008000
+       Booting using the fdt blob at 0x8008000
+       Loading Ramdisk to 7a52a000, end 7bf50c50 ... OK
+       Loading Device Tree to 000000007a520000, end 000000007a529b89 ... OK
+
+    Starting kernel ...
+
+The kernel can be compressed with gzip:
+
+.. code-block:: bash
+
+    cd /boot
+    gzip -k vmlinuz-5.10.0-3-arm64
+
+Here is the boot log for the compressed kernel:
+
+::
+
+    => setenv kernel_comp_addr_r 0x50000000
+    => setenv kernel_comp_size 0x04000000
+    => load mmc 0:1 $fdt_addr_r dtb-5.10.0-3-arm64
+    27530 bytes read in 6 ms (4.4 MiB/s)
+    => load mmc 0:1 $kernel_addr_r vmlinuz-5.10.0-3-arm64.gz
+    9267730 bytes read in 402 ms (22 MiB/s)
+    => load mmc 0:1 $ramdisk_addr_r initrd.img-5.10.0-3-arm64
+    27421776 bytes read in 1181 ms (22.1 MiB/s)
+    => booti $kernel_addr_r $ramdisk_addr_r:$filesize $fdt_addr_r
+       Uncompressing Kernel Image
+    Moving Image from 0x8080000 to 0x8200000, end=9c60000
+    ## Flattened Device Tree blob at 08008000
+       Booting using the fdt blob at 0x8008000
+       Loading Ramdisk to 7a52a000, end 7bf50c50 ... OK
+       Loading Device Tree to 000000007a520000, end 000000007a529b89 ... OK
+
+    Starting kernel ...
+
+Configuration
+-------------
+
+The booti command is only available if CONFIG_CMD_BOOTI=y.
+
+Which compression types are supported depends on:
+
+* CONFIG_BZIP2
+* CONFIG_GZIP
+* CONFIG_LZ4
+* CONFIG_LZMA
+* CONFIG_LZO
+* CONFIG_ZSTD
+
+Return value
+------------
+
+Normally this command does not return. If an error occurs, the return value $?
+is set to 1 (false). If the operating system returns to U-Boot, the system is
+reset.
diff --git a/doc/usage/cmd/bootmenu.rst b/doc/usage/cmd/bootmenu.rst
new file mode 100644 (file)
index 0000000..1f094ad
--- /dev/null
@@ -0,0 +1,95 @@
+.. SPDX-License-Identifier: GPL-2.0+
+.. (C) Copyright 2011-2012 Pali Rohár <pali@kernel.org>
+
+bootmenu command
+================
+
+The "bootmenu" command uses U-Boot menu interfaces and provides
+a simple mechanism for creating menus with different boot items.
+The cursor keys "Up" and "Down" are used for navigation through
+the items. Current active menu item is highlighted and can be
+selected using the "Enter" key. The selection of the highlighted
+menu entry invokes an U-Boot command (or a list of commands)
+associated with this menu entry.
+
+The "bootmenu" command interprets ANSI escape sequencies, so
+an ANSI terminal is required for proper menu rendering and item
+selection.
+
+The assembling of the menu is done via a set of environment variables
+"bootmenu_<num>" and "bootmenu_delay", i.e.::
+
+    bootmenu_delay=<delay>
+    bootmenu_<num>="<title>=<commands>"
+
+<delay>
+    is the autoboot delay in seconds, after which the first
+    menu entry will be selected automatically
+
+<num>
+    is the boot menu entry number, starting from zero
+
+<title>
+    is the text of the menu entry shown on the console
+    or on the boot screen
+
+<commands>
+    are commands which will be executed when a menu
+    entry is selected
+
+Title and commands are separated by the first appearance of a '='
+character in the value of the environment variable.
+
+The first (optional) argument of the "bootmenu" command is a delay specifier
+and it overrides the delay value defined by "bootmenu_delay" environment
+variable. If the environment variable "bootmenu_delay" is not set or if
+the argument of the "bootmenu" command is not specified, the default delay
+will be CONFIG_BOOTDELAY. If delay is 0, no menu entries will be shown on
+the console (or on the screen) and the command of the first menu entry will
+be called immediately. If delay is less then 0, bootmenu will be shown and
+autoboot will be disabled.
+
+Bootmenu always adds menu entry "U-Boot console" at the end of all menu
+entries specified by environment variables. When selecting this entry
+the bootmenu terminates and the usual U-Boot command prompt is presented
+to the user.
+
+Example environment::
+
+    setenv bootmenu_0 Boot 1. kernel=bootm 0x82000000  # Set first menu entry
+    setenv bootmenu_1 Boot 2. kernel=bootm 0x83000000  # Set second menu entry
+    setenv bootmenu_2 Reset board=reset                # Set third menu entry
+    setenv bootmenu_3 U-Boot boot order=boot           # Set fourth menu entry
+    bootmenu 20        # Run bootmenu with autoboot delay 20s
+
+
+The above example will be rendered as below::
+
+    *** U-Boot Boot Menu ***
+
+       Boot 1. kernel
+       Boot 2. kernel
+       Reset board
+       U-Boot boot order
+       U-Boot console
+
+    Hit any key to stop autoboot: 20
+    Press UP/DOWN to move, ENTER to select
+
+The selected menu entry will be highlighted - it will have inverted
+background and text colors.
+
+The "bootmenu" cammand is enabled by::
+
+    CONFIG_CMD_BOOTMENU=y
+
+To run the bootmenu at startup add these additional settings::
+
+    CONFIG_AUTOBOOT_KEYED=y
+    CONFIG_BOOTDELAY=30
+    CONFIG_AUTOBOOT_MENU_SHOW=y
+
+When you intend to use the bootmenu on a color frame buffer console,
+make sure to additionally define::
+
+    CONFIG_CFB_CONSOLE_ANSI=y
diff --git a/doc/usage/cmd/button.rst b/doc/usage/cmd/button.rst
new file mode 100644 (file)
index 0000000..ea41762
--- /dev/null
@@ -0,0 +1,64 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+button command
+==============
+
+Synopsis
+--------
+
+::
+
+    button list
+    button <name>
+
+Description
+-----------
+
+The button command is used to retrieve the status of a button. To show the
+status of a button with name 'button1' you would issue the command
+
+::
+
+    button button1
+
+The status of the button is both written to the console as *ON* or *OFF* and
+set in the return value variable *$?* as 0 (true) or 1 (false). To retrieve
+the status of a button with name *button1* and to write it to environment
+variable *status1* you would execute the commands
+
+::
+
+    button button1
+    setenv status1 $?
+
+A list of all available buttons and their status can be displayed using
+
+::
+
+    button list
+
+If a button device has not been probed yet, its status will be shown as
+*<inactive>* in the list.
+
+Configuration
+-------------
+
+To use the button command you must specify CONFIG_CMD_BUTTON=y and enable a
+button driver. The available buttons are defined in the device-tree.
+
+Return value
+------------
+
+The variable *$?* takes the following values
+
++---+-----------------------------+
+| 0 | ON, the button is pressed   |
++---+-----------------------------+
+| 1 | OFF, the button is released |
++---+-----------------------------+
+| 0 | button list was shown       |
++---+-----------------------------+
+| 1 | button not found            |
++---+-----------------------------+
+| 1 | invalid arguments           |
++---+-----------------------------+
diff --git a/doc/usage/cmd/cbsysinfo.rst b/doc/usage/cmd/cbsysinfo.rst
new file mode 100644 (file)
index 0000000..8c03a85
--- /dev/null
@@ -0,0 +1,25 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+cbsysinfo
+=========
+
+Synopis
+-------
+
+::
+
+    cbsysinfo
+
+
+Description
+-----------
+
+This displays information obtained from the coreboot sysinfo table. It is only
+useful when booting U-Boot from coreboot.
+
+Example
+-------
+
+::
+
+    => cbsysinfo
diff --git a/doc/usage/cmd/conitrace.rst b/doc/usage/cmd/conitrace.rst
new file mode 100644 (file)
index 0000000..d9916c8
--- /dev/null
@@ -0,0 +1,54 @@
+conitrace command
+=================
+
+Synopsis
+--------
+
+::
+
+    conitrace
+
+Description
+-----------
+
+The conitrace command is used to test the correct function of the console input
+driver. It is especially valuable for checking the support for special keys like
+<F1> or <POS1>.
+
+To display escape sequences on a single line the output only advances to the
+next line after detecting a pause of a few milliseconds.
+
+The output is hexadecimal.
+
+Examples
+--------
+
+Entering keys <B><SHIFT-B><CTRL-B><X>
+
+::
+
+    => conitrace
+    Waiting for your input
+    To terminate type 'x'
+    62
+    42
+    02
+    =>
+
+Entering keys <F1><POS1><DEL><BACKSPACE><X>
+
+::
+
+    => conitrace
+    Waiting for your input
+    To terminate type 'x'
+    1b 4f 50
+    1b 5b 48
+    1b 5b 33 7e
+    7f
+    =>
+
+Configuration
+-------------
+
+The conitrace command is only available if CONFIG_CMD_CONITRACE=y.
diff --git a/doc/usage/cmd/echo.rst b/doc/usage/cmd/echo.rst
new file mode 100644 (file)
index 0000000..861abdf
--- /dev/null
@@ -0,0 +1,65 @@
+echo command
+============
+
+Synopsis
+--------
+
+::
+
+    echo [-n] [args ...]
+
+Description
+-----------
+
+The echo command prints its arguments to the console separated by spaces.
+
+-n
+    Do not print a line feed after the last argument.
+
+args
+    Arguments to be printed. The arguments are evaluated before being passed to
+    the command.
+
+Examples
+--------
+
+Strings are parsed before the arguments are passed to the echo command:
+
+::
+
+    => echo "a" 'b' c
+    a b c
+    =>
+
+Observe how variables included in strings are handled:
+
+::
+
+    => setenv var X; echo "a)" ${var} 'b)' '${var}' c) ${var}
+    a) X b) ${var} c) X
+    =>
+
+
+-n suppresses the line feed:
+
+::
+
+    => echo -n 1 2 3; echo a b c
+    1 2 3a b c
+    => echo -n 1 2 3
+    1 2 3=>
+
+A more complex example:
+
+::
+
+    => for i in a b c; do for j in 1 2 3; do echo -n "${i}${j}, "; done; echo; done;
+    a1, a2, a3,
+    b1, b2, b3,
+    c1, c2, c3,
+    =>
+
+Return value
+------------
+
+The return value $? is always set to 0 (true).
diff --git a/doc/usage/cmd/exception.rst b/doc/usage/cmd/exception.rst
new file mode 100644 (file)
index 0000000..27df88b
--- /dev/null
@@ -0,0 +1,66 @@
+exception command
+=================
+
+Synopsis
+--------
+
+::
+
+    exception <type>
+
+Description
+-----------
+
+The exception command is used to test the handling of exceptions like undefined
+instructions, segmentation faults or alignment faults.
+
+type
+  type of exception to be generated. The available types are architecture
+  dependent. Use 'help exception' to determine which are available.
+
+  **ARM:**
+
+  breakpoint
+    prefetch abort
+
+  unaligned
+    data abort
+
+  undefined
+    undefined instruction
+
+  **RISC-V:**
+
+  ebreak
+    breakpoint exception
+
+  unaligned
+    load address misaligned
+
+  undefined
+    undefined instruction
+
+  **Sandbox:**
+
+  sigsegv
+    illegal memory access
+
+  undefined
+    undefined instruction
+
+  **x86:**
+
+  undefined
+    undefined instruction
+
+Examples
+--------
+
+::
+
+    => exception undefined
+
+    Illegal instruction
+    pc = 0x56076dd1a0f9, pc_reloc = 0x540f9
+
+    resetting ...
diff --git a/doc/usage/cmd/exit.rst b/doc/usage/cmd/exit.rst
new file mode 100644 (file)
index 0000000..769223c
--- /dev/null
@@ -0,0 +1,40 @@
+exit command
+============
+
+Synopsis
+--------
+
+::
+
+    exit
+
+Description
+-----------
+
+The exit command terminates a script started via the run or source command.
+If scripts are nested, only the innermost script is left.
+
+::
+
+    => setenv inner 'echo entry inner; exit; echo inner done'
+    => setenv outer 'echo entry outer; run inner; echo outer done'
+    => run outer
+    entry outer
+    entry inner
+    outer done
+    =>
+
+When executed outside a script a warning is written. Following commands are not
+executed.
+
+::
+
+    => echo first; exit; echo last
+    first
+    exit not allowed from main input shell.
+    =>
+
+Return value
+------------
+
+$? is always set to 0 (true).
diff --git a/doc/usage/cmd/extension.rst b/doc/usage/cmd/extension.rst
new file mode 100644 (file)
index 0000000..2b88398
--- /dev/null
@@ -0,0 +1,111 @@
+.. SPDX-License-Identifier: GPL-2.0+
+.. Copyright 2021, Kory Maincent <kory.maincent@bootlin.com>
+
+U-Boot extension board usage (CONFIG_EXTENSION)
+===============================================
+
+Synopsis
+--------
+
+::
+
+    extension scan
+    extension list
+    extension apply <extension number|all>
+
+Description
+-----------
+
+The "extension" command proposes a generic U-Boot mechanism to detect
+extension boards connected to the HW platform, and apply the appropriate
+Device Tree overlays depending on the detected extension boards.
+
+The "extension" command comes with three sub-commands:
+
+ - "extension scan" makes the generic code call the board-specific
+   extension_board_scan() function to retrieve the list of detected
+   extension boards.
+
+ - "extension list" allows to list the detected extension boards.
+
+ - "extension apply <number>|all" allows to apply the Device Tree
+   overlay(s) corresponding to one, or all, extension boards
+
+The latter requires two environment variables to exist:
+
+ - extension_overlay_addr: the RAM address where to load the Device
+   Tree overlays
+
+ - extension_overlay_cmd: the U-Boot command to load one overlay.
+   Indeed, the location and mechanism to load DT overlays is very setup
+   specific.
+
+In order to enable this mechanism, board-specific code must implement
+the extension_board_scan() function that fills in a linked list of
+"struct extension", each describing one extension board. In addition,
+the board-specific code must select the SUPPORT_EXTENSION_SCAN Kconfig
+boolean.
+
+Usage example
+-------------
+
+1. Make sure your devicetree is loaded and set as the working fdt tree.
+
+::
+
+    => run loadfdt
+    => fdt addr $fdtaddr
+
+2. Prepare the environment variables
+
+::
+
+    => setenv extension_overlay_addr 0x88080000
+    => setenv extension_overlay_cmd 'load mmc 0:1 ${extension_overlay_addr} /boot/${extension_overlay_name}'
+
+3. Detect the plugged extension board
+
+::
+
+    => extension scan
+
+4. List the plugged extension board information and the devicetree
+   overlay name
+
+::
+
+    => extension list
+
+5. Apply the appropriate devicetree overlay
+
+For apply the selected overlay:
+
+::
+
+    => extension apply 0
+
+For apply all the overlays:
+
+::
+
+    => extension apply all
+
+Simple extension_board_scan function example
+--------------------------------------------
+
+.. code-block:: c
+
+    int extension_board_scan(struct list_head *extension_list)
+    {
+        struct extension *extension;
+
+        extension = calloc(1, sizeof(struct extension));
+        snprintf(extension->overlay, sizeof(extension->overlay), "overlay.dtbo");
+        snprintf(extension->name, sizeof(extension->name), "extension board");
+        snprintf(extension->owner, sizeof(extension->owner), "sandbox");
+        snprintf(extension->version, sizeof(extension->version), "1.1");
+        snprintf(extension->other, sizeof(extension->other), "Extension board information");
+        list_add_tail(&extension->list, extension_list);
+
+        return 1;
+    }
diff --git a/doc/usage/cmd/false.rst b/doc/usage/cmd/false.rst
new file mode 100644 (file)
index 0000000..a17fe86
--- /dev/null
@@ -0,0 +1,28 @@
+false command
+=============
+
+Synopsis
+--------
+
+::
+
+    false
+
+Description
+-----------
+
+The false command sets the return value $? to 1 (false).
+
+Example
+-------
+
+::
+
+    => false; echo $?
+    1
+    =>
+
+Configuration
+-------------
+
+The false command is only available if CONFIG_HUSH_PARSER=y.
diff --git a/doc/usage/cmd/fatinfo.rst b/doc/usage/cmd/fatinfo.rst
new file mode 100644 (file)
index 0000000..af2eba4
--- /dev/null
@@ -0,0 +1,51 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+fatinfo command
+===============
+
+Synopsis
+--------
+
+::
+
+    fatinfo <interface> <dev[:part]>
+
+Description
+-----------
+
+The fatinfo command displays information about a FAT partition.
+
+interface
+    interface for accessing the block device (mmc, sata, scsi, usb, ....)
+
+dev
+    device number
+
+part
+    partition number, defaults to 1
+
+Example
+-------
+
+Here is the output for a partition on a 32 GB SD-Card:
+
+::
+
+    => fatinfo mmc 0:1
+    Interface:  MMC
+      Device 0: Vendor: Man 00001b Snr 97560602 Rev: 13.8 Prod: EB1QT0
+                Type: Removable Hard Disk
+                Capacity: 30528.0 MB = 29.8 GB (62521344 x 512)
+    Filesystem: FAT32 "MYDISK     "
+    =>
+
+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/fatload.rst b/doc/usage/cmd/fatload.rst
new file mode 100644 (file)
index 0000000..93acb27
--- /dev/null
@@ -0,0 +1,80 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+fatload command
+===============
+
+Synopsis
+--------
+
+::
+
+    fatload <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
+
+Description
+-----------
+
+The fatload command is used to read a file from a FAT filesystem into memory.
+You can always use the :doc:`load command <load>` instead.
+
+The number of transferred bytes is saved in the environment variable filesize.
+The load address is saved in the environment variable fileaddr.
+
+interface
+    interface for accessing the block device (mmc, sata, scsi, usb, ....)
+
+dev
+    device number
+
+part
+    partition number, defaults to 0 (whole device)
+
+addr
+    load address, defaults to environment variable loadaddr or if loadaddr is
+    not set to configuration variable CONFIG_SYS_LOAD_ADDR
+
+filename
+    path to file, defaults to environment variable bootfile
+
+bytes
+    maximum number of bytes to load
+
+pos
+    number of bytes to skip
+
+addr, bytes, pos are hexadecimal numbers.
+
+If either 'pos' or 'bytes' are not aligned according to the minimum alignment
+requirement for DMA transfer (ARCH_DMA_MINALIGN) additional buffering will be
+used, a misaligned buffer warning will be printed, and performance will suffer
+for the load.
+
+Example
+-------
+
+::
+
+    => fatload mmc 0:1 ${kernel_addr_r} snp.efi
+    149280 bytes read in 11 ms (12.9 MiB/s)
+    =>
+    => fatload mmc 0:1 ${kernel_addr_r} snp.efi 1000000
+    149280 bytes read in 9 ms (15.8 MiB/s)
+    =>
+    => fatload mmc 0:1 ${kernel_addr_r} snp.efi 1000000 100
+    149024 bytes read in 10 ms (14.2 MiB/s)
+    =>
+    => fatload mmc 0:1 ${kernel_addr_r} snp.efi 10
+    16 bytes read in 1 ms (15.6 KiB/s)
+    =>
+
+Configuration
+-------------
+
+The fatload command is only available if CONFIG_CMD_FAT=y.
+
+Return value
+------------
+
+The return value $? is set to 0 (true) if the file was successfully loaded
+even if the number of bytes is less then the specified length.
+
+If an error occurs, the return value $? is set to 1 (false).
diff --git a/doc/usage/cmd/for.rst b/doc/usage/cmd/for.rst
new file mode 100644 (file)
index 0000000..f9e5049
--- /dev/null
@@ -0,0 +1,65 @@
+for command
+===========
+
+Synopis
+-------
+
+::
+
+    for <variable> in <items>; do <commands>; done
+
+Description
+-----------
+
+The for command is used to loop over a list of values and execute a series of
+commands for each of these.
+
+The counter variable of the loop is a shell variable. Please, keep in mind that
+an environment variable takes precedence over a shell variable of the same name.
+
+variable
+    name of the counter variable
+
+items
+    space separated item list
+
+commands
+    commands to execute
+
+Example
+-------
+
+::
+
+    => setenv c
+    => for c in 1 2 3; do echo item ${c}; done
+    item 1
+    item 2
+    item 3
+    => echo ${c}
+    3
+    => setenv c x
+    => for c in 1 2 3; do echo item ${c}; done
+    item x
+    item x
+    item x
+    =>
+
+The first line ensures that there is no environment variable *c*. Hence in the
+first loop the shell variable *c* is printed.
+
+After defining an environment variable of name *c* it takes precedence over the
+shell variable and the environment variable is printed.
+
+Return value
+------------
+
+The return value $? after the done statement is the return value of the last
+statement executed in the loop.
+
+::
+
+    => for i in true false; do ${i}; done; echo $?
+    1
+    => for i in false true; do ${i}; done; echo $?
+    0
diff --git a/doc/usage/cmd/load.rst b/doc/usage/cmd/load.rst
new file mode 100644 (file)
index 0000000..1efee77
--- /dev/null
@@ -0,0 +1,74 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+load command
+============
+
+Synopsis
+--------
+
+::
+
+    load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
+
+Description
+-----------
+
+The load command is used to read a file from a filesystem into memory.
+
+The number of transferred bytes is saved in the environment variable filesize.
+The load address is saved in the environment variable fileaddr.
+
+interface
+    interface for accessing the block device (mmc, sata, scsi, usb, ....)
+
+dev
+    device number
+
+part
+    partition number, defaults to 0 (whole device)
+
+addr
+    load address, defaults to environment variable loadaddr or if loadaddr is
+    not set to configuration variable CONFIG_SYS_LOAD_ADDR
+
+filename
+    path to file, defaults to environment variable bootfile
+
+bytes
+    maximum number of bytes to load
+
+pos
+    number of bytes to skip
+
+addr, bytes, pos are hexadecimal numbers.
+
+Example
+-------
+
+::
+
+    => load mmc 0:1 ${kernel_addr_r} snp.efi
+    149280 bytes read in 11 ms (12.9 MiB/s)
+    =>
+    => load mmc 0:1 ${kernel_addr_r} snp.efi 1000000
+    149280 bytes read in 9 ms (15.8 MiB/s)
+    =>
+    => load mmc 0:1 ${kernel_addr_r} snp.efi 1000000 100
+    149024 bytes read in 10 ms (14.2 MiB/s)
+    =>
+    => load mmc 0:1 ${kernel_addr_r} snp.efi 10
+    16 bytes read in 1 ms (15.6 KiB/s)
+    =>
+
+Configuration
+-------------
+
+The load command is only available if CONFIG_CMD_FS_GENERIC=y.
+
+Return value
+------------
+
+The return value $? is set to 0 (true) if the file was successfully loaded
+even if the number of bytes is less then the specified length.
+
+If an error occurs, the return value $? is set to 1 (false).
diff --git a/doc/usage/cmd/loady.rst b/doc/usage/cmd/loady.rst
new file mode 100644 (file)
index 0000000..2819cc7
--- /dev/null
@@ -0,0 +1,67 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+loady command
+=============
+
+Synopsis
+--------
+
+::
+
+    loady [addr [baud]]
+
+Description
+-----------
+
+The loady command is used to transfer a file to the device via the serial line
+using the YMODEM protocol.
+
+The number of transferred bytes is saved in environment variable filesize.
+
+addr
+    load address, defaults to environment variable loadaddr or if loadaddr is
+    not set to configuration variable CONFIG_SYS_LOAD_ADDR
+
+baud
+    baud rate for the ymodem transmission. After the transmission the baud
+    rate is reset to the original value.
+
+Example
+-------
+
+In the example below the terminal emulation program picocom was used to
+transfer a file to the device.
+
+After entering the loady command the key sequence <CTRL-A><CTRL-S> is used to
+let picocom prompt for the file name. Picocom invokes the program sz for the
+file transfer.
+
+::
+
+    => loady 80064000 115200
+    ## Ready for binary (ymodem) download to 0x80064000 at 115200 bps...
+    C
+    *** file: BOOTRISCV64.EFI
+    $ sz -b -vv BOOTRISCV64.EFI
+    Sending: BOOTRISCV64.EFI
+    Bytes Sent: 398976   BPS:7883
+    Sending:
+    Ymodem sectors/kbytes sent:   0/ 0k
+    Transfer complete
+
+    *** exit status: 0 ***
+    /1(CAN) packets, 4 retries
+    ## Total Size      = 0x0006165f = 398943 Bytes
+    => echo ${filesize}
+    6165f
+    =>
+
+Configuration
+-------------
+
+The command is only available if CONFIG_CMD_LOADB=y.
+
+Return value
+------------
+
+The return value $? is always 0 (true).
diff --git a/doc/usage/cmd/mbr.rst b/doc/usage/cmd/mbr.rst
new file mode 100644 (file)
index 0000000..bddf2f6
--- /dev/null
@@ -0,0 +1,94 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+mbr command
+===========
+
+Synopsis
+--------
+
+::
+
+    mbr verify [interface] [device no] [partition list]
+    mbr write [interface] [device no] [partition list]
+
+Description
+-----------
+
+The mbr command lets users create or verify the MBR (Master Boot Record)
+partition layout based on the provided text description. The partition
+layout is alternatively read from the 'mbr_parts' environment variable.
+This can be used in scripts to help system image flashing tools to ensure
+proper partition layout.
+
+The syntax of the text description of the partition list is similar to
+the one used by the 'gpt' command.
+
+Supported partition parameters are:
+
+* name (currently ignored)
+* start (partition start offset in bytes)
+* size (in bytes or '-' to expand it to the whole free area)
+* bootable (boolean flag)
+* id (MBR partition type)
+
+If one wants to create more than 4 partitions, an 'Extended' primary
+partition (with 0x05 ID) has to be explicitly provided as a one of the
+first 4 entries.
+
+Here is an example how to create a 6 partitions (3 on the 'extended
+volume'), some of the predefined sizes:
+
+::
+
+    => setenv mbr_parts 'name=boot,start=4M,size=128M,bootable,id=0x0e;
+        name=rootfs,size=3072M,id=0x83;
+        name=system-data,size=512M,id=0x83;
+        name=[ext],size=-,id=0x05;
+        name=user,size=-,id=0x83;
+        name=modules,size=100M,id=0x83;
+        name=ramdisk,size=8M,id=0x83'
+    => mbr write mmc 0
+
+To check if the layout on the MMC #0 storage device matches the provided
+text description one has to issue following command (assuming that
+mbr_parts environment variable is set):
+
+::
+
+    => mbr verify mmc 0
+
+The verify sub-command is especially useful in the system update scripts:
+
+::
+
+    => if mbr verify mmc 0; then
+         echo MBR layout needs to be updated
+         ...
+       fi
+
+The 'mbr write' command returns 0 on success write or 1 on failure.
+
+The 'mbr verify' returns 0 if the layout matches the one on the storage
+device or 1 if not.
+
+Configuration
+-------------
+
+To use the mbr command you must specify CONFIG_CMD_MBR=y.
+
+Return value
+------------
+
+The variable *$?* takes the following values
+
++---+------------------------------+
+| 0 | mbr write was succesful      |
++---+------------------------------+
+| 1 | mbr write failed             |
++---+------------------------------+
+| 0 | mbr verify was succesful     |
++---+------------------------------+
+| 1 | mbr verify was not succesful |
++---+------------------------------+
+|-1 | invalid arguments            |
++---+------------------------------+
diff --git a/doc/usage/cmd/md.rst b/doc/usage/cmd/md.rst
new file mode 100644 (file)
index 0000000..7e9944e
--- /dev/null
@@ -0,0 +1,104 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+md command
+==========
+
+Synopis
+-------
+
+::
+
+    md <address>[<data_size>] [<length>]
+
+Description
+-----------
+
+The md command is used to dump the contents of memory. It uses a standard
+format that includes the address, hex data and ASCII display. It supports
+various data sizes and uses the endianness of the target.
+
+The specified data_size and length become the defaults for future memory
+commands commands.
+
+address
+    start address to display
+
+data_size
+    size of each value to display (defaults to .l):
+
+    =========  ===================
+    data_size  Output size
+    =========  ===================
+    .b         byte
+    .w         word (16 bits)
+    .l         long (32 bits)
+    .q         quadword (64 bits)
+    =========  ===================
+
+length
+    number of values to dump. Defaults to 40 (0d64). Note that this is not
+    the same as the number of bytes, unless .b is used.
+
+Note that the format of 'md.b' can be emulated from linux with::
+
+    # This works but requires using sed to get the extra spaces
+    # <addr> is the address, <f> is the filename
+    xxd -o <addr> -g1 <f> |sed 's/  /    /' >bad
+
+    # This uses a single tool but the offset always starts at 0
+    # <f> is the filename
+    hexdump -v -e '"%08.8_ax: " 16/1 "%02x " "    "' -e '16/1 "%_p" "\n" ' <f>
+
+
+Example
+-------
+
+::
+
+    => md 10000
+    00010000: 00010000 00000000 f0f30f00 00005596    .............U..
+    00010010: 10011010 00000000 10011010 00000000    ................
+    00010020: 10011050 00000000 b96d4cd8 00007fff    P........Lm.....
+    00010030: 00000000 00000000 f0f30f18 00005596    .............U..
+    00010040: 10011040 00000000 10011040 00000000    @.......@.......
+    00010050: b96d4cd8 00007fff 10011020 00000000    .Lm..... .......
+    00010060: 00000003 000000c3 00000000 00000000    ................
+    00010070: 00000000 00000000 f0e892f3 00005596    .............U..
+    00010080: 00000000 000000a1 00000000 00000000    ................
+    00010090: 00000000 00000000 f0e38aa6 00005596    .............U..
+    000100a0: 00000000 000000a6 00000022 00000000    ........".......
+    000100b0: 00000001 00000000 f0e38aa1 00005596    .............U..
+    000100c0: 00000000 000000be 00000000 00000000    ................
+    000100d0: 00000000 00000000 00000000 00000000    ................
+    000100e0: 00000000 00000000 00000000 00000000    ................
+    000100f0: 00000000 00000000 00000000 00000000    ................
+    => md.b 10000
+    00010000: 00 00 01 00 00 00 00 00 00 0f f3 f0 96 55 00 00    .............U..
+    00010010: 10 10 01 10 00 00 00 00 10 10 01 10 00 00 00 00    ................
+    00010020: 50 10 01 10 00 00 00 00 d8 4c 6d b9 ff 7f 00 00    P........Lm.....
+    00010030: 00 00 00 00 00 00 00 00 18 0f f3 f0 96 55 00 00    .............U..
+    => md.b 10000 10
+    00010000: 00 00 01 00 00 00 00 00 00 0f f3 f0 96 55 00 00    .............U..
+    =>
+    00010010: 10 10 01 10 00 00 00 00 10 10 01 10 00 00 00 00    ................
+    =>
+    00010020: 50 10 01 10 00 00 00 00 d8 4c 6d b9 ff 7f 00 00    P........Lm.....
+    =>
+    => md.q 10000
+    00010000: 0000000000010000 00005596f0f30f00    .............U..
+    00010010: 0000000010011010 0000000010011010    ................
+    00010020: 0000000010011050 00007fffb96d4cd8    P........Lm.....
+    00010030: 0000000000000000 00005596f0f30f18    .............U..
+    00010040: 0000000010011040 0000000010011040    @.......@.......
+    00010050: 00007fffb96d4cd8 0000000010011020    .Lm..... .......
+    00010060: 000000c300000003 0000000000000000    ................
+    00010070: 0000000000000000 00005596f0e892f3    .............U..
+
+The empty commands cause a 'repeat', so that md shows the next available data
+in the same format as before.
+
+
+Return value
+------------
+
+The return value $? is always 0 (true).
diff --git a/doc/usage/cmd/mmc.rst b/doc/usage/cmd/mmc.rst
new file mode 100644 (file)
index 0000000..55e3f9c
--- /dev/null
@@ -0,0 +1,268 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+mmc command
+============
+
+Synopsis
+--------
+
+::
+
+    mmc info
+    mmc read addr blk# cnt
+    mmc write addr blk# cnt
+    mmc erase blk# cnt
+    mmc rescan [mode]
+    mmc part
+    mmc dev [dev] [part] [mode]
+    mmc list
+    mmc wp
+    mmc bootbus <dev> <boot_bus_width> <reset_boot_bus_width> <boot_mode>
+    mmc bootpart-resize <dev> <dev part size MB> <RPMB part size MB>
+    mmc partconf <dev> [[varname] | [<boot_ack> <boot_partition> <partition_access>]]
+    mmc rst-function <dev> <value>
+
+Description
+-----------
+
+The mmc command is used to control MMC(eMMC/SD) device.
+
+The 'mmc info' command displays information (Manufacturer ID, OEM, Name, Bus Speed, Mode, ...) of MMC device.
+
+The 'mmc read' command reads raw data to memory address from MMC device with block offset and count.
+
+The 'mmc write' command writes raw data to MMC device from memory address with block offset and count.
+
+    addr
+        memory address
+    blk#
+        start block offset
+    cnt
+        block count
+
+The 'mmc erase' command erases *cnt* blocks on the MMC device starting at block *blk#*.
+
+    blk#
+        start block offset
+    cnt
+        block count
+
+The 'mmc rescan' command scans the available MMC device.
+
+   mode
+       speed mode to set.
+       CONFIG_MMC_SPEED_MODE_SET should be enabled. The requested speed mode is
+       passed as a decimal number according to the following table:
+
+       ========== ==========================
+       Speed mode Description
+       ========== ==========================
+           0      MMC legacy
+           1      MMC High Speed (26MHz)
+           2      SD High Speed (50MHz)
+           3      MMC High Speed (52MHz)
+           4      MMC DDR52 (52MHz)
+           5      UHS SDR12 (25MHz)
+           6      UHS SDR25 (50MHz)
+           7      UHS SDR50 (100MHz)
+           8      UHS DDR50 (50MHz)
+           9      UHS SDR104 (208MHz)
+          10      HS200 (200MHz)
+          11      HS400 (200MHz)
+          12      HS400ES (200MHz)
+       ========== ==========================
+
+       A speed mode can be set only if it has already been enabled in the device tree
+
+The 'mmc part' command displays the list available partition on current mmc device.
+
+The 'mmc dev' command shows or set current mmc device.
+
+    dev
+        device number to change
+    part
+        partition number to change
+
+   mode
+       speed mode to set.
+       CONFIG_MMC_SPEED_MODE_SET should be enabled. The requested speed mode is
+       passed as a decimal number according to the following table:
+
+       ========== ==========================
+       Speed mode Description
+       ========== ==========================
+           0      MMC legacy
+           1      MMC High Speed (26MHz)
+           2      SD High Speed (50MHz)
+           3      MMC High Speed (52MHz)
+           4      MMC DDR52 (52MHz)
+           5      UHS SDR12 (25MHz)
+           6      UHS SDR25 (50MHz)
+           7      UHS SDR50 (100MHz)
+           8      UHS DDR50 (50MHz)
+           9      UHS SDR104 (208MHz)
+          10      HS200 (200MHz)
+          11      HS400 (200MHz)
+          12      HS400ES (200MHz)
+       ========== ==========================
+
+       A speed mode can be set only if it has already been enabled in the device tree
+
+The 'mmc list' command displays the list available devices.
+
+The 'mmc wp' command enables "power on write protect" function for boot partitions.
+
+The 'mmc bootbus' command sets the BOOT_BUS_WIDTH field. (*Refer to eMMC specification*)
+
+    boot_bus_width
+        0x0
+            x1 (sdr) or x4(ddr) buswidth in boot operation mode (default)
+        0x1
+            x4 (sdr/ddr) buswidth in boot operation mode
+        0x2
+            x8 (sdr/ddr) buswidth in boot operation mode
+        0x3
+            Reserved
+
+    reset_boot_bus_width
+        0x0
+            Reset buswidth to x1, Single data reate and backward compatible timing after boot operation (default)
+        0x1
+            Retain BOOT_BUS_WIDTH and BOOT_MODE value after boot operation. This is relevant to Push-pull mode operation only
+
+    boot_mode
+        0x0
+            Use single data rate + backward compatible timing in boot operation (default)
+        0x1
+            Use single data rate + High Speed timing in boot operation mode
+        0x2
+            Use dual data rate in boot operation
+        0x3
+            Reserved
+
+The 'mmc partconf' command shows or changes PARTITION_CONFIG field.
+
+    varname
+        When showing the PARTITION_CONFIG, an optional environment variable to store the current boot_partition value into.
+    boot_ack
+        boot acknowledge value
+    boot_partition
+        boot partition to enable for boot
+            0x0
+                Device not boot enabled(default)
+            0x1
+                Boot partition1 enabled for boot
+            0x2
+                Boot partition2 enabled for boot
+            0x7
+                User area enabled for boot
+            others
+                Reserved
+    partition_access
+        partitions to access
+
+The 'mmc bootpart-resize' command changes sizes of boot and RPMB partitions.
+
+    dev
+        device number
+    boot part size MB
+        target size of boot partition
+    RPMB part size MB
+        target size of RPMB partition
+
+The 'mmc rst-function' command changes the RST_n_FUNCTION field.
+**WARNING** : This is a write-once field. (*Refer to eMMC specification*)
+
+    value
+        0x0
+            RST_n signal is temporarily disabled (default)
+        0x1
+            RST_n signal is permanently enabled
+        0x2
+            RST_n signal is permanently disabled
+        0x3
+            Reserved
+
+
+Examples
+--------
+
+The 'mmc info' command displays device's capabilities:
+::
+
+    => mmc info
+    Device: EXYNOS DWMMC
+    Manufacturer ID: 45
+    OEM: 100
+    Name: SDW16
+    Bus Speed: 52000000
+    Mode: MMC DDR52 (52MHz)
+    Rd Block Len: 512
+    MMC version 5.0
+    High Capacity: Yes
+    Capacity: 14.7 GiB
+    Bus Width: 8-bit DDR
+    Erase Group Size: 512 KiB
+    HC WP Group Size: 8 MiB
+    User Capacity: 14.7 GiB WRREL
+    Boot Capacity: 4 MiB ENH
+    RPMB Capacity: 4 MiB ENH
+    Boot area 0 is not write protected
+    Boot area 1 is not write protected
+
+The raw data can be read/written via 'mmc read/write' command:
+::
+
+    => mmc read 0x40000000 0x5000 0x100
+    MMC read: dev # 0, block # 20480, count 256 ... 256 blocks read: OK
+
+    => mmc write 0x40000000 0x5000 0x10
+    MMC write: dev # 0, block # 20480, count 256 ... 256 blocks written: OK
+
+The partition list can be shown via 'mmc part' command:
+::
+
+    => mmc part
+    Partition Map for MMC device 0  --   Partition Type: DOS
+
+    Part    Start Sector    Num Sectors     UUID            Type
+      1     8192            131072          dff8751a-01     0e Boot
+      2     139264          6291456         dff8751a-02     83
+      3     6430720         1048576         dff8751a-03     83
+      4     7479296         23298048        dff8751a-04     05 Extd
+      5     7481344         307200          dff8751a-05     83
+      6     7790592         65536           dff8751a-06     83
+      7     7858176         16384           dff8751a-07     83
+      8     7876608         22900736        dff8751a-08     83
+
+The current device can be shown or set via 'mmc dev' command:
+::
+
+    => mmc dev
+    switch to partitions #0, OK
+    mmc0(part0) is current device
+    => mmc dev 2 0
+    switch to partitions #0, OK
+    mmc2 is current device
+    => mmc dev 0 1 4
+    switch to partitions #1, OK
+    mmc0(part 1) is current device
+
+The list of available devices can be shown via 'mmc list' command:
+::
+
+    => mmc list
+    mmc list
+    EXYNOS DWMMC: 0 (eMMC)
+    EXYNOS DWMMC: 2 (SD)
+
+Configuration
+-------------
+
+The mmc command is only available if CONFIG_CMD_MMC=y.
+Some commands need to enable more configuration.
+
+write, erase
+    CONFIG_MMC_WRITE
+bootbus, bootpart-resize, partconf, rst-function
+    CONFIG_SUPPORT_EMMC_BOOT=y
diff --git a/doc/usage/cmd/pinmux.rst b/doc/usage/cmd/pinmux.rst
new file mode 100644 (file)
index 0000000..9f4392c
--- /dev/null
@@ -0,0 +1,95 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+pinmux command
+==============
+
+Synopsis
+--------
+
+::
+
+    pinmux list
+    pinmux dev [pincontroller-name]
+    pinmux status [-a | pin-name]
+
+Description
+-----------
+
+The pinmux command is used to show the pin-controller muxing.
+
+The 'pinmux list' command diplays the available pin-controller.
+
+The 'pinmux dev' command selects the pin-controller for next commands.
+
+    pincontroller-name
+        name of the pin-controller to select
+
+The 'pinmux status' command displays the pin muxing information.
+
+    \-a
+        display pin muxing of all pin-controllers.
+    pin-name
+        name of the pin to display
+
+Example
+-------
+
+::
+
+    => pinmux list
+    | Device                        | Driver                        | Parent
+    | pinctrl-gpio                  | sandbox_pinctrl_gpio          | root_driver
+    | pinctrl                       | sandbox_pinctrl               | root_driver
+    =>
+    => pinmux dev pinctrl
+    dev: pinctrl
+    =>
+    => pinmux status
+    P0        : UART TX.
+    P1        : UART RX.
+    P2        : I2S SCK.
+    P3        : I2S SD.
+    P4        : I2S WS.
+    P5        : GPIO0 bias-pull-up input-disable.
+    P6        : GPIO1 drive-open-drain.
+    P7        : GPIO2 bias-pull-down input-enable.
+    P8        : GPIO3 bias-disable.
+    =>
+    => pinmux status P0
+    P0        : UART TX.
+    =>
+    => pinmux status -a
+    --------------------------
+    pinctrl-gpio:
+    a0        : gpio input .
+    a1        : gpio input .
+    a2        : gpio input .
+    a3        : gpio input .
+    a4        : gpio input .
+    a5        : gpio output .
+    a6        : gpio output .
+    a7        : gpio input .
+    a8        : gpio input .
+    a9        : gpio input .
+    --------------------------
+    pinctrl:
+    P0        : UART TX.
+    P1        : UART RX.
+    P2        : I2S SCK.
+    P3        : I2S SD.
+    P4        : I2S WS.
+    P5        : GPIO0 bias-pull-up input-disable.
+    P6        : GPIO1 drive-open-drain.
+    P7        : GPIO2 bias-pull-down input-enable.
+    P8        : GPIO3 bias-disable.
+
+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/pstore.rst b/doc/usage/cmd/pstore.rst
new file mode 100644 (file)
index 0000000..1c83745
--- /dev/null
@@ -0,0 +1,93 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+pstore command
+==============
+
+Synopsis
+--------
+
+::
+
+    pstore set <addr> <len> [record-size] [console-size] [ftrace-size] [pmsg_size] [ecc-size]
+    pstore display [record-type] [nb]
+    pstore save <interface> <dev[:part]> <directory-path>
+
+Design
+------
+
+Linux PStore and Ramoops modules (Linux config options PSTORE and PSTORE_RAM)
+allow to use memory to pass data from the dying breath of a crashing kernel to
+its successor. This command allows to read those records from U-Boot command
+line.
+
+Ramoops is an oops/panic logger that writes its logs to RAM before the system
+crashes. It works by logging oopses and panics in a circular buffer. Ramoops
+needs a system with persistent RAM so that the content of that area can survive
+after a restart.
+
+Ramoops uses a predefined memory area to store the dump.
+
+Ramoops parameters can be passed as kernel parameters or through Device Tree,
+i.e.::
+
+    ramoops.mem_address=0x30000000 ramoops.mem_size=0x100000 ramoops.record_size=0x2000 ramoops.console_size=0x2000 memmap=0x100000$0x30000000
+
+The same values should be set in U-Boot to be able to retrieve the records.
+This values can be set at build time in U-Boot configuration file, or at runtime.
+U-Boot automatically patches the Device Tree to pass the Ramoops parameters to
+the kernel.
+
+The PStore configuration parameters are:
+
+======================= ==========
+ Name                   Default
+======================= ==========
+CMD_PSTORE_MEM_ADDR
+CMD_PSTORE_MEM_SIZE     0x10000
+CMD_PSTORE_RECORD_SIZE  0x1000
+CMD_PSTORE_CONSOLE_SIZE 0x1000
+CMD_PSTORE_FTRACE_SIZE  0x1000
+CMD_PSTORE_PMSG_SIZE    0x1000
+CMD_PSTORE_ECC_SIZE     0
+======================= ==========
+
+Records sizes should be a power of 2.
+The memory size and the record/console size must be non-zero.
+
+Multiple 'dump' records can be stored in the memory reserved for PStore.
+The memory size has to be larger than the sum of the record sizes, i.e.::
+
+    MEM_SIZE >= RECORD_SIZE * n + CONSOLE_SIZE + FTRACE_SIZE + PMSG_SIZE
+
+Usage
+-----
+
+Generate kernel crash
+~~~~~~~~~~~~~~~~~~~~~
+
+For test purpose, you can generate a kernel crash by setting reboot timeout to
+10 seconds and trigger a panic
+
+.. code-block:: console
+
+    $ sudo sh -c "echo 1 > /proc/sys/kernel/sysrq"
+    $ sudo sh -c "echo 10 > /proc/sys/kernel/panic"
+    $ sudo sh -c "echo c > /proc/sysrq-trigger"
+
+Retrieve logs in U-Boot
+~~~~~~~~~~~~~~~~~~~~~~~
+
+First of all, unless PStore parameters as been set during U-Boot configuration
+and match kernel ramoops parameters, it needs to be set using 'pstore set', e.g.::
+
+    => pstore set 0x30000000 0x100000 0x2000 0x2000
+
+Then all available dumps can be displayed
+using::
+
+    => pstore display
+
+Or saved to an existing directory in an Ext2 or Ext4 partition, e.g. on root
+directory of 1st partition of the 2nd MMC::
+
+    => pstore save mmc 1:1 /
diff --git a/doc/usage/cmd/qfw.rst b/doc/usage/cmd/qfw.rst
new file mode 100644 (file)
index 0000000..b3704b9
--- /dev/null
@@ -0,0 +1,89 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+qfw command
+===========
+
+Synopsis
+--------
+
+::
+
+    qfw list
+    qfw cpus
+    qfw load [kernel_addr [initrd_addr]]
+
+Description
+-----------
+
+The *qfw* command is used to retrieve information form the QEMU firmware.
+
+The *qfw list* sub-command displays the QEMU firmware files.
+
+The *qfw cpus* sub-command displays the available CPUs.
+
+The *qfw load* command is used to load a kernel and an initial RAM disk.
+
+kernel_addr
+    address to which the file specified by the -kernel parameter of QEMU shall
+    be loaded. Defaults to environment variable *loadaddr* and further to
+    the value of *CONFIG_SYS_LOAD_ADDR*.
+
+initrd_addr
+    address to which the file specified by the -initrd parameter of QEMU shall
+    be loaded. Defaults to environment variable *ramdiskaddr* and further to
+    the value of *CONFIG_RAMDISK_ADDR*.
+
+Examples
+--------
+
+QEMU firmware files are listed via the *qfw list* command:
+
+::
+
+    => qfw list
+    etc/boot-fail-wait
+    etc/smbios/smbios-tables
+    etc/smbios/smbios-anchor
+    etc/e820
+    genroms/kvmvapic.bin
+    genroms/linuxboot.bin
+    etc/system-states
+    etc/acpi/tables
+    etc/table-loader
+    etc/tpm/log
+    etc/acpi/rsdp
+    bootorder
+
+The available CPUs can be shown via the *qfw cpus* command:
+
+::
+
+    => qfw cpu
+    2 cpu(s) online
+
+The *-kernel* and *-initrd* parameters allow to specify a kernel and an
+initial RAM disk for QEMU:
+
+.. code-block:: bash
+
+   $ qemu-system-x86_64 -machine pc-i440fx-2.5 -bios u-boot.rom -m 1G \
+       -nographic -kernel vmlinuz -initrd initrd
+
+Now the kernel and the initial RAM disk can be loaded to the U-Boot memory via
+the *qfw load* command and booted thereafter.
+
+::
+
+    => qfw load ${kernel_addr_r} ${ramdisk_addr_r}
+    loading kernel to address 0000000001000000 size 5048f0 initrd 0000000004000000 size 3c94891
+    => zboot 1000000 5048f0 4000000 3c94891
+    Valid Boot Flag
+    Magic signature found
+    Linux kernel version 4.19.0-14-amd64 (debian-kernel@lists.debian.org) #1 SMP Debian 4.19.171-2 (2021-01-30)
+    Building boot_params at 0x00090000
+    Loading bzImage at address 100000 (5260160 bytes)
+
+Configuration
+-------------
+
+The qfw command is only available if CONFIG_CMD_QFW=y.
diff --git a/doc/usage/cmd/reset.rst b/doc/usage/cmd/reset.rst
new file mode 100644 (file)
index 0000000..384d5d6
--- /dev/null
@@ -0,0 +1,26 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+reset command
+=============
+
+Synopsis
+--------
+
+::
+
+    reset [-w]
+
+Description
+-----------
+
+Perform reset of the CPU. By default does COLD reset, which resets CPU,
+DDR and peripherals, on some boards also resets external PMIC.
+
+-w
+    Do warm WARM, reset CPU but keep peripheral/DDR/PMIC active.
+
+
+Return value
+------------
+
+The return value $? is always set to 0 (true).
diff --git a/doc/usage/cmd/sbi.rst b/doc/usage/cmd/sbi.rst
new file mode 100644 (file)
index 0000000..96d8861
--- /dev/null
@@ -0,0 +1,49 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+sbi command
+===========
+
+Synopsis
+--------
+
+::
+
+    sbi
+
+Description
+-----------
+
+The sbi command is used to display information about the SBI (Supervisor Binary
+Interface) implementation on RISC-V systems.
+
+The output may look like:
+
+::
+
+    => sbi
+    SBI 0.2
+    OpenSBI
+    Extensions:
+      sbi_set_timer
+      sbi_console_putchar
+      sbi_console_getchar
+      sbi_clear_ipi
+      sbi_send_ipi
+      sbi_remote_fence_i
+      sbi_remote_sfence_vma
+      sbi_remote_sfence_vma_asid
+      sbi_shutdown
+      SBI Base Functionality
+      Timer Extension
+      IPI Extension
+      RFENCE Extension
+      Hart State Management Extension
+
+The first line indicates the version of the RISC-V SBI specification.
+The second line indicates the implementation.
+The further lines enumerate the implemented extensions.
+
+Configuration
+-------------
+
+To use the sbi command you must specify CONFIG_CMD_SBI=y.
diff --git a/doc/usage/cmd/scp03.rst b/doc/usage/cmd/scp03.rst
new file mode 100644 (file)
index 0000000..7ff87ed
--- /dev/null
@@ -0,0 +1,33 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+scp03 command
+=============
+
+Synopsis
+--------
+
+::
+
+    scp03 enable
+    scp03 provision
+
+Description
+-----------
+
+The *scp03* command calls into a Trusted Application executing in a
+Trusted Execution Environment to enable (if present) the Secure
+Channel Protocol 03 stablished between the processor and the secure
+element.
+
+This protocol encrypts all the communication between the processor and
+the secure element using a set of pre-defined keys. These keys can be
+rotated (provisioned) using the *provision* request.
+
+See also
+--------
+
+For some information on the internals implemented in the TEE, please
+check the GlobalPlatform documentation on `Secure Channel Protocol '03'`_
+
+.. _Secure Channel Protocol '03':
+   https://globalplatform.org/wp-content/uploads/2014/07/GPC_2.3_D_SCP03_v1.1.2_PublicRelease.pdf
diff --git a/doc/usage/cmd/setexpr.rst b/doc/usage/cmd/setexpr.rst
new file mode 100644 (file)
index 0000000..2e511b1
--- /dev/null
@@ -0,0 +1,148 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+setexpr command
+===============
+
+Synopsis
+--------
+
+::
+
+    setexpr[.b, .w, .l .s] <name> [*]<value> <op> [*]<value2>
+    setexpr[.b, .w, .l] <name> [*]<value>
+    setexpr <name> fmt <format> [value]...
+    setexpr <name> gsub r s [t]
+    setexpr <name> sub r s [t]
+
+Description
+-----------
+
+The setexpr command is used to set an environment variable to the result
+of an evaluation.
+
+setexpr[.b, .w, .l .s] <name> [*]<value> <op> [*]<value2>
+     Set environment variable <name> to the result of the evaluated
+     expression specified by <op>.
+
+setexpr[.b, .w, .l] name [*]value
+     Load <value> into environment variable <name>
+
+setexpr name fmt <format> value
+     Set environment variable <name> to the result of the C like
+     format string <format> evaluation of <value>.
+
+setexpr name gsub <r> <s> [<t>]
+     For each substring matching the regular expression <r> in the
+     string <t>, substitute the string <s>.
+     The result is assigned to <name>.
+     If <t> is not supplied, use the old value of <name>.
+
+setexpr name sub <r> <s> [<t>]
+     Just like gsub(), but replace only the first matching substring
+
+The setexpr command takes the following arguments:
+
+format
+    This parameter contains a C or Bash like format string.
+    The number of arguments is limited to 4.
+    The following format types are supported:
+
+    c
+        single character
+    d, i
+        decimal value
+    o
+        octal value
+    s
+        string
+    u
+        unsigned decimal value
+    x, X
+        hexadecimal value
+    '%'
+        no conversion, instead a % character will be written
+
+    Backslash escapes:
+
+    \" = double quote
+    \\ = backslash
+    \a = alert (bell)
+    \b = backspace
+    \c = produce no further output
+    \f = form feed
+    \n = new line
+    \r = carriage return
+    \t = horizontal tab
+    \v = vertical tab
+    \NNN = octal number (NNN is 0 to 3 digits)
+
+name
+    The name of the environment variable to be set
+
+op
+    '|'
+        name = value | value2
+    '&'
+        name = value & value2
+    '+'
+        name = value + value2
+        (This is the only operator supported for strings.
+       It acts as concatenation operator on strings)
+    '^'
+        name = value ^ value2
+    '-'
+        name = value - value2
+    '*'
+        name = value * value2
+    '/'
+        name = value / value2
+    '%'
+        name = value % value2
+
+r
+    Regular expression
+
+s
+    Substitution string
+
+t
+    string
+
+value
+    Can either be an integer value, a string.
+    If the pointer prefix '*' is given value is treated as memory address.
+
+value2
+    See value
+
+Example
+-------
+
+::
+
+    => setexpr foo fmt %d 0x100
+    => echo $foo
+    256
+    =>
+
+    => setexpr foo fmt 0x%08x 63
+    => echo $foo
+    0x00000063
+    =>
+
+    => setexpr foo fmt %%%o 8
+    => echo $foo
+    %10
+    =>
+
+Configuration
+-------------
+
+The setexpr gsub and sub operations are only available if CONFIG_REGEX=y.
+
+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/sf.rst b/doc/usage/cmd/sf.rst
new file mode 100644 (file)
index 0000000..71bd1be
--- /dev/null
@@ -0,0 +1,245 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+sf command
+==========
+
+Synopis
+-------
+
+::
+
+    sf probe [[[<bus>:]<cs>] [<hz> [<mode>]]]
+    sf read <addr> <offset>|<partition> <len>
+    sf write <addr> <offset>|<partition> <len>
+    sf erase <offset>|<partition> <len>
+    sf update <addr> <offset>|<partition> <len>
+    sf protect lock|unlock <sector> <len>
+    sf test <offset>|<partition> <len>
+
+Description
+-----------
+
+The *sf* command is used to access SPI flash, supporting read/write/erase and
+a few other functions.
+
+Probe
+-----
+
+The flash must first be probed with *sf probe* before any of the other
+subcommands can be used. All of the parameters are optional:
+
+bus
+       SPI bus number containing the SPI-flash chip, e.g. 0. If you don't know
+       the number, you can use 'dm uclass' to see all the spi devices,
+       and check the value for 'seq' for each one (here 0 and 2)::
+
+          uclass 89: spi
+          0     spi@0 @ 05484960, seq 0
+          1     spi@1 @ 05484b40, seq 2
+
+cs
+       SPI chip-select to use for the chip. This is often 0 and can be omitted,
+       but in some cases multiple slaves are attached to a SPI controller,
+       selected by a chip-select line for each one.
+
+hz
+       Speed of the SPI bus in hertz. This normally defaults to 100000, i.e.
+       100KHz, which is very slow. Note that if the device exists in the
+       device tree, there might be a speed provided there, in which case this
+       setting is ignored.
+
+mode
+       SPI mode to use:
+
+       =====  ================
+       Mode   Meaning
+       =====  ================
+       0      CPOL=0, CPHA=0
+       1      CPOL=0, CPHA=1
+       2      CPOL=1, CPHA=0
+       3      CPOL=1, CPHA=1
+       =====  ================
+
+       Clock phase (CPHA) 0 means that data is transferred (sampled) on the
+       first clock edge; 1 means the second.
+
+       Clock polarity (CPOL) controls the idle state of the clock, 0 for low,
+       1 for high.
+       The active state is the opposite of idle.
+
+       You may find this `SPI documentation`_ useful.
+
+Parameters for other subcommands (described below) are as follows:
+
+addr
+       Memory address to start transfer
+
+offset
+       Flash offset to start transfer
+
+partition
+       If the parameter is not numeric, it is assumed to be a partition
+       description in the format <dev_type><dev_num>,<part_num> which is not
+       covered here. This requires CONFIG_CMD_MTDPARTS.
+
+len
+       Number of bytes to transfer
+
+Read
+~~~~
+
+Use *sf read* to read from SPI flash to memory. The read will fail if an
+attempt is made to read past the end of the flash.
+
+
+Write
+~~~~~
+
+Use *sf write* to write from memory to SPI flash. The SPI flash should be
+erased first, since otherwise the result is undefined.
+
+The write will fail if an attempt is made to read past the end of the flash.
+
+
+Erase
+~~~~~
+
+Use *sf erase* to erase a region of SPI flash. The erase will fail if any part
+of the region to be erased is protected or lies past the end of the flash. It
+may also fail if the start offset or length are not aligned to an erase region
+(e.g. 256 bytes).
+
+
+Update
+~~~~~~
+
+Use *sf update* to automatically erase and update a region of SPI flash from
+memory. This works a sector at a time (typical 4KB or 64KB). For each
+sector it first checks if the sector already has the right data. If so it is
+skipped. If not, the sector is erased and the new data written. Note that if
+the length is not a multiple of the erase size, the space after the data in
+the last sector will be erased. If the offset does not start at the beginning
+of an erase block, the operation will fail.
+
+Speed statistics are shown including the number of bytes that were already
+correct.
+
+
+Protect
+~~~~~~~
+
+SPI-flash chips often have a protection feature where the chip is split up into
+regions which can be locked or unlocked. With *sf protect* it is possible to
+change these settings, if supported by the driver.
+
+lock|unlock
+       Selects whether to lock or unlock the sectors
+
+<sector>
+       Start sector number to lock/unlock. This may be the byte offset or some
+       other value, depending on the chip.
+
+<len>
+       Number of bytes to lock/unlock
+
+
+Test
+~~~~
+
+A convenient and fast *sf test* subcommand provides a way to check that SPI
+flash is working as expected. This works in four stages:
+
+   * erase - erases the entire region
+   * check - checks that the region is erased
+   * write - writes a test pattern to the region, consisting of the U-Boot code
+   * read - reads back the test pattern to check that it was written correctly
+
+Memory is allocated for two buffers, each <len> bytes in size. At typical
+size is 64KB to 1MB. The offset and size must be aligned to an erase boundary.
+
+Note that this test will fail if any part of the SPI flash is write-protected.
+
+
+Examples
+--------
+
+This first example uses sandbox::
+
+   => sf probe
+   SF: Detected m25p16 with page size 256 Bytes, erase size 64 KiB, total 2 MiB
+   => sf read 1000 1100 80000
+   device 0 offset 0x1100, size 0x80000
+   SF: 524288 bytes @ 0x1100 Read: OK
+   => md 1000
+   00001000: edfe0dd0 f33a0000 78000000 84250000    ......:....x..%.
+   00001010: 28000000 11000000 10000000 00000000    ...(............
+   00001020: 6f050000 0c250000 00000000 00000000    ...o..%.........
+   00001030: 00000000 00000000 00000000 00000000    ................
+   00001040: 00000000 00000000 00000000 00000000    ................
+   00001050: 00000000 00000000 00000000 00000000    ................
+   00001060: 00000000 00000000 00000000 00000000    ................
+   00001070: 00000000 00000000 01000000 00000000    ................
+   00001080: 03000000 04000000 00000000 01000000    ................
+   00001090: 03000000 04000000 0f000000 01000000    ................
+   000010a0: 03000000 08000000 1b000000 646e6173    ............sand
+   000010b0: 00786f62 03000000 08000000 21000000    box............!
+   000010c0: 646e6173 00786f62 01000000 61696c61    sandbox.....alia
+   000010d0: 00736573 03000000 07000000 2c000000    ses............,
+   000010e0: 6332692f 00003040 03000000 07000000    /i2c@0..........
+   000010f0: 31000000 6963702f 00003040 03000000    ...1/pci@0......
+   => sf erase 0 80000
+   SF: 524288 bytes @ 0x0 Erased: OK
+   => sf read 1000 1100 80000
+   device 0 offset 0x1100, size 0x80000
+   SF: 524288 bytes @ 0x1100 Read: OK
+   => md 1000
+   00001000: ffffffff ffffffff ffffffff ffffffff    ................
+   00001010: ffffffff ffffffff ffffffff ffffffff    ................
+   00001020: ffffffff ffffffff ffffffff ffffffff    ................
+   00001030: ffffffff ffffffff ffffffff ffffffff    ................
+   00001040: ffffffff ffffffff ffffffff ffffffff    ................
+   00001050: ffffffff ffffffff ffffffff ffffffff    ................
+   00001060: ffffffff ffffffff ffffffff ffffffff    ................
+   00001070: ffffffff ffffffff ffffffff ffffffff    ................
+   00001080: ffffffff ffffffff ffffffff ffffffff    ................
+   00001090: ffffffff ffffffff ffffffff ffffffff    ................
+   000010a0: ffffffff ffffffff ffffffff ffffffff    ................
+   000010b0: ffffffff ffffffff ffffffff ffffffff    ................
+   000010c0: ffffffff ffffffff ffffffff ffffffff    ................
+   000010d0: ffffffff ffffffff ffffffff ffffffff    ................
+   000010e0: ffffffff ffffffff ffffffff ffffffff    ................
+   000010f0: ffffffff ffffffff ffffffff ffffffff    ................
+
+This second example is running on coral, an x86 Chromebook::
+
+   => sf probe
+   SF: Detected w25q128fw with page size 256 Bytes, erase size 4 KiB, total 16 MiB
+   => sf erase 300000 80000
+   SF: 524288 bytes @ 0x300000 Erased: OK
+   => sf update 1110000 300000 80000
+   device 0 offset 0x300000, size 0x80000
+   524288 bytes written, 0 bytes skipped in 0.457s, speed 1164578 B/s
+
+   # This does nothing as the flash is already updated
+   => sf update 1110000 300000 80000
+   device 0 offset 0x300000, size 0x80000
+   0 bytes written, 524288 bytes skipped in 0.196s, speed 2684354 B/s
+   => sf test 00000 80000   # try a protected region
+   SPI flash test:
+   Erase failed (err = -5)
+   Test failed
+   => sf test 800000 80000
+   SPI flash test:
+   0 erase: 18 ticks, 28444 KiB/s 227.552 Mbps
+   1 check: 192 ticks, 2666 KiB/s 21.328 Mbps
+   2 write: 227 ticks, 2255 KiB/s 18.040 Mbps
+   3 read: 189 ticks, 2708 KiB/s 21.664 Mbps
+   Test passed
+   0 erase: 18 ticks, 28444 KiB/s 227.552 Mbps
+   1 check: 192 ticks, 2666 KiB/s 21.328 Mbps
+   2 write: 227 ticks, 2255 KiB/s 18.040 Mbps
+   3 read: 189 ticks, 2708 KiB/s 21.664 Mbps
+
+
+.. _SPI documentation:
+   https://en.wikipedia.org/wiki/Serial_Peripheral_Interface
diff --git a/doc/usage/cmd/size.rst b/doc/usage/cmd/size.rst
new file mode 100644 (file)
index 0000000..f0c35e4
--- /dev/null
@@ -0,0 +1,40 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+size command
+============
+
+Synopsis
+--------
+
+::
+
+    size <interface> <dev[:part]> <filename>
+
+Description
+-----------
+
+The size command determines the size of a file and sets the environment variable
+filesize to this value. If filename points to a directory, the value is set to
+zero.
+
+If the command fails, the filesize environment variable is not changed.
+
+dev
+    device number
+
+part
+    partition number, defaults to 1
+
+filename
+    path to file
+
+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/true.rst b/doc/usage/cmd/true.rst
new file mode 100644 (file)
index 0000000..f9ef71b
--- /dev/null
@@ -0,0 +1,28 @@
+true command
+============
+
+Synopsis
+--------
+
+::
+
+    true
+
+Description
+-----------
+
+The true command sets the return value $? to 0 (true).
+
+Example
+-------
+
+::
+
+    => true; echo $?
+    0
+    =>
+
+Configuration
+-------------
+
+The true command is only available if CONFIG_HUSH_PARSER=y.
diff --git a/doc/usage/cmd/ums.rst b/doc/usage/cmd/ums.rst
new file mode 100644 (file)
index 0000000..3cde5fa
--- /dev/null
@@ -0,0 +1,57 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+ums command
+===========
+
+Synopsis
+--------
+
+::
+
+    ums <dev> [<interface>] <devnum[:partnum]>
+
+Description
+-----------
+
+Use the USB Mass Storage class (also known as UMS) to make accessible an U-Boot
+block device (fully or with :ref:`U-Boot's partition syntax <partitions>`)
+to a USB host and to enable file transfers. U-Boot, the USB device, acts as a
+simple external hard drive plugged on the host USB port.
+
+This command "ums" stays in the USB's treatment loop until user enters Ctrl-C.
+
+dev
+    USB gadget device number
+
+interface
+    interface for accessing the block device (mmc, sata, scsi, usb, ....)
+    defaults is "mmc"
+
+devnum
+    device number for selected interface
+
+partnum
+    partition number or 0 to expose all partitions, defaults to 0
+
+Example
+-------
+
+::
+
+    => ums 0 mmc 0
+    => ums 0 usb 1:2
+
+Configuration
+-------------
+
+The ums command is only available if CONFIG_CMD_USB_MASS_STORAGE=y
+and depends on CONFIG_USB_USB_GADGET and CONFIG_BLK.
+
+Return value
+------------
+
+The return value $? is set to 0 (true) when the USB stack was successfully
+started and interrupted, with Ctrl-C or after USB cable issue (detection
+timeout or cable removal).
+
+If an error occurs, the return value $? is set to 1 (false).
diff --git a/doc/usage/cmd/wdt.rst b/doc/usage/cmd/wdt.rst
new file mode 100644 (file)
index 0000000..8d80433
--- /dev/null
@@ -0,0 +1,77 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+wdt command
+============
+
+Synopsis
+--------
+
+::
+
+    wdt list
+    wdt dev [<name>]
+    wdt start <timeout_ms> [flags]
+    wdt stop
+    wdt reset
+    wdt expirer [flags]
+
+Description
+-----------
+
+The wdt command is used to control watchdog timers.
+
+The 'wdt list' command shows a list of all watchdog devices.
+
+The 'wdt dev' command called without argument shows the current watchdog device.
+The current device is set when passing the name of the device as argument.
+
+The 'wdt start' command starts the current watchdog timer.
+
+The 'wdt stop' command stops the current watchdog timer.
+
+The 'wdt reset' command resets the current watchdog timer without stopping it.
+
+The 'wdt expire' command let's the current watchdog timer expire immediately.
+This will lead to a reset.
+
+name
+    name of the watchdog device
+
+timeout_ms
+    timeout interval in milliseconds
+
+flags
+    unsigned long value passed to the driver. The usage is driver specific.
+    The value is ignored by most drivers.
+
+Example
+-------
+
+::
+
+    => wdt dev
+    No watchdog timer device set!
+    => wdt list
+    watchdog@1c20ca0 (sunxi_wdt)
+    => wdt dev watchdog@1c20ca0
+    => wdt dev
+    dev: watchdog@1c20ca0
+    => wdt start 3000
+    => wdt reset
+    => wdt stop
+    => wdt expire
+
+    U-Boot SPL 2022.04-rc3 (Mar 25 2022 - 13:48:33 +0000)
+
+ In the example above '(sunxi_wdt)' refers to the driver for the watchdog
+ device.
+
+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/conitrace.rst b/doc/usage/conitrace.rst
deleted file mode 100644 (file)
index d9916c8..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-conitrace command
-=================
-
-Synopsis
---------
-
-::
-
-    conitrace
-
-Description
------------
-
-The conitrace command is used to test the correct function of the console input
-driver. It is especially valuable for checking the support for special keys like
-<F1> or <POS1>.
-
-To display escape sequences on a single line the output only advances to the
-next line after detecting a pause of a few milliseconds.
-
-The output is hexadecimal.
-
-Examples
---------
-
-Entering keys <B><SHIFT-B><CTRL-B><X>
-
-::
-
-    => conitrace
-    Waiting for your input
-    To terminate type 'x'
-    62
-    42
-    02
-    =>
-
-Entering keys <F1><POS1><DEL><BACKSPACE><X>
-
-::
-
-    => conitrace
-    Waiting for your input
-    To terminate type 'x'
-    1b 4f 50
-    1b 5b 48
-    1b 5b 33 7e
-    7f
-    =>
-
-Configuration
--------------
-
-The conitrace command is only available if CONFIG_CMD_CONITRACE=y.
diff --git a/doc/usage/echo.rst b/doc/usage/echo.rst
deleted file mode 100644 (file)
index 861abdf..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-echo command
-============
-
-Synopsis
---------
-
-::
-
-    echo [-n] [args ...]
-
-Description
------------
-
-The echo command prints its arguments to the console separated by spaces.
-
--n
-    Do not print a line feed after the last argument.
-
-args
-    Arguments to be printed. The arguments are evaluated before being passed to
-    the command.
-
-Examples
---------
-
-Strings are parsed before the arguments are passed to the echo command:
-
-::
-
-    => echo "a" 'b' c
-    a b c
-    =>
-
-Observe how variables included in strings are handled:
-
-::
-
-    => setenv var X; echo "a)" ${var} 'b)' '${var}' c) ${var}
-    a) X b) ${var} c) X
-    =>
-
-
--n suppresses the line feed:
-
-::
-
-    => echo -n 1 2 3; echo a b c
-    1 2 3a b c
-    => echo -n 1 2 3
-    1 2 3=>
-
-A more complex example:
-
-::
-
-    => for i in a b c; do for j in 1 2 3; do echo -n "${i}${j}, "; done; echo; done;
-    a1, a2, a3,
-    b1, b2, b3,
-    c1, c2, c3,
-    =>
-
-Return value
-------------
-
-The return value $? is always set to 0 (true).
diff --git a/doc/usage/exception.rst b/doc/usage/exception.rst
deleted file mode 100644 (file)
index 27df88b..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-exception command
-=================
-
-Synopsis
---------
-
-::
-
-    exception <type>
-
-Description
------------
-
-The exception command is used to test the handling of exceptions like undefined
-instructions, segmentation faults or alignment faults.
-
-type
-  type of exception to be generated. The available types are architecture
-  dependent. Use 'help exception' to determine which are available.
-
-  **ARM:**
-
-  breakpoint
-    prefetch abort
-
-  unaligned
-    data abort
-
-  undefined
-    undefined instruction
-
-  **RISC-V:**
-
-  ebreak
-    breakpoint exception
-
-  unaligned
-    load address misaligned
-
-  undefined
-    undefined instruction
-
-  **Sandbox:**
-
-  sigsegv
-    illegal memory access
-
-  undefined
-    undefined instruction
-
-  **x86:**
-
-  undefined
-    undefined instruction
-
-Examples
---------
-
-::
-
-    => exception undefined
-
-    Illegal instruction
-    pc = 0x56076dd1a0f9, pc_reloc = 0x540f9
-
-    resetting ...
diff --git a/doc/usage/exit.rst b/doc/usage/exit.rst
deleted file mode 100644 (file)
index 769223c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-exit command
-============
-
-Synopsis
---------
-
-::
-
-    exit
-
-Description
------------
-
-The exit command terminates a script started via the run or source command.
-If scripts are nested, only the innermost script is left.
-
-::
-
-    => setenv inner 'echo entry inner; exit; echo inner done'
-    => setenv outer 'echo entry outer; run inner; echo outer done'
-    => run outer
-    entry outer
-    entry inner
-    outer done
-    =>
-
-When executed outside a script a warning is written. Following commands are not
-executed.
-
-::
-
-    => echo first; exit; echo last
-    first
-    exit not allowed from main input shell.
-    =>
-
-Return value
-------------
-
-$? is always set to 0 (true).
diff --git a/doc/usage/extension.rst b/doc/usage/extension.rst
deleted file mode 100644 (file)
index 2b88398..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-.. Copyright 2021, Kory Maincent <kory.maincent@bootlin.com>
-
-U-Boot extension board usage (CONFIG_EXTENSION)
-===============================================
-
-Synopsis
---------
-
-::
-
-    extension scan
-    extension list
-    extension apply <extension number|all>
-
-Description
------------
-
-The "extension" command proposes a generic U-Boot mechanism to detect
-extension boards connected to the HW platform, and apply the appropriate
-Device Tree overlays depending on the detected extension boards.
-
-The "extension" command comes with three sub-commands:
-
- - "extension scan" makes the generic code call the board-specific
-   extension_board_scan() function to retrieve the list of detected
-   extension boards.
-
- - "extension list" allows to list the detected extension boards.
-
- - "extension apply <number>|all" allows to apply the Device Tree
-   overlay(s) corresponding to one, or all, extension boards
-
-The latter requires two environment variables to exist:
-
- - extension_overlay_addr: the RAM address where to load the Device
-   Tree overlays
-
- - extension_overlay_cmd: the U-Boot command to load one overlay.
-   Indeed, the location and mechanism to load DT overlays is very setup
-   specific.
-
-In order to enable this mechanism, board-specific code must implement
-the extension_board_scan() function that fills in a linked list of
-"struct extension", each describing one extension board. In addition,
-the board-specific code must select the SUPPORT_EXTENSION_SCAN Kconfig
-boolean.
-
-Usage example
--------------
-
-1. Make sure your devicetree is loaded and set as the working fdt tree.
-
-::
-
-    => run loadfdt
-    => fdt addr $fdtaddr
-
-2. Prepare the environment variables
-
-::
-
-    => setenv extension_overlay_addr 0x88080000
-    => setenv extension_overlay_cmd 'load mmc 0:1 ${extension_overlay_addr} /boot/${extension_overlay_name}'
-
-3. Detect the plugged extension board
-
-::
-
-    => extension scan
-
-4. List the plugged extension board information and the devicetree
-   overlay name
-
-::
-
-    => extension list
-
-5. Apply the appropriate devicetree overlay
-
-For apply the selected overlay:
-
-::
-
-    => extension apply 0
-
-For apply all the overlays:
-
-::
-
-    => extension apply all
-
-Simple extension_board_scan function example
---------------------------------------------
-
-.. code-block:: c
-
-    int extension_board_scan(struct list_head *extension_list)
-    {
-        struct extension *extension;
-
-        extension = calloc(1, sizeof(struct extension));
-        snprintf(extension->overlay, sizeof(extension->overlay), "overlay.dtbo");
-        snprintf(extension->name, sizeof(extension->name), "extension board");
-        snprintf(extension->owner, sizeof(extension->owner), "sandbox");
-        snprintf(extension->version, sizeof(extension->version), "1.1");
-        snprintf(extension->other, sizeof(extension->other), "Extension board information");
-        list_add_tail(&extension->list, extension_list);
-
-        return 1;
-    }
diff --git a/doc/usage/false.rst b/doc/usage/false.rst
deleted file mode 100644 (file)
index a17fe86..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-false command
-=============
-
-Synopsis
---------
-
-::
-
-    false
-
-Description
------------
-
-The false command sets the return value $? to 1 (false).
-
-Example
--------
-
-::
-
-    => false; echo $?
-    1
-    =>
-
-Configuration
--------------
-
-The false command is only available if CONFIG_HUSH_PARSER=y.
diff --git a/doc/usage/fatinfo.rst b/doc/usage/fatinfo.rst
deleted file mode 100644 (file)
index af2eba4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-fatinfo command
-===============
-
-Synopsis
---------
-
-::
-
-    fatinfo <interface> <dev[:part]>
-
-Description
------------
-
-The fatinfo command displays information about a FAT partition.
-
-interface
-    interface for accessing the block device (mmc, sata, scsi, usb, ....)
-
-dev
-    device number
-
-part
-    partition number, defaults to 1
-
-Example
--------
-
-Here is the output for a partition on a 32 GB SD-Card:
-
-::
-
-    => fatinfo mmc 0:1
-    Interface:  MMC
-      Device 0: Vendor: Man 00001b Snr 97560602 Rev: 13.8 Prod: EB1QT0
-                Type: Removable Hard Disk
-                Capacity: 30528.0 MB = 29.8 GB (62521344 x 512)
-    Filesystem: FAT32 "MYDISK     "
-    =>
-
-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/fatload.rst b/doc/usage/fatload.rst
deleted file mode 100644 (file)
index 93acb27..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-fatload command
-===============
-
-Synopsis
---------
-
-::
-
-    fatload <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
-
-Description
------------
-
-The fatload command is used to read a file from a FAT filesystem into memory.
-You can always use the :doc:`load command <load>` instead.
-
-The number of transferred bytes is saved in the environment variable filesize.
-The load address is saved in the environment variable fileaddr.
-
-interface
-    interface for accessing the block device (mmc, sata, scsi, usb, ....)
-
-dev
-    device number
-
-part
-    partition number, defaults to 0 (whole device)
-
-addr
-    load address, defaults to environment variable loadaddr or if loadaddr is
-    not set to configuration variable CONFIG_SYS_LOAD_ADDR
-
-filename
-    path to file, defaults to environment variable bootfile
-
-bytes
-    maximum number of bytes to load
-
-pos
-    number of bytes to skip
-
-addr, bytes, pos are hexadecimal numbers.
-
-If either 'pos' or 'bytes' are not aligned according to the minimum alignment
-requirement for DMA transfer (ARCH_DMA_MINALIGN) additional buffering will be
-used, a misaligned buffer warning will be printed, and performance will suffer
-for the load.
-
-Example
--------
-
-::
-
-    => fatload mmc 0:1 ${kernel_addr_r} snp.efi
-    149280 bytes read in 11 ms (12.9 MiB/s)
-    =>
-    => fatload mmc 0:1 ${kernel_addr_r} snp.efi 1000000
-    149280 bytes read in 9 ms (15.8 MiB/s)
-    =>
-    => fatload mmc 0:1 ${kernel_addr_r} snp.efi 1000000 100
-    149024 bytes read in 10 ms (14.2 MiB/s)
-    =>
-    => fatload mmc 0:1 ${kernel_addr_r} snp.efi 10
-    16 bytes read in 1 ms (15.6 KiB/s)
-    =>
-
-Configuration
--------------
-
-The fatload command is only available if CONFIG_CMD_FAT=y.
-
-Return value
-------------
-
-The return value $? is set to 0 (true) if the file was successfully loaded
-even if the number of bytes is less then the specified length.
-
-If an error occurs, the return value $? is set to 1 (false).
diff --git a/doc/usage/for.rst b/doc/usage/for.rst
deleted file mode 100644 (file)
index f9e5049..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-for command
-===========
-
-Synopis
--------
-
-::
-
-    for <variable> in <items>; do <commands>; done
-
-Description
------------
-
-The for command is used to loop over a list of values and execute a series of
-commands for each of these.
-
-The counter variable of the loop is a shell variable. Please, keep in mind that
-an environment variable takes precedence over a shell variable of the same name.
-
-variable
-    name of the counter variable
-
-items
-    space separated item list
-
-commands
-    commands to execute
-
-Example
--------
-
-::
-
-    => setenv c
-    => for c in 1 2 3; do echo item ${c}; done
-    item 1
-    item 2
-    item 3
-    => echo ${c}
-    3
-    => setenv c x
-    => for c in 1 2 3; do echo item ${c}; done
-    item x
-    item x
-    item x
-    =>
-
-The first line ensures that there is no environment variable *c*. Hence in the
-first loop the shell variable *c* is printed.
-
-After defining an environment variable of name *c* it takes precedence over the
-shell variable and the environment variable is printed.
-
-Return value
-------------
-
-The return value $? after the done statement is the return value of the last
-statement executed in the loop.
-
-::
-
-    => for i in true false; do ${i}; done; echo $?
-    1
-    => for i in false true; do ${i}; done; echo $?
-    0
index 630a6cb28ab2ac37d87b6265c99c5c2a4008ff68..5bfe31a49609d8092ee5c0724035eb4187536520 100644 (file)
@@ -18,38 +18,38 @@ Shell commands
 .. toctree::
    :maxdepth: 1
 
-   acpi
-   addrmap
-   askenv
-   base
-   bootefi
-   booti
-   bootmenu
-   button
-   x86/cbsysinfo
-   conitrace
-   echo
-   exception
-   extension
-   exit
-   false
-   fatinfo
-   fatload
-   for
-   load
-   loady
-   mbr
-   md
-   mmc
-   pinmux
-   pstore
-   qfw
-   reset
-   sbi
-   sf
-   scp03
-   setexpr
-   size
-   true
-   ums
-   wdt
+   cmd/acpi
+   cmd/addrmap
+   cmd/askenv
+   cmd/base
+   cmd/bootefi
+   cmd/booti
+   cmd/bootmenu
+   cmd/button
+   cmd/cbsysinfo
+   cmd/conitrace
+   cmd/echo
+   cmd/exception
+   cmd/extension
+   cmd/exit
+   cmd/false
+   cmd/fatinfo
+   cmd/fatload
+   cmd/for
+   cmd/load
+   cmd/loady
+   cmd/mbr
+   cmd/md
+   cmd/mmc
+   cmd/pinmux
+   cmd/pstore
+   cmd/qfw
+   cmd/reset
+   cmd/sbi
+   cmd/sf
+   cmd/scp03
+   cmd/setexpr
+   cmd/size
+   cmd/true
+   cmd/ums
+   cmd/wdt
diff --git a/doc/usage/load.rst b/doc/usage/load.rst
deleted file mode 100644 (file)
index 1efee77..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-load command
-============
-
-Synopsis
---------
-
-::
-
-    load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
-
-Description
------------
-
-The load command is used to read a file from a filesystem into memory.
-
-The number of transferred bytes is saved in the environment variable filesize.
-The load address is saved in the environment variable fileaddr.
-
-interface
-    interface for accessing the block device (mmc, sata, scsi, usb, ....)
-
-dev
-    device number
-
-part
-    partition number, defaults to 0 (whole device)
-
-addr
-    load address, defaults to environment variable loadaddr or if loadaddr is
-    not set to configuration variable CONFIG_SYS_LOAD_ADDR
-
-filename
-    path to file, defaults to environment variable bootfile
-
-bytes
-    maximum number of bytes to load
-
-pos
-    number of bytes to skip
-
-addr, bytes, pos are hexadecimal numbers.
-
-Example
--------
-
-::
-
-    => load mmc 0:1 ${kernel_addr_r} snp.efi
-    149280 bytes read in 11 ms (12.9 MiB/s)
-    =>
-    => load mmc 0:1 ${kernel_addr_r} snp.efi 1000000
-    149280 bytes read in 9 ms (15.8 MiB/s)
-    =>
-    => load mmc 0:1 ${kernel_addr_r} snp.efi 1000000 100
-    149024 bytes read in 10 ms (14.2 MiB/s)
-    =>
-    => load mmc 0:1 ${kernel_addr_r} snp.efi 10
-    16 bytes read in 1 ms (15.6 KiB/s)
-    =>
-
-Configuration
--------------
-
-The load command is only available if CONFIG_CMD_FS_GENERIC=y.
-
-Return value
-------------
-
-The return value $? is set to 0 (true) if the file was successfully loaded
-even if the number of bytes is less then the specified length.
-
-If an error occurs, the return value $? is set to 1 (false).
diff --git a/doc/usage/loady.rst b/doc/usage/loady.rst
deleted file mode 100644 (file)
index 2819cc7..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-loady command
-=============
-
-Synopsis
---------
-
-::
-
-    loady [addr [baud]]
-
-Description
------------
-
-The loady command is used to transfer a file to the device via the serial line
-using the YMODEM protocol.
-
-The number of transferred bytes is saved in environment variable filesize.
-
-addr
-    load address, defaults to environment variable loadaddr or if loadaddr is
-    not set to configuration variable CONFIG_SYS_LOAD_ADDR
-
-baud
-    baud rate for the ymodem transmission. After the transmission the baud
-    rate is reset to the original value.
-
-Example
--------
-
-In the example below the terminal emulation program picocom was used to
-transfer a file to the device.
-
-After entering the loady command the key sequence <CTRL-A><CTRL-S> is used to
-let picocom prompt for the file name. Picocom invokes the program sz for the
-file transfer.
-
-::
-
-    => loady 80064000 115200
-    ## Ready for binary (ymodem) download to 0x80064000 at 115200 bps...
-    C
-    *** file: BOOTRISCV64.EFI
-    $ sz -b -vv BOOTRISCV64.EFI
-    Sending: BOOTRISCV64.EFI
-    Bytes Sent: 398976   BPS:7883
-    Sending:
-    Ymodem sectors/kbytes sent:   0/ 0k
-    Transfer complete
-
-    *** exit status: 0 ***
-    /1(CAN) packets, 4 retries
-    ## Total Size      = 0x0006165f = 398943 Bytes
-    => echo ${filesize}
-    6165f
-    =>
-
-Configuration
--------------
-
-The command is only available if CONFIG_CMD_LOADB=y.
-
-Return value
-------------
-
-The return value $? is always 0 (true).
diff --git a/doc/usage/mbr.rst b/doc/usage/mbr.rst
deleted file mode 100644 (file)
index bddf2f6..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-mbr command
-===========
-
-Synopsis
---------
-
-::
-
-    mbr verify [interface] [device no] [partition list]
-    mbr write [interface] [device no] [partition list]
-
-Description
------------
-
-The mbr command lets users create or verify the MBR (Master Boot Record)
-partition layout based on the provided text description. The partition
-layout is alternatively read from the 'mbr_parts' environment variable.
-This can be used in scripts to help system image flashing tools to ensure
-proper partition layout.
-
-The syntax of the text description of the partition list is similar to
-the one used by the 'gpt' command.
-
-Supported partition parameters are:
-
-* name (currently ignored)
-* start (partition start offset in bytes)
-* size (in bytes or '-' to expand it to the whole free area)
-* bootable (boolean flag)
-* id (MBR partition type)
-
-If one wants to create more than 4 partitions, an 'Extended' primary
-partition (with 0x05 ID) has to be explicitly provided as a one of the
-first 4 entries.
-
-Here is an example how to create a 6 partitions (3 on the 'extended
-volume'), some of the predefined sizes:
-
-::
-
-    => setenv mbr_parts 'name=boot,start=4M,size=128M,bootable,id=0x0e;
-        name=rootfs,size=3072M,id=0x83;
-        name=system-data,size=512M,id=0x83;
-        name=[ext],size=-,id=0x05;
-        name=user,size=-,id=0x83;
-        name=modules,size=100M,id=0x83;
-        name=ramdisk,size=8M,id=0x83'
-    => mbr write mmc 0
-
-To check if the layout on the MMC #0 storage device matches the provided
-text description one has to issue following command (assuming that
-mbr_parts environment variable is set):
-
-::
-
-    => mbr verify mmc 0
-
-The verify sub-command is especially useful in the system update scripts:
-
-::
-
-    => if mbr verify mmc 0; then
-         echo MBR layout needs to be updated
-         ...
-       fi
-
-The 'mbr write' command returns 0 on success write or 1 on failure.
-
-The 'mbr verify' returns 0 if the layout matches the one on the storage
-device or 1 if not.
-
-Configuration
--------------
-
-To use the mbr command you must specify CONFIG_CMD_MBR=y.
-
-Return value
-------------
-
-The variable *$?* takes the following values
-
-+---+------------------------------+
-| 0 | mbr write was succesful      |
-+---+------------------------------+
-| 1 | mbr write failed             |
-+---+------------------------------+
-| 0 | mbr verify was succesful     |
-+---+------------------------------+
-| 1 | mbr verify was not succesful |
-+---+------------------------------+
-|-1 | invalid arguments            |
-+---+------------------------------+
diff --git a/doc/usage/md.rst b/doc/usage/md.rst
deleted file mode 100644 (file)
index 4c1073e..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-md command
-==========
-
-Synopis
--------
-
-::
-
-    md <address>[<data_size>] [<length>]
-
-Description
------------
-
-The md command is used to dump the contents of memory. It uses a standard
-format that includes the address, hex data and ASCII display. It supports
-various data sizes and uses the endianness of the target.
-
-The specified data_size and length become the defaults for future memory
-commands commands.
-
-address
-    start address to display
-
-data_size
-    size of each value to display (defaults to .l):
-
-    =========  ===================
-    data_size  Output size
-    =========  ===================
-    .b         byte
-    .w         word (16 bits)
-    .l         long (32 bits)
-    .q         quadword (64 bits)
-    =========  ===================
-
-length
-    number of values to dump. Defaults to 40 (0d64). Note that this is not
-    the same as the number of bytes, unless .b is used.
-
-Note that the format of 'md.b' can be emulated from linux with::
-
-    # This works but requires using sed to get the extra spaces
-    # <addr> is the address, <f> is the filename
-    xxd -o <addr> -g1 <f> |sed 's/  /    /' >bad
-
-    # This uses a single tool but the offset always starts at 0
-    # <f> is the filename
-    hexdump -v -e '"%08.8_ax: " 16/1 "%02x " "    "' -e '16/1 "%_p" "\n" ' <f>
-
-
-Example
--------
-
-::
-
-    => md 10000
-    00010000: 00010000 00000000 f0f30f00 00005596    .............U..
-    00010010: 10011010 00000000 10011010 00000000    ................
-    00010020: 10011050 00000000 b96d4cd8 00007fff    P........Lm.....
-    00010030: 00000000 00000000 f0f30f18 00005596    .............U..
-    00010040: 10011040 00000000 10011040 00000000    @.......@.......
-    00010050: b96d4cd8 00007fff 10011020 00000000    .Lm..... .......
-    00010060: 00000003 000000c3 00000000 00000000    ................
-    00010070: 00000000 00000000 f0e892f3 00005596    .............U..
-    00010080: 00000000 000000a1 00000000 00000000    ................
-    00010090: 00000000 00000000 f0e38aa6 00005596    .............U..
-    000100a0: 00000000 000000a6 00000022 00000000    ........".......
-    000100b0: 00000001 00000000 f0e38aa1 00005596    .............U..
-    000100c0: 00000000 000000be 00000000 00000000    ................
-    000100d0: 00000000 00000000 00000000 00000000    ................
-    000100e0: 00000000 00000000 00000000 00000000    ................
-    000100f0: 00000000 00000000 00000000 00000000    ................
-    => md.b 10000
-    00010000: 00 00 01 00 00 00 00 00 00 0f f3 f0 96 55 00 00    .............U..
-    00010010: 10 10 01 10 00 00 00 00 10 10 01 10 00 00 00 00    ................
-    00010020: 50 10 01 10 00 00 00 00 d8 4c 6d b9 ff 7f 00 00    P........Lm.....
-    00010030: 00 00 00 00 00 00 00 00 18 0f f3 f0 96 55 00 00    .............U..
-    => md.b 10000 10
-    00010000: 00 00 01 00 00 00 00 00 00 0f f3 f0 96 55 00 00    .............U..
-    =>
-    00010010: 10 10 01 10 00 00 00 00 10 10 01 10 00 00 00 00    ................
-    =>
-    00010020: 50 10 01 10 00 00 00 00 d8 4c 6d b9 ff 7f 00 00    P........Lm.....
-    =>
-    => md.q 10000
-    00010000: 0000000000010000 00005596f0f30f00    .............U..
-    00010010: 0000000010011010 0000000010011010    ................
-    00010020: 0000000010011050 00007fffb96d4cd8    P........Lm.....
-    00010030: 0000000000000000 00005596f0f30f18    .............U..
-    00010040: 0000000010011040 0000000010011040    @.......@.......
-    00010050: 00007fffb96d4cd8 0000000010011020    .Lm..... .......
-    00010060: 000000c300000003 0000000000000000    ................
-    00010070: 0000000000000000 00005596f0e892f3    .............U..
-
-The empty commands cause a 'repeat', so that md shows the next available data
-in the same format as before.
-
-
-Return value
-------------
-
-The return value $? is always 0 (true).
-
-
diff --git a/doc/usage/mmc.rst b/doc/usage/mmc.rst
deleted file mode 100644 (file)
index 55e3f9c..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-mmc command
-============
-
-Synopsis
---------
-
-::
-
-    mmc info
-    mmc read addr blk# cnt
-    mmc write addr blk# cnt
-    mmc erase blk# cnt
-    mmc rescan [mode]
-    mmc part
-    mmc dev [dev] [part] [mode]
-    mmc list
-    mmc wp
-    mmc bootbus <dev> <boot_bus_width> <reset_boot_bus_width> <boot_mode>
-    mmc bootpart-resize <dev> <dev part size MB> <RPMB part size MB>
-    mmc partconf <dev> [[varname] | [<boot_ack> <boot_partition> <partition_access>]]
-    mmc rst-function <dev> <value>
-
-Description
------------
-
-The mmc command is used to control MMC(eMMC/SD) device.
-
-The 'mmc info' command displays information (Manufacturer ID, OEM, Name, Bus Speed, Mode, ...) of MMC device.
-
-The 'mmc read' command reads raw data to memory address from MMC device with block offset and count.
-
-The 'mmc write' command writes raw data to MMC device from memory address with block offset and count.
-
-    addr
-        memory address
-    blk#
-        start block offset
-    cnt
-        block count
-
-The 'mmc erase' command erases *cnt* blocks on the MMC device starting at block *blk#*.
-
-    blk#
-        start block offset
-    cnt
-        block count
-
-The 'mmc rescan' command scans the available MMC device.
-
-   mode
-       speed mode to set.
-       CONFIG_MMC_SPEED_MODE_SET should be enabled. The requested speed mode is
-       passed as a decimal number according to the following table:
-
-       ========== ==========================
-       Speed mode Description
-       ========== ==========================
-           0      MMC legacy
-           1      MMC High Speed (26MHz)
-           2      SD High Speed (50MHz)
-           3      MMC High Speed (52MHz)
-           4      MMC DDR52 (52MHz)
-           5      UHS SDR12 (25MHz)
-           6      UHS SDR25 (50MHz)
-           7      UHS SDR50 (100MHz)
-           8      UHS DDR50 (50MHz)
-           9      UHS SDR104 (208MHz)
-          10      HS200 (200MHz)
-          11      HS400 (200MHz)
-          12      HS400ES (200MHz)
-       ========== ==========================
-
-       A speed mode can be set only if it has already been enabled in the device tree
-
-The 'mmc part' command displays the list available partition on current mmc device.
-
-The 'mmc dev' command shows or set current mmc device.
-
-    dev
-        device number to change
-    part
-        partition number to change
-
-   mode
-       speed mode to set.
-       CONFIG_MMC_SPEED_MODE_SET should be enabled. The requested speed mode is
-       passed as a decimal number according to the following table:
-
-       ========== ==========================
-       Speed mode Description
-       ========== ==========================
-           0      MMC legacy
-           1      MMC High Speed (26MHz)
-           2      SD High Speed (50MHz)
-           3      MMC High Speed (52MHz)
-           4      MMC DDR52 (52MHz)
-           5      UHS SDR12 (25MHz)
-           6      UHS SDR25 (50MHz)
-           7      UHS SDR50 (100MHz)
-           8      UHS DDR50 (50MHz)
-           9      UHS SDR104 (208MHz)
-          10      HS200 (200MHz)
-          11      HS400 (200MHz)
-          12      HS400ES (200MHz)
-       ========== ==========================
-
-       A speed mode can be set only if it has already been enabled in the device tree
-
-The 'mmc list' command displays the list available devices.
-
-The 'mmc wp' command enables "power on write protect" function for boot partitions.
-
-The 'mmc bootbus' command sets the BOOT_BUS_WIDTH field. (*Refer to eMMC specification*)
-
-    boot_bus_width
-        0x0
-            x1 (sdr) or x4(ddr) buswidth in boot operation mode (default)
-        0x1
-            x4 (sdr/ddr) buswidth in boot operation mode
-        0x2
-            x8 (sdr/ddr) buswidth in boot operation mode
-        0x3
-            Reserved
-
-    reset_boot_bus_width
-        0x0
-            Reset buswidth to x1, Single data reate and backward compatible timing after boot operation (default)
-        0x1
-            Retain BOOT_BUS_WIDTH and BOOT_MODE value after boot operation. This is relevant to Push-pull mode operation only
-
-    boot_mode
-        0x0
-            Use single data rate + backward compatible timing in boot operation (default)
-        0x1
-            Use single data rate + High Speed timing in boot operation mode
-        0x2
-            Use dual data rate in boot operation
-        0x3
-            Reserved
-
-The 'mmc partconf' command shows or changes PARTITION_CONFIG field.
-
-    varname
-        When showing the PARTITION_CONFIG, an optional environment variable to store the current boot_partition value into.
-    boot_ack
-        boot acknowledge value
-    boot_partition
-        boot partition to enable for boot
-            0x0
-                Device not boot enabled(default)
-            0x1
-                Boot partition1 enabled for boot
-            0x2
-                Boot partition2 enabled for boot
-            0x7
-                User area enabled for boot
-            others
-                Reserved
-    partition_access
-        partitions to access
-
-The 'mmc bootpart-resize' command changes sizes of boot and RPMB partitions.
-
-    dev
-        device number
-    boot part size MB
-        target size of boot partition
-    RPMB part size MB
-        target size of RPMB partition
-
-The 'mmc rst-function' command changes the RST_n_FUNCTION field.
-**WARNING** : This is a write-once field. (*Refer to eMMC specification*)
-
-    value
-        0x0
-            RST_n signal is temporarily disabled (default)
-        0x1
-            RST_n signal is permanently enabled
-        0x2
-            RST_n signal is permanently disabled
-        0x3
-            Reserved
-
-
-Examples
---------
-
-The 'mmc info' command displays device's capabilities:
-::
-
-    => mmc info
-    Device: EXYNOS DWMMC
-    Manufacturer ID: 45
-    OEM: 100
-    Name: SDW16
-    Bus Speed: 52000000
-    Mode: MMC DDR52 (52MHz)
-    Rd Block Len: 512
-    MMC version 5.0
-    High Capacity: Yes
-    Capacity: 14.7 GiB
-    Bus Width: 8-bit DDR
-    Erase Group Size: 512 KiB
-    HC WP Group Size: 8 MiB
-    User Capacity: 14.7 GiB WRREL
-    Boot Capacity: 4 MiB ENH
-    RPMB Capacity: 4 MiB ENH
-    Boot area 0 is not write protected
-    Boot area 1 is not write protected
-
-The raw data can be read/written via 'mmc read/write' command:
-::
-
-    => mmc read 0x40000000 0x5000 0x100
-    MMC read: dev # 0, block # 20480, count 256 ... 256 blocks read: OK
-
-    => mmc write 0x40000000 0x5000 0x10
-    MMC write: dev # 0, block # 20480, count 256 ... 256 blocks written: OK
-
-The partition list can be shown via 'mmc part' command:
-::
-
-    => mmc part
-    Partition Map for MMC device 0  --   Partition Type: DOS
-
-    Part    Start Sector    Num Sectors     UUID            Type
-      1     8192            131072          dff8751a-01     0e Boot
-      2     139264          6291456         dff8751a-02     83
-      3     6430720         1048576         dff8751a-03     83
-      4     7479296         23298048        dff8751a-04     05 Extd
-      5     7481344         307200          dff8751a-05     83
-      6     7790592         65536           dff8751a-06     83
-      7     7858176         16384           dff8751a-07     83
-      8     7876608         22900736        dff8751a-08     83
-
-The current device can be shown or set via 'mmc dev' command:
-::
-
-    => mmc dev
-    switch to partitions #0, OK
-    mmc0(part0) is current device
-    => mmc dev 2 0
-    switch to partitions #0, OK
-    mmc2 is current device
-    => mmc dev 0 1 4
-    switch to partitions #1, OK
-    mmc0(part 1) is current device
-
-The list of available devices can be shown via 'mmc list' command:
-::
-
-    => mmc list
-    mmc list
-    EXYNOS DWMMC: 0 (eMMC)
-    EXYNOS DWMMC: 2 (SD)
-
-Configuration
--------------
-
-The mmc command is only available if CONFIG_CMD_MMC=y.
-Some commands need to enable more configuration.
-
-write, erase
-    CONFIG_MMC_WRITE
-bootbus, bootpart-resize, partconf, rst-function
-    CONFIG_SUPPORT_EMMC_BOOT=y
diff --git a/doc/usage/pinmux.rst b/doc/usage/pinmux.rst
deleted file mode 100644 (file)
index 9f4392c..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-pinmux command
-==============
-
-Synopsis
---------
-
-::
-
-    pinmux list
-    pinmux dev [pincontroller-name]
-    pinmux status [-a | pin-name]
-
-Description
------------
-
-The pinmux command is used to show the pin-controller muxing.
-
-The 'pinmux list' command diplays the available pin-controller.
-
-The 'pinmux dev' command selects the pin-controller for next commands.
-
-    pincontroller-name
-        name of the pin-controller to select
-
-The 'pinmux status' command displays the pin muxing information.
-
-    \-a
-        display pin muxing of all pin-controllers.
-    pin-name
-        name of the pin to display
-
-Example
--------
-
-::
-
-    => pinmux list
-    | Device                        | Driver                        | Parent
-    | pinctrl-gpio                  | sandbox_pinctrl_gpio          | root_driver
-    | pinctrl                       | sandbox_pinctrl               | root_driver
-    =>
-    => pinmux dev pinctrl
-    dev: pinctrl
-    =>
-    => pinmux status
-    P0        : UART TX.
-    P1        : UART RX.
-    P2        : I2S SCK.
-    P3        : I2S SD.
-    P4        : I2S WS.
-    P5        : GPIO0 bias-pull-up input-disable.
-    P6        : GPIO1 drive-open-drain.
-    P7        : GPIO2 bias-pull-down input-enable.
-    P8        : GPIO3 bias-disable.
-    =>
-    => pinmux status P0
-    P0        : UART TX.
-    =>
-    => pinmux status -a
-    --------------------------
-    pinctrl-gpio:
-    a0        : gpio input .
-    a1        : gpio input .
-    a2        : gpio input .
-    a3        : gpio input .
-    a4        : gpio input .
-    a5        : gpio output .
-    a6        : gpio output .
-    a7        : gpio input .
-    a8        : gpio input .
-    a9        : gpio input .
-    --------------------------
-    pinctrl:
-    P0        : UART TX.
-    P1        : UART RX.
-    P2        : I2S SCK.
-    P3        : I2S SD.
-    P4        : I2S WS.
-    P5        : GPIO0 bias-pull-up input-disable.
-    P6        : GPIO1 drive-open-drain.
-    P7        : GPIO2 bias-pull-down input-enable.
-    P8        : GPIO3 bias-disable.
-
-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/pstore.rst b/doc/usage/pstore.rst
deleted file mode 100644 (file)
index 1c83745..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-pstore command
-==============
-
-Synopsis
---------
-
-::
-
-    pstore set <addr> <len> [record-size] [console-size] [ftrace-size] [pmsg_size] [ecc-size]
-    pstore display [record-type] [nb]
-    pstore save <interface> <dev[:part]> <directory-path>
-
-Design
-------
-
-Linux PStore and Ramoops modules (Linux config options PSTORE and PSTORE_RAM)
-allow to use memory to pass data from the dying breath of a crashing kernel to
-its successor. This command allows to read those records from U-Boot command
-line.
-
-Ramoops is an oops/panic logger that writes its logs to RAM before the system
-crashes. It works by logging oopses and panics in a circular buffer. Ramoops
-needs a system with persistent RAM so that the content of that area can survive
-after a restart.
-
-Ramoops uses a predefined memory area to store the dump.
-
-Ramoops parameters can be passed as kernel parameters or through Device Tree,
-i.e.::
-
-    ramoops.mem_address=0x30000000 ramoops.mem_size=0x100000 ramoops.record_size=0x2000 ramoops.console_size=0x2000 memmap=0x100000$0x30000000
-
-The same values should be set in U-Boot to be able to retrieve the records.
-This values can be set at build time in U-Boot configuration file, or at runtime.
-U-Boot automatically patches the Device Tree to pass the Ramoops parameters to
-the kernel.
-
-The PStore configuration parameters are:
-
-======================= ==========
- Name                   Default
-======================= ==========
-CMD_PSTORE_MEM_ADDR
-CMD_PSTORE_MEM_SIZE     0x10000
-CMD_PSTORE_RECORD_SIZE  0x1000
-CMD_PSTORE_CONSOLE_SIZE 0x1000
-CMD_PSTORE_FTRACE_SIZE  0x1000
-CMD_PSTORE_PMSG_SIZE    0x1000
-CMD_PSTORE_ECC_SIZE     0
-======================= ==========
-
-Records sizes should be a power of 2.
-The memory size and the record/console size must be non-zero.
-
-Multiple 'dump' records can be stored in the memory reserved for PStore.
-The memory size has to be larger than the sum of the record sizes, i.e.::
-
-    MEM_SIZE >= RECORD_SIZE * n + CONSOLE_SIZE + FTRACE_SIZE + PMSG_SIZE
-
-Usage
------
-
-Generate kernel crash
-~~~~~~~~~~~~~~~~~~~~~
-
-For test purpose, you can generate a kernel crash by setting reboot timeout to
-10 seconds and trigger a panic
-
-.. code-block:: console
-
-    $ sudo sh -c "echo 1 > /proc/sys/kernel/sysrq"
-    $ sudo sh -c "echo 10 > /proc/sys/kernel/panic"
-    $ sudo sh -c "echo c > /proc/sysrq-trigger"
-
-Retrieve logs in U-Boot
-~~~~~~~~~~~~~~~~~~~~~~~
-
-First of all, unless PStore parameters as been set during U-Boot configuration
-and match kernel ramoops parameters, it needs to be set using 'pstore set', e.g.::
-
-    => pstore set 0x30000000 0x100000 0x2000 0x2000
-
-Then all available dumps can be displayed
-using::
-
-    => pstore display
-
-Or saved to an existing directory in an Ext2 or Ext4 partition, e.g. on root
-directory of 1st partition of the 2nd MMC::
-
-    => pstore save mmc 1:1 /
diff --git a/doc/usage/qfw.rst b/doc/usage/qfw.rst
deleted file mode 100644 (file)
index b3704b9..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-qfw command
-===========
-
-Synopsis
---------
-
-::
-
-    qfw list
-    qfw cpus
-    qfw load [kernel_addr [initrd_addr]]
-
-Description
------------
-
-The *qfw* command is used to retrieve information form the QEMU firmware.
-
-The *qfw list* sub-command displays the QEMU firmware files.
-
-The *qfw cpus* sub-command displays the available CPUs.
-
-The *qfw load* command is used to load a kernel and an initial RAM disk.
-
-kernel_addr
-    address to which the file specified by the -kernel parameter of QEMU shall
-    be loaded. Defaults to environment variable *loadaddr* and further to
-    the value of *CONFIG_SYS_LOAD_ADDR*.
-
-initrd_addr
-    address to which the file specified by the -initrd parameter of QEMU shall
-    be loaded. Defaults to environment variable *ramdiskaddr* and further to
-    the value of *CONFIG_RAMDISK_ADDR*.
-
-Examples
---------
-
-QEMU firmware files are listed via the *qfw list* command:
-
-::
-
-    => qfw list
-    etc/boot-fail-wait
-    etc/smbios/smbios-tables
-    etc/smbios/smbios-anchor
-    etc/e820
-    genroms/kvmvapic.bin
-    genroms/linuxboot.bin
-    etc/system-states
-    etc/acpi/tables
-    etc/table-loader
-    etc/tpm/log
-    etc/acpi/rsdp
-    bootorder
-
-The available CPUs can be shown via the *qfw cpus* command:
-
-::
-
-    => qfw cpu
-    2 cpu(s) online
-
-The *-kernel* and *-initrd* parameters allow to specify a kernel and an
-initial RAM disk for QEMU:
-
-.. code-block:: bash
-
-   $ qemu-system-x86_64 -machine pc-i440fx-2.5 -bios u-boot.rom -m 1G \
-       -nographic -kernel vmlinuz -initrd initrd
-
-Now the kernel and the initial RAM disk can be loaded to the U-Boot memory via
-the *qfw load* command and booted thereafter.
-
-::
-
-    => qfw load ${kernel_addr_r} ${ramdisk_addr_r}
-    loading kernel to address 0000000001000000 size 5048f0 initrd 0000000004000000 size 3c94891
-    => zboot 1000000 5048f0 4000000 3c94891
-    Valid Boot Flag
-    Magic signature found
-    Linux kernel version 4.19.0-14-amd64 (debian-kernel@lists.debian.org) #1 SMP Debian 4.19.171-2 (2021-01-30)
-    Building boot_params at 0x00090000
-    Loading bzImage at address 100000 (5260160 bytes)
-
-Configuration
--------------
-
-The qfw command is only available if CONFIG_CMD_QFW=y.
diff --git a/doc/usage/reset.rst b/doc/usage/reset.rst
deleted file mode 100644 (file)
index 384d5d6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-reset command
-=============
-
-Synopsis
---------
-
-::
-
-    reset [-w]
-
-Description
------------
-
-Perform reset of the CPU. By default does COLD reset, which resets CPU,
-DDR and peripherals, on some boards also resets external PMIC.
-
--w
-    Do warm WARM, reset CPU but keep peripheral/DDR/PMIC active.
-
-
-Return value
-------------
-
-The return value $? is always set to 0 (true).
diff --git a/doc/usage/sbi.rst b/doc/usage/sbi.rst
deleted file mode 100644 (file)
index 96d8861..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-sbi command
-===========
-
-Synopsis
---------
-
-::
-
-    sbi
-
-Description
------------
-
-The sbi command is used to display information about the SBI (Supervisor Binary
-Interface) implementation on RISC-V systems.
-
-The output may look like:
-
-::
-
-    => sbi
-    SBI 0.2
-    OpenSBI
-    Extensions:
-      sbi_set_timer
-      sbi_console_putchar
-      sbi_console_getchar
-      sbi_clear_ipi
-      sbi_send_ipi
-      sbi_remote_fence_i
-      sbi_remote_sfence_vma
-      sbi_remote_sfence_vma_asid
-      sbi_shutdown
-      SBI Base Functionality
-      Timer Extension
-      IPI Extension
-      RFENCE Extension
-      Hart State Management Extension
-
-The first line indicates the version of the RISC-V SBI specification.
-The second line indicates the implementation.
-The further lines enumerate the implemented extensions.
-
-Configuration
--------------
-
-To use the sbi command you must specify CONFIG_CMD_SBI=y.
diff --git a/doc/usage/scp03.rst b/doc/usage/scp03.rst
deleted file mode 100644 (file)
index 7ff87ed..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-scp03 command
-=============
-
-Synopsis
---------
-
-::
-
-    scp03 enable
-    scp03 provision
-
-Description
------------
-
-The *scp03* command calls into a Trusted Application executing in a
-Trusted Execution Environment to enable (if present) the Secure
-Channel Protocol 03 stablished between the processor and the secure
-element.
-
-This protocol encrypts all the communication between the processor and
-the secure element using a set of pre-defined keys. These keys can be
-rotated (provisioned) using the *provision* request.
-
-See also
---------
-
-For some information on the internals implemented in the TEE, please
-check the GlobalPlatform documentation on `Secure Channel Protocol '03'`_
-
-.. _Secure Channel Protocol '03':
-   https://globalplatform.org/wp-content/uploads/2014/07/GPC_2.3_D_SCP03_v1.1.2_PublicRelease.pdf
diff --git a/doc/usage/setexpr.rst b/doc/usage/setexpr.rst
deleted file mode 100644 (file)
index 2e511b1..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-setexpr command
-===============
-
-Synopsis
---------
-
-::
-
-    setexpr[.b, .w, .l .s] <name> [*]<value> <op> [*]<value2>
-    setexpr[.b, .w, .l] <name> [*]<value>
-    setexpr <name> fmt <format> [value]...
-    setexpr <name> gsub r s [t]
-    setexpr <name> sub r s [t]
-
-Description
------------
-
-The setexpr command is used to set an environment variable to the result
-of an evaluation.
-
-setexpr[.b, .w, .l .s] <name> [*]<value> <op> [*]<value2>
-     Set environment variable <name> to the result of the evaluated
-     expression specified by <op>.
-
-setexpr[.b, .w, .l] name [*]value
-     Load <value> into environment variable <name>
-
-setexpr name fmt <format> value
-     Set environment variable <name> to the result of the C like
-     format string <format> evaluation of <value>.
-
-setexpr name gsub <r> <s> [<t>]
-     For each substring matching the regular expression <r> in the
-     string <t>, substitute the string <s>.
-     The result is assigned to <name>.
-     If <t> is not supplied, use the old value of <name>.
-
-setexpr name sub <r> <s> [<t>]
-     Just like gsub(), but replace only the first matching substring
-
-The setexpr command takes the following arguments:
-
-format
-    This parameter contains a C or Bash like format string.
-    The number of arguments is limited to 4.
-    The following format types are supported:
-
-    c
-        single character
-    d, i
-        decimal value
-    o
-        octal value
-    s
-        string
-    u
-        unsigned decimal value
-    x, X
-        hexadecimal value
-    '%'
-        no conversion, instead a % character will be written
-
-    Backslash escapes:
-
-    \" = double quote
-    \\ = backslash
-    \a = alert (bell)
-    \b = backspace
-    \c = produce no further output
-    \f = form feed
-    \n = new line
-    \r = carriage return
-    \t = horizontal tab
-    \v = vertical tab
-    \NNN = octal number (NNN is 0 to 3 digits)
-
-name
-    The name of the environment variable to be set
-
-op
-    '|'
-        name = value | value2
-    '&'
-        name = value & value2
-    '+'
-        name = value + value2
-        (This is the only operator supported for strings.
-       It acts as concatenation operator on strings)
-    '^'
-        name = value ^ value2
-    '-'
-        name = value - value2
-    '*'
-        name = value * value2
-    '/'
-        name = value / value2
-    '%'
-        name = value % value2
-
-r
-    Regular expression
-
-s
-    Substitution string
-
-t
-    string
-
-value
-    Can either be an integer value, a string.
-    If the pointer prefix '*' is given value is treated as memory address.
-
-value2
-    See value
-
-Example
--------
-
-::
-
-    => setexpr foo fmt %d 0x100
-    => echo $foo
-    256
-    =>
-
-    => setexpr foo fmt 0x%08x 63
-    => echo $foo
-    0x00000063
-    =>
-
-    => setexpr foo fmt %%%o 8
-    => echo $foo
-    %10
-    =>
-
-Configuration
--------------
-
-The setexpr gsub and sub operations are only available if CONFIG_REGEX=y.
-
-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/sf.rst b/doc/usage/sf.rst
deleted file mode 100644 (file)
index 71bd1be..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-sf command
-==========
-
-Synopis
--------
-
-::
-
-    sf probe [[[<bus>:]<cs>] [<hz> [<mode>]]]
-    sf read <addr> <offset>|<partition> <len>
-    sf write <addr> <offset>|<partition> <len>
-    sf erase <offset>|<partition> <len>
-    sf update <addr> <offset>|<partition> <len>
-    sf protect lock|unlock <sector> <len>
-    sf test <offset>|<partition> <len>
-
-Description
------------
-
-The *sf* command is used to access SPI flash, supporting read/write/erase and
-a few other functions.
-
-Probe
------
-
-The flash must first be probed with *sf probe* before any of the other
-subcommands can be used. All of the parameters are optional:
-
-bus
-       SPI bus number containing the SPI-flash chip, e.g. 0. If you don't know
-       the number, you can use 'dm uclass' to see all the spi devices,
-       and check the value for 'seq' for each one (here 0 and 2)::
-
-          uclass 89: spi
-          0     spi@0 @ 05484960, seq 0
-          1     spi@1 @ 05484b40, seq 2
-
-cs
-       SPI chip-select to use for the chip. This is often 0 and can be omitted,
-       but in some cases multiple slaves are attached to a SPI controller,
-       selected by a chip-select line for each one.
-
-hz
-       Speed of the SPI bus in hertz. This normally defaults to 100000, i.e.
-       100KHz, which is very slow. Note that if the device exists in the
-       device tree, there might be a speed provided there, in which case this
-       setting is ignored.
-
-mode
-       SPI mode to use:
-
-       =====  ================
-       Mode   Meaning
-       =====  ================
-       0      CPOL=0, CPHA=0
-       1      CPOL=0, CPHA=1
-       2      CPOL=1, CPHA=0
-       3      CPOL=1, CPHA=1
-       =====  ================
-
-       Clock phase (CPHA) 0 means that data is transferred (sampled) on the
-       first clock edge; 1 means the second.
-
-       Clock polarity (CPOL) controls the idle state of the clock, 0 for low,
-       1 for high.
-       The active state is the opposite of idle.
-
-       You may find this `SPI documentation`_ useful.
-
-Parameters for other subcommands (described below) are as follows:
-
-addr
-       Memory address to start transfer
-
-offset
-       Flash offset to start transfer
-
-partition
-       If the parameter is not numeric, it is assumed to be a partition
-       description in the format <dev_type><dev_num>,<part_num> which is not
-       covered here. This requires CONFIG_CMD_MTDPARTS.
-
-len
-       Number of bytes to transfer
-
-Read
-~~~~
-
-Use *sf read* to read from SPI flash to memory. The read will fail if an
-attempt is made to read past the end of the flash.
-
-
-Write
-~~~~~
-
-Use *sf write* to write from memory to SPI flash. The SPI flash should be
-erased first, since otherwise the result is undefined.
-
-The write will fail if an attempt is made to read past the end of the flash.
-
-
-Erase
-~~~~~
-
-Use *sf erase* to erase a region of SPI flash. The erase will fail if any part
-of the region to be erased is protected or lies past the end of the flash. It
-may also fail if the start offset or length are not aligned to an erase region
-(e.g. 256 bytes).
-
-
-Update
-~~~~~~
-
-Use *sf update* to automatically erase and update a region of SPI flash from
-memory. This works a sector at a time (typical 4KB or 64KB). For each
-sector it first checks if the sector already has the right data. If so it is
-skipped. If not, the sector is erased and the new data written. Note that if
-the length is not a multiple of the erase size, the space after the data in
-the last sector will be erased. If the offset does not start at the beginning
-of an erase block, the operation will fail.
-
-Speed statistics are shown including the number of bytes that were already
-correct.
-
-
-Protect
-~~~~~~~
-
-SPI-flash chips often have a protection feature where the chip is split up into
-regions which can be locked or unlocked. With *sf protect* it is possible to
-change these settings, if supported by the driver.
-
-lock|unlock
-       Selects whether to lock or unlock the sectors
-
-<sector>
-       Start sector number to lock/unlock. This may be the byte offset or some
-       other value, depending on the chip.
-
-<len>
-       Number of bytes to lock/unlock
-
-
-Test
-~~~~
-
-A convenient and fast *sf test* subcommand provides a way to check that SPI
-flash is working as expected. This works in four stages:
-
-   * erase - erases the entire region
-   * check - checks that the region is erased
-   * write - writes a test pattern to the region, consisting of the U-Boot code
-   * read - reads back the test pattern to check that it was written correctly
-
-Memory is allocated for two buffers, each <len> bytes in size. At typical
-size is 64KB to 1MB. The offset and size must be aligned to an erase boundary.
-
-Note that this test will fail if any part of the SPI flash is write-protected.
-
-
-Examples
---------
-
-This first example uses sandbox::
-
-   => sf probe
-   SF: Detected m25p16 with page size 256 Bytes, erase size 64 KiB, total 2 MiB
-   => sf read 1000 1100 80000
-   device 0 offset 0x1100, size 0x80000
-   SF: 524288 bytes @ 0x1100 Read: OK
-   => md 1000
-   00001000: edfe0dd0 f33a0000 78000000 84250000    ......:....x..%.
-   00001010: 28000000 11000000 10000000 00000000    ...(............
-   00001020: 6f050000 0c250000 00000000 00000000    ...o..%.........
-   00001030: 00000000 00000000 00000000 00000000    ................
-   00001040: 00000000 00000000 00000000 00000000    ................
-   00001050: 00000000 00000000 00000000 00000000    ................
-   00001060: 00000000 00000000 00000000 00000000    ................
-   00001070: 00000000 00000000 01000000 00000000    ................
-   00001080: 03000000 04000000 00000000 01000000    ................
-   00001090: 03000000 04000000 0f000000 01000000    ................
-   000010a0: 03000000 08000000 1b000000 646e6173    ............sand
-   000010b0: 00786f62 03000000 08000000 21000000    box............!
-   000010c0: 646e6173 00786f62 01000000 61696c61    sandbox.....alia
-   000010d0: 00736573 03000000 07000000 2c000000    ses............,
-   000010e0: 6332692f 00003040 03000000 07000000    /i2c@0..........
-   000010f0: 31000000 6963702f 00003040 03000000    ...1/pci@0......
-   => sf erase 0 80000
-   SF: 524288 bytes @ 0x0 Erased: OK
-   => sf read 1000 1100 80000
-   device 0 offset 0x1100, size 0x80000
-   SF: 524288 bytes @ 0x1100 Read: OK
-   => md 1000
-   00001000: ffffffff ffffffff ffffffff ffffffff    ................
-   00001010: ffffffff ffffffff ffffffff ffffffff    ................
-   00001020: ffffffff ffffffff ffffffff ffffffff    ................
-   00001030: ffffffff ffffffff ffffffff ffffffff    ................
-   00001040: ffffffff ffffffff ffffffff ffffffff    ................
-   00001050: ffffffff ffffffff ffffffff ffffffff    ................
-   00001060: ffffffff ffffffff ffffffff ffffffff    ................
-   00001070: ffffffff ffffffff ffffffff ffffffff    ................
-   00001080: ffffffff ffffffff ffffffff ffffffff    ................
-   00001090: ffffffff ffffffff ffffffff ffffffff    ................
-   000010a0: ffffffff ffffffff ffffffff ffffffff    ................
-   000010b0: ffffffff ffffffff ffffffff ffffffff    ................
-   000010c0: ffffffff ffffffff ffffffff ffffffff    ................
-   000010d0: ffffffff ffffffff ffffffff ffffffff    ................
-   000010e0: ffffffff ffffffff ffffffff ffffffff    ................
-   000010f0: ffffffff ffffffff ffffffff ffffffff    ................
-
-This second example is running on coral, an x86 Chromebook::
-
-   => sf probe
-   SF: Detected w25q128fw with page size 256 Bytes, erase size 4 KiB, total 16 MiB
-   => sf erase 300000 80000
-   SF: 524288 bytes @ 0x300000 Erased: OK
-   => sf update 1110000 300000 80000
-   device 0 offset 0x300000, size 0x80000
-   524288 bytes written, 0 bytes skipped in 0.457s, speed 1164578 B/s
-
-   # This does nothing as the flash is already updated
-   => sf update 1110000 300000 80000
-   device 0 offset 0x300000, size 0x80000
-   0 bytes written, 524288 bytes skipped in 0.196s, speed 2684354 B/s
-   => sf test 00000 80000   # try a protected region
-   SPI flash test:
-   Erase failed (err = -5)
-   Test failed
-   => sf test 800000 80000
-   SPI flash test:
-   0 erase: 18 ticks, 28444 KiB/s 227.552 Mbps
-   1 check: 192 ticks, 2666 KiB/s 21.328 Mbps
-   2 write: 227 ticks, 2255 KiB/s 18.040 Mbps
-   3 read: 189 ticks, 2708 KiB/s 21.664 Mbps
-   Test passed
-   0 erase: 18 ticks, 28444 KiB/s 227.552 Mbps
-   1 check: 192 ticks, 2666 KiB/s 21.328 Mbps
-   2 write: 227 ticks, 2255 KiB/s 18.040 Mbps
-   3 read: 189 ticks, 2708 KiB/s 21.664 Mbps
-
-
-.. _SPI documentation:
-   https://en.wikipedia.org/wiki/Serial_Peripheral_Interface
diff --git a/doc/usage/size.rst b/doc/usage/size.rst
deleted file mode 100644 (file)
index f0c35e4..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-size command
-============
-
-Synopsis
---------
-
-::
-
-    size <interface> <dev[:part]> <filename>
-
-Description
------------
-
-The size command determines the size of a file and sets the environment variable
-filesize to this value. If filename points to a directory, the value is set to
-zero.
-
-If the command fails, the filesize environment variable is not changed.
-
-dev
-    device number
-
-part
-    partition number, defaults to 1
-
-filename
-    path to file
-
-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/true.rst b/doc/usage/true.rst
deleted file mode 100644 (file)
index f9ef71b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-true command
-============
-
-Synopsis
---------
-
-::
-
-    true
-
-Description
------------
-
-The true command sets the return value $? to 0 (true).
-
-Example
--------
-
-::
-
-    => true; echo $?
-    0
-    =>
-
-Configuration
--------------
-
-The true command is only available if CONFIG_HUSH_PARSER=y.
diff --git a/doc/usage/ums.rst b/doc/usage/ums.rst
deleted file mode 100644 (file)
index 3cde5fa..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-ums command
-===========
-
-Synopsis
---------
-
-::
-
-    ums <dev> [<interface>] <devnum[:partnum]>
-
-Description
------------
-
-Use the USB Mass Storage class (also known as UMS) to make accessible an U-Boot
-block device (fully or with :ref:`U-Boot's partition syntax <partitions>`)
-to a USB host and to enable file transfers. U-Boot, the USB device, acts as a
-simple external hard drive plugged on the host USB port.
-
-This command "ums" stays in the USB's treatment loop until user enters Ctrl-C.
-
-dev
-    USB gadget device number
-
-interface
-    interface for accessing the block device (mmc, sata, scsi, usb, ....)
-    defaults is "mmc"
-
-devnum
-    device number for selected interface
-
-partnum
-    partition number or 0 to expose all partitions, defaults to 0
-
-Example
--------
-
-::
-
-    => ums 0 mmc 0
-    => ums 0 usb 1:2
-
-Configuration
--------------
-
-The ums command is only available if CONFIG_CMD_USB_MASS_STORAGE=y
-and depends on CONFIG_USB_USB_GADGET and CONFIG_BLK.
-
-Return value
-------------
-
-The return value $? is set to 0 (true) when the USB stack was successfully
-started and interrupted, with Ctrl-C or after USB cable issue (detection
-timeout or cable removal).
-
-If an error occurs, the return value $? is set to 1 (false).
diff --git a/doc/usage/wdt.rst b/doc/usage/wdt.rst
deleted file mode 100644 (file)
index 8d80433..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+:
-
-wdt command
-============
-
-Synopsis
---------
-
-::
-
-    wdt list
-    wdt dev [<name>]
-    wdt start <timeout_ms> [flags]
-    wdt stop
-    wdt reset
-    wdt expirer [flags]
-
-Description
------------
-
-The wdt command is used to control watchdog timers.
-
-The 'wdt list' command shows a list of all watchdog devices.
-
-The 'wdt dev' command called without argument shows the current watchdog device.
-The current device is set when passing the name of the device as argument.
-
-The 'wdt start' command starts the current watchdog timer.
-
-The 'wdt stop' command stops the current watchdog timer.
-
-The 'wdt reset' command resets the current watchdog timer without stopping it.
-
-The 'wdt expire' command let's the current watchdog timer expire immediately.
-This will lead to a reset.
-
-name
-    name of the watchdog device
-
-timeout_ms
-    timeout interval in milliseconds
-
-flags
-    unsigned long value passed to the driver. The usage is driver specific.
-    The value is ignored by most drivers.
-
-Example
--------
-
-::
-
-    => wdt dev
-    No watchdog timer device set!
-    => wdt list
-    watchdog@1c20ca0 (sunxi_wdt)
-    => wdt dev watchdog@1c20ca0
-    => wdt dev
-    dev: watchdog@1c20ca0
-    => wdt start 3000
-    => wdt reset
-    => wdt stop
-    => wdt expire
-
-    U-Boot SPL 2022.04-rc3 (Mar 25 2022 - 13:48:33 +0000)
-
- In the example above '(sunxi_wdt)' refers to the driver for the watchdog
- device.
-
-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/x86/cbsysinfo.rst b/doc/usage/x86/cbsysinfo.rst
deleted file mode 100644 (file)
index 8c03a85..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0+
-
-cbsysinfo
-=========
-
-Synopis
--------
-
-::
-
-    cbsysinfo
-
-
-Description
------------
-
-This displays information obtained from the coreboot sysinfo table. It is only
-useful when booting U-Boot from coreboot.
-
-Example
--------
-
-::
-
-    => cbsysinfo