[U-Boot-Users] [PATCH] Write YAFFS filesystem images to NAND

Hi,
The attached patch for common/cmd_nand.c provides the ability to write YAFFS filesystem images to NAND flash memory, using the newer MTD-based nand code.
The patch extends the nand write command to parse a ".yaffs1" suffix for yaffs1 filesystems, or a ".yaffs" or ".yaffs2" suffix for yaffs2 filesystems.
Yaffs1 filesystems support 512-byte page, 16-byte oob NAND chips, while yaffs2 filesystems support 2048-byte page, 64-byte oob NAND chips.
Yaffs1 filesystem images can be generated using the mkyaffsimage utility in the yaffs2/utils directory.
Yaffs2 filesystem images can be generated using the mkyaffs2image utility in the yaffs2/utils directory, after applying Sergey Kubushyn's patch. See http://aleph1.co.uk/lurker/message/20060211.004601.77b55bf3.en.html.
So, for example, to write a yaffs1 filesystem image of length 0x526320 from address 0x20000000 in ram to offset 0x100000 in flash, run the command:
nand write.yaffs1 20000000 100000 526320
The area to be written must be erased before writing the filesystem.
I have tested this code with yaffs1 filesystems, and, in fact, I am finally able to run Linux with rootfstype=yaffs. I am unable to test with yaffs2 filesystems because I don't have access to a system using 2048+64 NAND chips.
Regards, ../fam

Hi Frank,
You can run yaffs2 in yaffs1 compatibility mode. Check the yaffs2 source for the correct configuration options.
-blair
On Thu, 2006-09-07 at 11:46, Frank Mandarino wrote:
Hi,
The attached patch for common/cmd_nand.c provides the ability to write YAFFS filesystem images to NAND flash memory, using the newer MTD-based nand code.
The patch extends the nand write command to parse a ".yaffs1" suffix for yaffs1 filesystems, or a ".yaffs" or ".yaffs2" suffix for yaffs2 filesystems.
Yaffs1 filesystems support 512-byte page, 16-byte oob NAND chips, while yaffs2 filesystems support 2048-byte page, 64-byte oob NAND chips.
Yaffs1 filesystem images can be generated using the mkyaffsimage utility in the yaffs2/utils directory.
Yaffs2 filesystem images can be generated using the mkyaffs2image utility in the yaffs2/utils directory, after applying Sergey Kubushyn's patch. See http://aleph1.co.uk/lurker/message/20060211.004601.77b55bf3.en.html.
So, for example, to write a yaffs1 filesystem image of length 0x526320 from address 0x20000000 in ram to offset 0x100000 in flash, run the command:
nand write.yaffs1 20000000 100000 526320
The area to be written must be erased before writing the filesystem.
I have tested this code with yaffs1 filesystems, and, in fact, I am finally able to run Linux with rootfstype=yaffs. I am unable to test with yaffs2 filesystems because I don't have access to a system using 2048+64 NAND chips.
Regards, ../fam

Hi Blair,
Thanks for the response, but I'm not sure what you are getting at.
I am aware of the yaffs1 compatibility mode, and I think I am running the yaffs2 code in that mode. At least I only installed the yaffs2 code into my Linux kernel.
But this has nothing to do with U-Boot's ability to write a yaffs filesystem image to NAND flash.
In yaffs1 compatibility mode, I believe the yaffs2 code assumes that the OOB is formatted as it is in a yaffs1 filesystem, so I am providing a way to write the older yaffs1 OOB format, or the newer yaffs2 OOB format.
Regards, ../fam
Blair Barnett wrote:
Hi Frank,
You can run yaffs2 in yaffs1 compatibility mode. Check the yaffs2 source for the correct configuration options.
-blair
On Thu, 2006-09-07 at 11:46, Frank Mandarino wrote:
Hi,
The attached patch for common/cmd_nand.c provides the ability to write YAFFS filesystem images to NAND flash memory, using the newer MTD-based nand code.
The patch extends the nand write command to parse a ".yaffs1" suffix for yaffs1 filesystems, or a ".yaffs" or ".yaffs2" suffix for yaffs2 filesystems.
Yaffs1 filesystems support 512-byte page, 16-byte oob NAND chips, while yaffs2 filesystems support 2048-byte page, 64-byte oob NAND chips.
Yaffs1 filesystem images can be generated using the mkyaffsimage utility in the yaffs2/utils directory.
Yaffs2 filesystem images can be generated using the mkyaffs2image utility in the yaffs2/utils directory, after applying Sergey Kubushyn's patch. See http://aleph1.co.uk/lurker/message/20060211.004601.77b55bf3.en.html.
So, for example, to write a yaffs1 filesystem image of length 0x526320 from address 0x20000000 in ram to offset 0x100000 in flash, run the command:
nand write.yaffs1 20000000 100000 526320
The area to be written must be erased before writing the filesystem.
I have tested this code with yaffs1 filesystems, and, in fact, I am finally able to run Linux with rootfstype=yaffs. I am unable to test with yaffs2 filesystems because I don't have access to a system using 2048+64 NAND chips.
Regards, ../fam
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
participants (2)
-
Blair Barnett
-
Frank Mandarino