Skip to content
Snippets Groups Projects
README.JFFS2 2.11 KiB
Newer Older
  • Learn to ignore specific revisions
  • Wolfgang Denk's avatar
    Wolfgang Denk committed
    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.
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    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!
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	defined the first flash bank to use
    
    
    CONFIG_SYS_JFFS2_FIRST_SECTOR
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	defines the first sector to use
    
    
    
    The second way is to define CONFIG_SYS_JFFS_CUSTOM_PART and implement the
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #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 &part;
    
    		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 &part;
    	}
    	return 0;
    }
    #endif
    ---
    
    TODO.
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	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).