Make the YAFFS filesystem work
authorRemy Bohmer <linux@bohmer.net>
Wed, 20 Aug 2008 18:46:56 +0000 (20:46 +0200)
committerScott Wood <scottwood@freescale.com>
Thu, 21 Aug 2008 19:05:33 +0000 (14:05 -0500)
Recently the YAFFS filesystem support has been added to U-boot.
However, just enabling CONFIG_YAFFS2 is not enough to get it working.

ymount will generate an exception (when dereferencing mtd->readoob()), because
the genericDevice is a null pointer. Further, a lot of logging is produced
while using YAFFS fs, so logging should also be disabled.
Both issues are solved by this patch.

With this patch and CONFIG_YAFFS2 enabled, I get a readable filesystem
in U-boot, as well as in Linux.

Tested on a Atmel AT91SAM9261EK board.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
Acked-by: William Juul <william.juul@tandberg.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
fs/yaffs2/yaffscfg.c

index 3beb34d14592d2c0cfa532520405626b240dc81b..16e84a421039b46788cff2412b1ab5f26f307a4b 100644 (file)
@@ -34,7 +34,7 @@
 #include "malloc.h"
 #endif
 
-unsigned yaffs_traceMask = 0xFFFFFFFF;
+unsigned yaffs_traceMask = 0x0; /* Disable logging */
 static int yaffs_errno = 0;
 
 void yaffsfs_SetError(int err)
@@ -121,6 +121,9 @@ int yaffs_StartUp(void)
        yaffs_Device *flashDev = calloc(1, sizeof(yaffs_Device));
        yaffsfs_config[0].dev = flashDev;
 
+       /* store the mtd device for later use */
+       flashDev->genericDevice = mtd;
+
        // Stuff to configure YAFFS
        // Stuff to initialise anything special (eg lock semaphore).
        yaffsfs_LocalInitialisation();