JFFS2 options and usage. ----------------------- JFFS2 in U-Boot is a read only implementation of the file system in Linux with the same name. To use JFFS2 define CFG_CMD_JFFS2. The module adds three new commands. fsload - load binary file from a file system image fsinfo - print information about file systems ls - list files in a directory chpart - change active partition If you boot from a partition which is mounted writable, and you update your boot environment by replacing single files on that partition, you should also define CFG_JFFS2_SORT_FRAGMENTS. Scanning the JFFS2 filesystem takes *much* longer with this feature, though. Sorting is done while inserting into the fragment list, which is more or less a bubble sort. That algorithm is known to be O(n^2), thus you should really consider if you can avoid it! There is two ways for JFFS2 to find the disk. The default way uses the flash_info structure to find the start of a JFFS2 disk (called partition in the code) and you can change where the partition is with two defines. CFG_JFFS2_FIRST_BANK defined the first flash bank to use CFG_JFFS2_FIRST_SECTOR defines the first sector to use The second way is to define CFG_JFFS_CUSTOM_PART and implement the jffs2_part_info(int part_num) function in your board specific files. In this mode CFG_JFFS2_FIRST_BANK and CFG_JFFS2_FIRST_SECTOR is not used. The input is a partition number starting with 0. Return a pointer to struct part_info or NULL for error; Ex jffs2_part_info() for one partition. --- #if defined CFG_JFFS_CUSTOM_PART #include <jffs2/jffs2.h> static struct part_info part; struct part_info* jffs2_part_info(int part_num) { if(part_num==0){ if(part.usr_priv==(void*)1) return ∂ memset(&part, 0, sizeof(part)); part.offset=(char*)0xFF800000; part.size=1024*1024*8; /* Mark the struct as ready */ part.usr_priv=(void*)1; return ∂ } return 0; } #endif --- TODO. Remove the assumption that JFFS can dereference a pointer into the disk. The current code do not work with memory holes or hardware with a sliding window (PCMCIA).