]>
git.ipfire.org Git - people/ms/u-boot.git/blob - cmd/reiser.c
1cca5eb6581bcc830f20fa06f7f047aa565525ef
2 * (C) Copyright 2003 - 2004
3 * Sysgo Real-Time Solutions, AG <www.elinos.com>
4 * Pavel Bartusek <pba@sysgo.com>
6 * SPDX-License-Identifier: GPL-2.0+
16 #include <linux/ctype.h>
17 #include <asm/byteorder.h>
21 #ifndef CONFIG_DOS_PARTITION
22 #error DOS partition support must be selected
25 /* #define REISER_DEBUG */
28 #define PRINTF(fmt,args...) printf (fmt ,##args)
30 #define PRINTF(fmt,args...)
33 int do_reiserls (cmd_tbl_t
*cmdtp
, int flag
, int argc
, char * const argv
[])
37 struct blk_desc
*dev_desc
= NULL
;
38 disk_partition_t info
;
43 part
= get_device_and_partition(argv
[1], argv
[2], &dev_desc
, &info
, 1);
52 PRINTF("Using device %s %d:%d, directory: %s\n", argv
[1], dev
, part
, filename
);
54 reiserfs_set_blk_dev(dev_desc
, &info
);
56 if (!reiserfs_mount(info
.size
)) {
57 printf ("** Bad Reiserfs partition or disk - %s %d:%d **\n", argv
[1], dev
, part
);
61 if (reiserfs_ls (filename
)) {
62 printf ("** Error reiserfs_ls() **\n");
70 reiserls
, 4, 1, do_reiserls
,
71 "list files in a directory (default /)",
72 "<interface> <dev[:part]> [directory]\n"
73 " - list files from 'dev' on 'interface' in a 'directory'"
76 /******************************************************************************
77 * Reiserfs boot command intepreter. Derived from diskboot
79 int do_reiserload (cmd_tbl_t
*cmdtp
, int flag
, int argc
, char * const argv
[])
81 char *filename
= NULL
;
83 ulong addr
= 0, filelen
;
84 disk_partition_t info
;
85 struct blk_desc
*dev_desc
= NULL
;
91 addr_str
= getenv("loadaddr");
92 if (addr_str
!= NULL
) {
93 addr
= simple_strtoul (addr_str
, NULL
, 16);
95 addr
= CONFIG_SYS_LOAD_ADDR
;
97 filename
= getenv ("bootfile");
101 addr
= simple_strtoul (argv
[3], NULL
, 16);
102 filename
= getenv ("bootfile");
106 addr
= simple_strtoul (argv
[3], NULL
, 16);
111 addr
= simple_strtoul (argv
[3], NULL
, 16);
113 count
= simple_strtoul (argv
[5], NULL
, 16);
117 return CMD_RET_USAGE
;
121 puts ("\n** No boot file defined **\n");
125 part
= get_device_and_partition(argv
[1], argv
[2], &dev_desc
, &info
, 1);
131 printf("Loading file \"%s\" from %s device %d%c%c\n",
132 filename
, argv
[1], dev
,
133 part
? ':' : ' ', part
? part
+ '0' : ' ');
135 reiserfs_set_blk_dev(dev_desc
, &info
);
137 if (!reiserfs_mount(info
.size
)) {
138 printf ("** Bad Reiserfs partition or disk - %s %d:%d **\n", argv
[1], dev
, part
);
142 filelen
= reiserfs_open(filename
);
144 printf("** File not found %s **\n", filename
);
147 if ((count
< filelen
) && (count
!= 0)) {
151 if (reiserfs_read((char *)addr
, filelen
) != filelen
) {
152 printf("\n** Unable to read \"%s\" from %s %d:%d **\n", filename
, argv
[1], dev
, part
);
156 /* Loading ok, update default load address */
159 printf ("\n%ld bytes read\n", filelen
);
160 setenv_hex("filesize", filelen
);
166 reiserload
, 6, 0, do_reiserload
,
167 "load binary file from a Reiser filesystem",
168 "<interface> <dev[:part]> [addr] [filename] [bytes]\n"
169 " - load binary file 'filename' from 'dev' on 'interface'\n"
170 " to address 'addr' from dos filesystem"