xref: /openbmc/u-boot/doc/README.ext4 (revision 3d22bae57f1e5f0f0d3f69216e8aae27e8a797c4)
128983f4bSRobert P. J. DayU-Boot supports access of both ext2 and ext4 filesystems, either in read-only
228983f4bSRobert P. J. Daymode or in read-write mode.
3ed34f34dSUma Shankar
428983f4bSRobert P. J. DayFirst, to enable support for both ext4 (and, automatically, ext2 as well),
5*3d22bae5STuomas Tynkkynenbut without selecting the corresponding commands, enable one of the following:
603e2ecf6SStephen Warren
7*3d22bae5STuomas Tynkkynen  CONFIG_FS_EXT4	(for read-only)
8*3d22bae5STuomas Tynkkynen  CONFIG_EXT4_WRITE	(for read-write)
903e2ecf6SStephen Warren
1028983f4bSRobert P. J. DayNext, to select the ext2-related commands:
1128983f4bSRobert P. J. Day
1228983f4bSRobert P. J. Day  * ext2ls
1328983f4bSRobert P. J. Day  * ext2load
1428983f4bSRobert P. J. Day
1528983f4bSRobert P. J. Dayor ext4-related commands:
1628983f4bSRobert P. J. Day
1728983f4bSRobert P. J. Day  * ext4size
1828983f4bSRobert P. J. Day  * ext4ls
1928983f4bSRobert P. J. Day  * ext4load
2028983f4bSRobert P. J. Day
2128983f4bSRobert P. J. Dayuse one or both of:
2228983f4bSRobert P. J. Day
23*3d22bae5STuomas Tynkkynen  CONFIG_CMD_EXT2
24*3d22bae5STuomas Tynkkynen  CONFIG_CMD_EXT4
25ed34f34dSUma Shankar
26*3d22bae5STuomas TynkkynenSelecting either of the above automatically selects CONFIG_FS_EXT4 if it
27*3d22bae5STuomas Tynkkynenwasn't enabled already.
2828983f4bSRobert P. J. Day
29*3d22bae5STuomas TynkkynenIn addition, to get the write access command "ext4write", enable:
3028983f4bSRobert P. J. Day
31*3d22bae5STuomas Tynkkynen  CONFIG_CMD_EXT4_WRITE
3203e2ecf6SStephen Warren
33*3d22bae5STuomas Tynkkynenwhich automatically selects CONFIG_EXT4_WRITE if it wasn't defined
3428983f4bSRobert P. J. Dayalready.
3528983f4bSRobert P. J. Day
3628983f4bSRobert P. J. DayAlso relevant are the generic filesystem commands, selected by:
3728983f4bSRobert P. J. Day
38*3d22bae5STuomas Tynkkynen  CONFIG_CMD_FS_GENERIC
39ed34f34dSUma Shankar
4028983f4bSRobert P. J. DayThis does not automatically enable EXT4 support for you, you still need
4128983f4bSRobert P. J. Dayto do that yourself.
42ed34f34dSUma Shankar
4328983f4bSRobert P. J. DaySome sample commands to test ext4 support:
4428983f4bSRobert P. J. Day
4528983f4bSRobert P. J. Day1. Check that the commands can be seen in the output of U-Boot help:
4628983f4bSRobert P. J. Day
47ed34f34dSUma Shankar	UBOOT #help
4828983f4bSRobert P. J. Day	...
49ed34f34dSUma Shankar	ext4load- load binary file from a Ext4 file system
50ed34f34dSUma Shankar	ext4ls  - list files in a directory (default /)
5128983f4bSRobert P. J. Day	ext4size - determine a file's size
52ed34f34dSUma Shankar	ext4write- create a file in ext4 formatted partition
5328983f4bSRobert P. J. Day	...
54ed34f34dSUma Shankar
5528983f4bSRobert P. J. Day2. To list the files in an ext4-formatted partition, run:
5628983f4bSRobert P. J. Day
57ed34f34dSUma Shankar	ext4ls <interface> <dev[:part]> [directory]
5828983f4bSRobert P. J. Day
59ed34f34dSUma Shankar	For example:
60ed34f34dSUma Shankar	UBOOT #ext4ls mmc 0:5 /usr/lib
61ed34f34dSUma Shankar
6228983f4bSRobert P. J. Day3. To read and load a file from an ext4-formatted partition to RAM, run:
6328983f4bSRobert P. J. Day
64ed34f34dSUma Shankar	ext4load <interface> <dev[:part]> [addr] [filename] [bytes]
6528983f4bSRobert P. J. Day
66ed34f34dSUma Shankar	For example:
67ed34f34dSUma Shankar	UBOOT #ext4load mmc 2:2 0x30007fc0 uImage
68ed34f34dSUma Shankar
6928983f4bSRobert P. J. Day4. To write a file to an ext4-formatted partition.
7028983f4bSRobert P. J. Day
71ed34f34dSUma Shankar	a) First load a file to RAM at a particular address for example 0x30007fc0.
7228983f4bSRobert P. J. Day	Now execute ext4write command:
73ed34f34dSUma Shankar	ext4write <interface> <dev[:part]> [filename] [Address] [sizebytes]
7428983f4bSRobert P. J. Day
75ed34f34dSUma Shankar	For example:
76ed34f34dSUma Shankar	UBOOT #ext4write mmc 2:2 /boot/uImage 0x30007fc0 6183120
77ed34f34dSUma Shankar	(here 6183120 is the size of the file to be written)
78ed34f34dSUma Shankar	Note: Absolute path is required for the file to be written
79ed34f34dSUma Shankar
80ed34f34dSUma ShankarReferences :
81ed34f34dSUma Shankar	-- ext4 implementation in Linux Kernel
82ed34f34dSUma Shankar	-- Uboot existing ext2 load and ls implementation
83ed34f34dSUma Shankar	-- Journaling block device JBD2 implementation in linux Kernel
84