]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | // SPDX-License-Identifier: GPL-2.0+ |
a1596438 US |
2 | /* |
3 | * (C) Copyright 2011 - 2012 Samsung Electronics | |
4 | * EXT4 filesystem implementation in Uboot by | |
5 | * Uma Shankar <[email protected]> | |
6 | * Manjunatha C Achar <[email protected]> | |
7 | * | |
8 | * Ext4fs support | |
9 | * made from existing cmd_ext2.c file of Uboot | |
10 | * | |
11 | * (C) Copyright 2004 | |
12 | * esd gmbh <www.esd-electronics.com> | |
13 | * Reinhard Arlt <[email protected]> | |
14 | * | |
15 | * made from cmd_reiserfs by | |
16 | * | |
17 | * (C) Copyright 2003 - 2004 | |
18 | * Sysgo Real-Time Solutions, AG <www.elinos.com> | |
19 | * Pavel Bartusek <[email protected]> | |
a1596438 US |
20 | */ |
21 | ||
22 | /* | |
23 | * Changelog: | |
24 | * 0.1 - Newly created file for ext4fs support. Taken from cmd_ext2.c | |
25 | * file in uboot. Added ext4fs ls load and write support. | |
26 | */ | |
27 | ||
a1596438 US |
28 | #include <part.h> |
29 | #include <config.h> | |
30 | #include <command.h> | |
31 | #include <image.h> | |
32 | #include <linux/ctype.h> | |
33 | #include <asm/byteorder.h> | |
a1596438 US |
34 | #include <ext4fs.h> |
35 | #include <linux/stat.h> | |
36 | #include <malloc.h> | |
045fa1e1 | 37 | #include <fs.h> |
a1596438 US |
38 | |
39 | #if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE) | |
40 | #include <usb.h> | |
41 | #endif | |
42 | ||
09140113 | 43 | int do_ext4_size(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) |
cf659819 SW |
44 | { |
45 | return do_size(cmdtp, flag, argc, argv, FS_TYPE_EXT); | |
46 | } | |
47 | ||
09140113 | 48 | int do_ext4_load(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) |
a1596438 | 49 | { |
b770e88a | 50 | return do_load(cmdtp, flag, argc, argv, FS_TYPE_EXT); |
a1596438 US |
51 | } |
52 | ||
09140113 | 53 | int do_ext4_ls(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) |
a1596438 | 54 | { |
045fa1e1 | 55 | return do_ls(cmdtp, flag, argc, argv, FS_TYPE_EXT); |
a1596438 US |
56 | } |
57 | ||
ed34f34d | 58 | #if defined(CONFIG_CMD_EXT4_WRITE) |
09140113 | 59 | int do_ext4_write(struct cmd_tbl *cmdtp, int flag, int argc, |
9f12cd0e | 60 | char *const argv[]) |
ed34f34d | 61 | { |
9f12cd0e | 62 | return do_save(cmdtp, flag, argc, argv, FS_TYPE_EXT); |
ed34f34d US |
63 | } |
64 | ||
9f12cd0e SR |
65 | U_BOOT_CMD(ext4write, 7, 1, do_ext4_write, |
66 | "create a file in the root directory", | |
67 | "<interface> <dev[:part]> <addr> <absolute filename path>\n" | |
68 | " [sizebytes] [file offset]\n" | |
69 | " - create a file in / directory"); | |
ed34f34d US |
70 | |
71 | #endif | |
72 | ||
cf659819 SW |
73 | U_BOOT_CMD( |
74 | ext4size, 4, 0, do_ext4_size, | |
75 | "determine a file's size", | |
76 | "<interface> <dev[:part]> <filename>\n" | |
77 | " - Find file 'filename' from 'dev' on 'interface'\n" | |
78 | " and determine its size." | |
79 | ); | |
80 | ||
a1596438 US |
81 | U_BOOT_CMD(ext4ls, 4, 1, do_ext4_ls, |
82 | "list files in a directory (default /)", | |
83 | "<interface> <dev[:part]> [directory]\n" | |
b6a30444 | 84 | " - list files from 'dev' on 'interface' in a 'directory'"); |
a1596438 | 85 | |
9f12cd0e | 86 | U_BOOT_CMD(ext4load, 7, 0, do_ext4_load, |
a1596438 | 87 | "load binary file from a Ext4 filesystem", |
2a72dcce | 88 | "<interface> [<dev[:part]> [addr [filename [bytes [pos]]]]]\n" |
b6a30444 | 89 | " - load binary file 'filename' from 'dev' on 'interface'\n" |
b770e88a | 90 | " to address 'addr' from ext4 filesystem"); |