]> Git Repo - J-u-boot.git/blame - cmd/fat.c
Merge commit 'f3f86fd1fe0fb288356bff78f8a6fa2edf89e3fc' as 'lib/lwip/lwip'
[J-u-boot.git] / cmd / fat.c
CommitLineData
83d290c5 1// SPDX-License-Identifier: GPL-2.0+
71f95118
WD
2/*
3 * (C) Copyright 2002
4 * Richard Jones, [email protected]
71f95118
WD
5 */
6
7/*
8 * Boot support
9 */
09140113 10#include <command.h>
0eb25b61 11#include <mapmem.h>
71f95118 12#include <fat.h>
045fa1e1 13#include <fs.h>
e6f6f9e6 14#include <part.h>
90526e9f 15#include <asm/cache.h>
7205e407 16
09140113 17int do_fat_size(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
cf659819
SW
18{
19 return do_size(cmdtp, flag, argc, argv, FS_TYPE_FAT);
20}
21
22U_BOOT_CMD(
23 fatsize, 4, 0, do_fat_size,
24 "determine a file's size",
25 "<interface> <dev[:part]> <filename>\n"
26 " - Find file 'filename' from 'dev' on 'interface'\n"
27 " and determine its size."
28);
29
09140113 30int do_fat_fsload(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
71f95118 31{
b770e88a 32 return do_load(cmdtp, flag, argc, argv, FS_TYPE_FAT);
71f95118
WD
33}
34
0d498393 35U_BOOT_CMD(
1170e634 36 fatload, 7, 0, do_fat_fsload,
2fb2604d 37 "load binary file from a dos filesystem",
6b367467 38 "<interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]\n"
1170e634
BT
39 " - Load binary file 'filename' from 'dev' on 'interface'\n"
40 " to address 'addr' from dos filesystem.\n"
41 " 'pos' gives the file position to start loading from.\n"
42 " If 'pos' is omitted, 0 is used. 'pos' requires 'bytes'.\n"
43 " 'bytes' gives the size to load. If 'bytes' is 0 or omitted,\n"
3f83c87e 44 " the load stops on end of file.\n"
01fac041
TR
45 " If either 'pos' or 'bytes' are not aligned to\n"
46 " ARCH_DMA_MINALIGN then a misaligned buffer warning will\n"
b770e88a 47 " be printed and performance will suffer for the load."
b0fce99b
WD
48);
49
09140113
SG
50static int do_fat_ls(struct cmd_tbl *cmdtp, int flag, int argc,
51 char *const argv[])
71f95118 52{
045fa1e1 53 return do_ls(cmdtp, flag, argc, argv, FS_TYPE_FAT);
71f95118
WD
54}
55
0d498393 56U_BOOT_CMD(
7205e407 57 fatls, 4, 1, do_fat_ls,
2fb2604d 58 "list files in a directory (default /)",
cfda5aea 59 "<interface> [<dev[:part]>] [directory]\n"
a89c33db 60 " - list files from 'dev' on 'interface' in a 'directory'"
b0fce99b
WD
61);
62
09140113
SG
63static int do_fat_fsinfo(struct cmd_tbl *cmdtp, int flag, int argc,
64 char *const argv[])
71f95118 65{
cfda5aea 66 int dev, part;
4101f687 67 struct blk_desc *dev_desc;
0528979f 68 struct disk_partition info;
71f95118 69
7205e407 70 if (argc < 2) {
cfda5aea 71 printf("usage: fatinfo <interface> [<dev[:part]>]\n");
7385c28e 72 return 0;
7205e407 73 }
cfda5aea 74
e35929e4 75 part = blk_get_device_part_str(argv[1], argv[2], &dev_desc, &info, 1);
cfda5aea 76 if (part < 0)
7205e407 77 return 1;
cfda5aea 78
bcce53d0 79 dev = dev_desc->devnum;
5e8f9831 80 if (fat_set_blk_dev(dev_desc, &info) != 0) {
7385c28e
WD
81 printf("\n** Unable to use %s %d:%d for fatinfo **\n",
82 argv[1], dev, part);
7205e407
WD
83 return 1;
84 }
7385c28e 85 return file_fat_detectfs();
71f95118
WD
86}
87
0d498393 88U_BOOT_CMD(
7205e407 89 fatinfo, 3, 1, do_fat_fsinfo,
2fb2604d 90 "print information about filesystem",
cfda5aea 91 "<interface> [<dev[:part]>]\n"
a89c33db 92 " - print information about filesystem from 'dev' on 'interface'"
b0fce99b 93);
656f4c65
DK
94
95#ifdef CONFIG_FAT_WRITE
09140113
SG
96static int do_fat_fswrite(struct cmd_tbl *cmdtp, int flag, int argc,
97 char *const argv[])
656f4c65 98{
27422750 99 return do_save(cmdtp, flag, argc, argv, FS_TYPE_FAT);
656f4c65
DK
100}
101
102U_BOOT_CMD(
cda40b2a 103 fatwrite, 7, 0, do_fat_fswrite,
656f4c65 104 "write file into a dos filesystem",
cda40b2a 105 "<interface> <dev[:part]> <addr> <filename> [<bytes> [<offset>]]\n"
656f4c65
DK
106 " - write file 'filename' from the address 'addr' in RAM\n"
107 " to 'dev' on 'interface'"
108);
0349da51 109
09140113
SG
110static int do_fat_rm(struct cmd_tbl *cmdtp, int flag, int argc,
111 char *const argv[])
d4b751e9
AT
112{
113 return do_rm(cmdtp, flag, argc, argv, FS_TYPE_FAT);
114}
115
116U_BOOT_CMD(
117 fatrm, 4, 1, do_fat_rm,
118 "delete a file",
119 "<interface> [<dev[:part]>] <filename>\n"
120 " - delete a file from 'dev' on 'interface'"
121);
122
09140113
SG
123static int do_fat_mkdir(struct cmd_tbl *cmdtp, int flag, int argc,
124 char *const argv[])
0349da51
AT
125{
126 return do_mkdir(cmdtp, flag, argc, argv, FS_TYPE_FAT);
127}
128
129U_BOOT_CMD(
130 fatmkdir, 4, 1, do_fat_mkdir,
131 "create a directory",
132 "<interface> [<dev[:part]>] <directory>\n"
133 " - create a directory in 'dev' on 'interface'"
134);
656f4c65 135#endif
This page took 0.556057 seconds and 4 git commands to generate.