
Hello Dave,
thanks for your helpful reply.
Have you tried using CFG_JFFS2_SORT_FRAGMENTS? I use it and I tried a similar test and testfile is deleted for u-boot (for U-Boot 1.1.0). Both jffs2_1pass.c and README.JFFS2 say it is needed if the boot partition is writable.
Yes and I had the same behaviour. Then I did the following test. Defined CFG_JFFS_CUSTOM_PART, and used struct part_info* jffs2_part_info(int part_num) { DECLARE_GLOBAL_DATA_PTR; bd_t *bd = gd->bd; char* s; char readcmd[60]; int i;
if (part_num != 0) return 0; /* only support one partition */
if (part.usr_priv == (void*)1) return ∂ /* already have part info */
memset(&part, 0, sizeof(part));
/* boot info in NAND flash, get and use copy in RAM */ /* override info from environment if present */ s = getenv("fsaddr"); part.offset = s ? (void *)simple_strtoul(s, NULL, 16) : (void *)CFG_JFFS2_RAMBASE; s = getenv("fssize"); part.size = s ? simple_strtoul(s, NULL, 16) : CFG_JFFS2_RAMSIZE; /* read from nand flash */ sprintf(readcmd, "nand read.jffs2 %x 0 %x", (uint32_t)part.offset, part.size); run_command(readcmd, 0);
part.erasesize = 0; /* unused */ part.usr_priv=(void*)1; /* ready */
return ∂ }
I undefined CONFIG_JFFS2_NAND and did the same tests again. And the results are what they should be like. Deleted files are not displayed anymore. If CFG_JFFS2_SORT_FRAGMENTS is disabled they are displayed. So the NAND functions of jffs2_1pass.c seem not deliver not the values they should. The comparison of the version -where the inode is set to 0 if it is an older version- is never reached and that is why deleted files are always displayed.
Have you tested it with NAND or NOR?
Regards, Jonas