Skip to content
Snippets Groups Projects
README.JFFS2 2.11 KiB
Newer Older
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).