| 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 CONFIG_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 CONFIG_SYS_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. | |
| CONFIG_SYS_JFFS2_FIRST_BANK | |
| defined the first flash bank to use | |
| CONFIG_SYS_JFFS2_FIRST_SECTOR | |
| defines the first sector to use | |
| The second way is to define CONFIG_SYS_JFFS_CUSTOM_PART and implement the | |
| jffs2_part_info(int part_num) function in your board specific files. | |
| In this mode CONFIG_SYS_JFFS2_FIRST_BANK and CONFIG_SYS_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 CONFIG_SYS_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). |