Hi Tony,

On Fri Sep 12, 2025 at 10:19 AM IST, Tony Dinh wrote:
> Create doc/usage/filesystems/ section.
> Convert doc/README.ext4 to rST format and move it to the new section.
> Update documentation to add configuration instruction for Ext4 Write
> when using large partitions.
>
> Note that this patch depends on this previous patch:
> https://patchwork.ozlabs.org/project/uboot/patch/20250910215702.15576-1-mibo...@gmail.com/
>
> Signed-off-by: Tony Dinh <mibo...@gmail.com>
> ---
>
>  .../filesystems/ext4.rst}                     | 55 +++++++++++++++----
>  doc/usage/index.rst                           |  8 +++
>  2 files changed, 53 insertions(+), 10 deletions(-)
>  rename doc/{README.ext4 => usage/filesystems/ext4.rst} (79%)
>
> diff --git a/doc/README.ext4 b/doc/usage/filesystems/ext4.rst
> similarity index 79%
> rename from doc/README.ext4
> rename to doc/usage/filesystems/ext4.rst
> index ca9f19953d2..18e45045344 100644
> --- a/doc/README.ext4
> +++ b/doc/usage/filesystems/ext4.rst
> @@ -1,9 +1,22 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +Ext4 File System
> +================
> +
> +Overview
> +--------
> +
>  U-Boot supports access of both ext2 and ext4 filesystems, either in read-only
>  mode or in read-write mode.
>  
> +Configuration
> +-------------
> +
>  First, to enable support for both ext4 (and, automatically, ext2 as well),
>  but without selecting the corresponding commands, enable one of the 
> following:
>  
> +::
> +
>    CONFIG_FS_EXT4     (for read-only)
>    CONFIG_EXT4_WRITE  (for read-write)
>  
> @@ -20,22 +33,28 @@ or ext4-related commands:
>  
>  use one or both of:
>  
> -  CONFIG_CMD_EXT2
> -  CONFIG_CMD_EXT4
> +::
> +
> +     CONFIG_CMD_EXT2
> +     CONFIG_CMD_EXT4
>  
>  Selecting either of the above automatically selects CONFIG_FS_EXT4 if it
>  wasn't enabled already.
>  
>  In addition, to get the write access command "ext4write", enable:
>  
> -  CONFIG_CMD_EXT4_WRITE
> +::
> +
> +     CONFIG_CMD_EXT4_WRITE
>  
>  which automatically selects CONFIG_EXT4_WRITE if it wasn't defined
>  already.
>  
>  Also relevant are the generic filesystem commands, selected by:
>  
> -  CONFIG_CMD_FS_GENERIC
> +::
> +
> +     CONFIG_CMD_FS_GENERIC
>  
>  This does not automatically enable EXT4 support for you, you still need
>  to do that yourself.
> @@ -44,6 +63,8 @@ Lastly, the current u-boot implementation for Ext4 write 
> requires a lot
>  of memory to run successfully. The following enable support for
>  large Ext4 partitions:
>  
> +::
> +
>       CONFIG_EXT4_MAX_JOURNAL_ENTRIES
>       CONFIG_SYS_MALLOC_LEN
>  
> @@ -51,10 +72,15 @@ The number of journal entries and dynamic memory 
> allocation are proportional
>  to the partition capacity. For example, an ext4 4TB HDD partition could
>  require approximately 500 entries and more than 128 MB heap space.
>  
> +Examples
> +--------
> +
>  Some sample commands to test ext4 support:
>  
>  1. Check that the commands can be seen in the output of U-Boot help:
>  
> +::
> +
>       UBOOT #help
>       ...
>       ext4load- load binary file from a Ext4 file system
> @@ -65,6 +91,8 @@ Some sample commands to test ext4 support:
>  
>  2. To list the files in an ext4-formatted partition, run:
>  
> +::
> +
>       ext4ls <interface> <dev[:part]> [directory]
>  
>       For example:
> @@ -72,6 +100,8 @@ Some sample commands to test ext4 support:
>  
>  3. To read and load a file from an ext4-formatted partition to RAM, run:
>  
> +::
> +
>       ext4load <interface> <dev[:part]> [addr] [filename] [bytes]
>  

The command usage has updated to:

ext4load <interface> [<dev[:part]> [addr [filename [bytes [pos]]]]]

>       For example:
> @@ -79,16 +109,21 @@ Some sample commands to test ext4 support:
>  
>  4. To write a file to an ext4-formatted partition.
>  
> +::
> +
>       a) First load a file to RAM at a particular address for example 
> 0x30007fc0.
>       Now execute ext4write command:
>       ext4write <interface> <dev[:part]> [filename] [Address] [sizebytes]
>  

This is an outdated format for ext4write, currently it's addr, filename
and then size.

>       For example:
> -     UBOOT #ext4write mmc 2:2 /boot/uImage 0x30007fc0 6183120
> -     (here 6183120 is the size of the file to be written)
> +     UBOOT #ext4write mmc 2:2 /boot/uImage 0x30007fc0 0x5E58D0
> +     (here 0x5E58D0 is the size of the file to be written,
> +     which was output by the ext4load command)
>       Note: Absolute path is required for the file to be written

IMO, all the code blocks with U-Boot's console output in the 'Examples'
should only have text that user should expect during a regular usage,
all comments should be outside the code block as plain text. Like
follows:

The ``ext4write`` command can be used to write to an ext4
partition as follows:

::

        ext4write <interface> <dev[:part]> <addr> <absolute filename path> 
[sizebytes] [file offset]

For example to write a file loaded at 0x8200000 of size 256 bytes to an
ext4-formatted partition with the filename ``/boot/sample_file.hex``:

::

  => ext4write mmc 2:2 0x82000000 /boot/sample_file.hex 0x100
  256 bytes written in 138 ms (1000 Bytes/s)

Regards,
Anshul

Reply via email to