blob: f0e9bc1b37aacf8ebb8b0ddc50d61e577b1f9399 [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
Jon Loeliger1670a5b2007-07-10 11:19:50 -05005Linux with the same name. To use JFFS2 define CONFIG_CMD_JFFS2.
wdenkc6097192002-11-03 00:24:07 +00006
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
wdenk3c711762004-06-09 13:37:52 +000011chpart - change active partition
wdenkc6097192002-11-03 00:24:07 +000012
wdenk6b58f332003-03-14 20:47:52 +000013If you boot from a partition which is mounted writable, and you
14update your boot environment by replacing single files on that
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020015partition, you should also define CONFIG_SYS_JFFS2_SORT_FRAGMENTS. Scanning
wdenk6b58f332003-03-14 20:47:52 +000016the JFFS2 filesystem takes *much* longer with this feature, though.
17Sorting is done while inserting into the fragment list, which is
18more or less a bubble sort. That algorithm is known to be O(n^2),
19thus you should really consider if you can avoid it!
20
wdenkc6097192002-11-03 00:24:07 +000021
22There is two ways for JFFS2 to find the disk. The default way uses
23the flash_info structure to find the start of a JFFS2 disk (called
24partition in the code) and you can change where the partition is with
25two defines.
26
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020027CONFIG_SYS_JFFS2_FIRST_BANK
wdenkc6097192002-11-03 00:24:07 +000028 defined the first flash bank to use
29
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020030CONFIG_SYS_JFFS2_FIRST_SECTOR
wdenkc6097192002-11-03 00:24:07 +000031 defines the first sector to use
32
33
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020034The second way is to define CONFIG_SYS_JFFS_CUSTOM_PART and implement the
wdenkc6097192002-11-03 00:24:07 +000035jffs2_part_info(int part_num) function in your board specific files.
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020036In this mode CONFIG_SYS_JFFS2_FIRST_BANK and CONFIG_SYS_JFFS2_FIRST_SECTOR is not
wdenkc6097192002-11-03 00:24:07 +000037used.
38
39The input is a partition number starting with 0.
40Return a pointer to struct part_info or NULL for error;
41
42Ex jffs2_part_info() for one partition.
43---
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020044#if defined CONFIG_SYS_JFFS_CUSTOM_PART
wdenkc6097192002-11-03 00:24:07 +000045#include <jffs2/jffs2.h>
46
47static struct part_info part;
48
49struct part_info*
50jffs2_part_info(int part_num)
51{
52 if(part_num==0){
53 if(part.usr_priv==(void*)1)
54 return &part;
55
56 memset(&part, 0, sizeof(part));
57 part.offset=(char*)0xFF800000;
58 part.size=1024*1024*8;
59
60 /* Mark the struct as ready */
61 part.usr_priv=(void*)1;
62
63 return &part;
64 }
65 return 0;
66}
67#endif
68---
69
70TODO.
71
wdenk57b2d802003-06-27 21:31:46 +000072 Remove the assumption that JFFS can dereference a pointer
73 into the disk. The current code do not work with memory holes
74 or hardware with a sliding window (PCMCIA).