summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Anderson <sean.anderson@seco.com>2021-02-05 09:39:02 -0500
committerMarek Vasut <marex@denx.de>2021-02-26 15:30:55 +0100
commit403c2e46b4e99e87901f90fb879081e5baa6bb0b (patch)
treea18c6c06d7eeb4fb452b59d56e92a52f26d86601
parent1500c79dc3b1c67c492abec14badbb8efc576478 (diff)
downloadu-boot-403c2e46b4e99e87901f90fb879081e5baa6bb0b.tar.gz
doc: Document partition specifications
This documents the way U-Boot understands partitions specifications. This also updates the fastboot documentation for the changes in the previous commit. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--doc/android/fastboot.rst4
-rw-r--r--doc/usage/index.rst1
-rw-r--r--doc/usage/partitions.rst80
3 files changed, 85 insertions, 0 deletions
diff --git a/doc/android/fastboot.rst b/doc/android/fastboot.rst
index 16b11399b3..ce513a2a0f 100644
--- a/doc/android/fastboot.rst
+++ b/doc/android/fastboot.rst
@@ -154,6 +154,10 @@ The device index starts from ``a`` and refers to the interface (e.g. USB
controller, SD/MMC controller) or disk index. The partition index starts
from ``1`` and describes the partition number on the particular device.
+Alternatively, partition types may be specified using :ref:`U-Boot's partition
+syntax <partitions>`. This allows specifying partitions like ``0.1``,
+``0#boot``, or ``:3``. The interface is always ``mmc``.
+
Writing Partition Table
-----------------------
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index a8842bf9fb..09372d4a96 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -6,6 +6,7 @@ Use U-Boot
fdt_overlays
netconsole
+ partitions
Shell commands
--------------
diff --git a/doc/usage/partitions.rst b/doc/usage/partitions.rst
new file mode 100644
index 0000000000..2c1a12b6bf
--- /dev/null
+++ b/doc/usage/partitions.rst
@@ -0,0 +1,80 @@
+.. SPDX-License-Identifier: GPL-2.0+
+.. _partitions:
+
+Partitions
+==========
+
+Synopsis
+--------
+
+::
+
+ <command> <interface> [devnum][.hwpartnum][:partnum|#partname]
+
+Description
+-----------
+
+Many U-Boot commands allow specifying partitions (or whole disks) using a
+generic syntax.
+
+interface
+ The interface used to access the partition's device, like ``mmc`` or
+ ``scsi``. For a full list of supported interfaces, consult the
+ ``if_typename_str`` array in ``drivers/block/blk-uclass.c``
+
+devnum
+ The device number. This defaults to 0.
+
+hwpartnum
+ The hardware partition number. All devices have at least one hardware
+ partition. On most devices, hardware partition 0 specifies the whole
+ device. On eMMC devices, hardware partition 0 is the user partition,
+ hardware partitions 1 and 2 are the boot partitions, hardware partition
+ 3 is the RPMB partition, and further partitions are general-purpose
+ user-created partitions. The default hardware partition number is 0.
+
+partnum
+ The partition number, starting from 1. The partition number 0 specifies
+ that the whole device is to be used as one "partition."
+
+partname
+ The partition name. This is the partition label for GPT partitions. For
+ MBR partitions, the following syntax is used::
+
+ <devtype><devletter><partnum>
+
+ devtype
+ A device type like ``mmcsd`` or ``hd``. See the
+ ``part_set_generic_name`` function in ``disk/part.c`` for a
+ complete list.
+
+ devletter
+ The device number as an offset from ``a``. For example, device
+ number 2 would have a device letter of ``c``.
+
+ partnum
+ The partition number. This is the same as above.
+
+If neither ``partname`` nor ``partnum`` is specified and there is a partition
+table, then partition 1 is used. If there is no partition table, then the whole
+device is used as one "partition." If none of ``devnum``, ``hwpartnum``,
+``partnum``, or ``partname`` is specified, or only ``-`` is specified, then
+``devnum`` defaults to the value of the ``bootdevice`` environmental variable.
+
+Examples
+--------
+
+List the root directory contents on MMC device 2, hardware partition 1,
+and partition number 3::
+
+ ls mmc 2.1:3 /
+
+Load ``/kernel.itb`` to address ``0x80000000`` from SCSI device 0, hardware partition
+0, and the partition labeled ``boot``::
+
+ load scsi #boot 0x80000000 /kernel.itb
+
+Print the partition UUID of the SATA device ``$bootdevice``, hardware partition
+0, and partition number 0::
+
+ part uuid sata -