blob: 3243895150b649e25b7c81c3b6d4a65ed30b7365 [file] [log] [blame]
wdenkc6097192002-11-03 00:24:07 +00001JFFS2 options and usage.
2-----------------------
3
4JFFS2 in U-Boot is a read only implementation of the file system in
5Linux with the same name. To use JFFS2 define CFG_CMD_JFFS2.
6
7The module adds three new commands.
8fsload - load binary file from a file system image
9fsinfo - print information about file systems
10ls - list files in a directory
11
wdenk06d01db2003-03-14 20:47:52 +000012If you boot from a partition which is mounted writable, and you
13update your boot environment by replacing single files on that
14partition, you should also define CFG_JFFS2_SORT_FRAGMENTS. Scanning
15the JFFS2 filesystem takes *much* longer with this feature, though.
16Sorting is done while inserting into the fragment list, which is
17more or less a bubble sort. That algorithm is known to be O(n^2),
18thus you should really consider if you can avoid it!
19
wdenkc6097192002-11-03 00:24:07 +000020
21There is two ways for JFFS2 to find the disk. The default way uses
22the flash_info structure to find the start of a JFFS2 disk (called
23partition in the code) and you can change where the partition is with
24two defines.
25
26CFG_JFFS2_FIRST_BANK
27 defined the first flash bank to use
28
29CFG_JFFS2_FIRST_SECTOR
30 defines the first sector to use
31
32
33The second way is to define CFG_JFFS_CUSTOM_PART and implement the
34jffs2_part_info(int part_num) function in your board specific files.
35In this mode CFG_JFFS2_FIRST_BANK and CFG_JFFS2_FIRST_SECTOR is not
36used.
37
38The input is a partition number starting with 0.
39Return a pointer to struct part_info or NULL for error;
40
41Ex jffs2_part_info() for one partition.
42---
43#if defined CFG_JFFS_CUSTOM_PART
44#include <jffs2/jffs2.h>
45
46static struct part_info part;
47
48struct part_info*
49jffs2_part_info(int part_num)
50{
51 if(part_num==0){
52 if(part.usr_priv==(void*)1)
53 return &part;
54
55 memset(&part, 0, sizeof(part));
56 part.offset=(char*)0xFF800000;
57 part.size=1024*1024*8;
58
59 /* Mark the struct as ready */
60 part.usr_priv=(void*)1;
61
62 return &part;
63 }
64 return 0;
65}
66#endif
67---
68
69TODO.
70
71 Add a new command so it's actually possible to change
72 partition.
73
74 Remove the assumption that JFFS can dereference a pointer
75 into the disk. The current code do not work with memory holes
76 or hardware with a sliding window (PCMCIA).