]>
Commit | Line | Data |
---|---|---|
c609719b WD |
1 | JFFS2 options and usage. |
2 | ----------------------- | |
3 | ||
4 | JFFS2 in U-Boot is a read only implementation of the file system in | |
b3aff0cb | 5 | Linux with the same name. To use JFFS2 define CONFIG_CMD_JFFS2. |
c609719b WD |
6 | |
7 | The module adds three new commands. | |
8 | fsload - load binary file from a file system image | |
9 | fsinfo - print information about file systems | |
10 | ls - list files in a directory | |
f39748ae | 11 | chpart - change active partition |
c609719b | 12 | |
06d01dbe WD |
13 | If you boot from a partition which is mounted writable, and you |
14 | update your boot environment by replacing single files on that | |
6d0f6bcf | 15 | partition, you should also define CONFIG_SYS_JFFS2_SORT_FRAGMENTS. Scanning |
06d01dbe WD |
16 | the JFFS2 filesystem takes *much* longer with this feature, though. |
17 | Sorting is done while inserting into the fragment list, which is | |
18 | more or less a bubble sort. That algorithm is known to be O(n^2), | |
19 | thus you should really consider if you can avoid it! | |
20 | ||
c609719b WD |
21 | |
22 | There is two ways for JFFS2 to find the disk. The default way uses | |
23 | the flash_info structure to find the start of a JFFS2 disk (called | |
24 | partition in the code) and you can change where the partition is with | |
25 | two defines. | |
26 | ||
6d0f6bcf | 27 | CONFIG_SYS_JFFS2_FIRST_BANK |
c609719b WD |
28 | defined the first flash bank to use |
29 | ||
6d0f6bcf | 30 | CONFIG_SYS_JFFS2_FIRST_SECTOR |
c609719b WD |
31 | defines the first sector to use |
32 | ||
33 | ||
6d0f6bcf | 34 | The second way is to define CONFIG_SYS_JFFS_CUSTOM_PART and implement the |
c609719b | 35 | jffs2_part_info(int part_num) function in your board specific files. |
6d0f6bcf | 36 | In this mode CONFIG_SYS_JFFS2_FIRST_BANK and CONFIG_SYS_JFFS2_FIRST_SECTOR is not |
c609719b WD |
37 | used. |
38 | ||
39 | The input is a partition number starting with 0. | |
40 | Return a pointer to struct part_info or NULL for error; | |
41 | ||
42 | Ex jffs2_part_info() for one partition. | |
43 | --- | |
6d0f6bcf | 44 | #if defined CONFIG_SYS_JFFS_CUSTOM_PART |
c609719b WD |
45 | #include <jffs2/jffs2.h> |
46 | ||
47 | static struct part_info part; | |
48 | ||
49 | struct part_info* | |
50 | jffs2_part_info(int part_num) | |
51 | { | |
52 | if(part_num==0){ | |
53 | if(part.usr_priv==(void*)1) | |
54 | return ∂ | |
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 ∂ | |
64 | } | |
65 | return 0; | |
66 | } | |
67 | #endif | |
68 | --- | |
69 | ||
70 | TODO. | |
71 | ||
8bde7f77 WD |
72 | 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). |