diff --git a/fs/yaffs2/devextras.h b/fs/yaffs2/devextras.h
index 9635c7a..9acda79 100644
--- a/fs/yaffs2/devextras.h
+++ b/fs/yaffs2/devextras.h
@@ -28,13 +28,19 @@
 #define new newHack
 #endif
 
-#if !(defined __KERNEL__) || (defined WIN32)
+/* XXX U-BOOT XXX */
+#if 1 /* !(defined __KERNEL__) || (defined WIN32) */
 
 /* User space defines */
 
+/* XXX U-BOOT XXX */
+#if 0
 typedef unsigned char __u8;
 typedef unsigned short __u16;
 typedef unsigned __u32;
+#endif
+
+#include <asm/types.h>
 
 /*
  * Simple doubly linked list implementation.
@@ -213,7 +219,12 @@
 #define DT_WHT		14
 
 #ifndef WIN32
+/* XXX U-BOOT XXX */
+#if 0
 #include <sys/stat.h>
+#else
+#include "common.h"
+#endif
 #endif
 
 /*
diff --git a/fs/yaffs2/direct/Makefile b/fs/yaffs2/direct/Makefile
index 6315117..0ee18e5 100644
--- a/fs/yaffs2/direct/Makefile
+++ b/fs/yaffs2/direct/Makefile
@@ -17,50 +17,46 @@
 # $Id: Makefile,v 1.15 2007/07/18 19:40:38 charles Exp $
 
 #EXTRA_COMPILE_FLAGS = -DYAFFS_IGNORE_TAGS_ECC
+include $(TOPDIR)/config.mk
 
-CFLAGS =    -Wall -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_SHORT_NAMES_IN_RAM -DCONFIG_YAFFS_YAFFS2 -g $(EXTRA_COMPILE_FLAGS) -DNO_Y_INLINE
-CFLAGS+=    -fstack-check -O0
+LIB = $(obj)libyaffs2.a
 
-#CFLAGS+=   -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations
-#CFLAGS+=   -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Winline
+COBJS-$(CONFIG_YAFFS2) := \
+	yaffscfg.o yaffs_ecc.o yaffsfs.o yaffs_guts.o yaffs_packedtags1.o \
+	yaffs_tagscompat.o yaffs_packedtags2.o yaffs_tagsvalidity.o \
+	yaffs_nand.o yaffs_checkptrw.o yaffs_qsort.o yaffs_mtdif.o \
+	yaffs_mtdif2.o
 
-
-DIRECTTESTOBJS = dtest.o yaffscfg2k.o yaffs_ecc.o yaffs_fileem2k.o yaffsfs.o yaffs_guts.o \
-		 yaffs_packedtags1.o yaffs_ramdisk.o yaffs_ramem2k.o \
-		 yaffs_tagscompat.o yaffs_packedtags2.o yaffs_tagsvalidity.o yaffs_nand.o \
-		 yaffs_checkptrw.o  yaffs_qsort.o \
-#		 yaffs_checkptrwtest.o\
-		 
-
-BOOTTESTOBJS = bootldtst.o yboot.o yaffs_fileem.o nand_ecc.o
-
-#ALLOBJS =  dtest.o nand_ecc.o yaffscfg.o yaffs_fileem.o yaffsfs.o yaffs_ramdisk.o bootldtst.o yboot.o yaffs_ramem2k.o
-
-ALLOBJS = $(DIRECTTESTOBJS) $(BOOTTESTOBJS)
+SRCS    := $(COBJS-y:.o=.c)
+OBJS    := $(addprefix $(obj),$(COBJS-y))
 
 SYMLINKS = devextras.h yaffs_ecc.c yaffs_ecc.h yaffs_guts.c yaffs_guts.h yaffsinterface.h yportenv.h yaffs_tagscompat.c yaffs_tagscompat.h \
           yaffs_packedtags1.c yaffs_packedtags1.h yaffs_packedtags2.c yaffs_packedtags2.h  yaffs_nandemul2k.h \
-          yaffs_nand.c yaffs_nand.h \
+          yaffs_nand.c yaffs_nand.h yaffs_mtdif.c yaffs_mtdif.h \
           yaffs_tagsvalidity.c yaffs_tagsvalidity.h yaffs_checkptrw.h yaffs_checkptrw.c \
-          yaffs_qsort.c yaffs_qsort.h
+          yaffs_qsort.c yaffs_qsort.h yaffs_mtdif2.c yaffs_mtdif2.h
 
-#all: directtest2k boottest
+# -DCONFIG_YAFFS_NO_YAFFS1
+CFLAGS +=    -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_SHORT_NAMES_IN_RAM -DCONFIG_YAFFS_YAFFS2 -DNO_Y_INLINE -DLINUX_VERSION_CODE=0x20616 
 
-all: directtest2k
+all:  $(LIB)
 
-$(ALLOBJS): %.o: %.c
-	gcc -c $(CFLAGS) $< -o $@
+$(LIB): $(obj).depend $(OBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
 
-$(SYMLINKS):
-	ln -s ../$@ $@
-
-directtest2k: $(SYMLINKS) $(DIRECTTESTOBJS)
-	gcc -o $@ $(DIRECTTESTOBJS)
-
-
-boottest: $(SYMLINKS) $(BOOTTESTOBJS)
-	gcc -o $@ $(BOOTTESTOBJS)
-
-
+.PHONY: clean distclean
 clean:
-	rm -f $(ALLOBJS) core
+	rm -f $(OBJS)
+
+distclean:  clean
+	rm -f $(LIB) core *.bak .depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
+
diff --git a/fs/yaffs2/direct/dtest.c b/fs/yaffs2/direct/dtest.c
index be492b4..a9156ca 100644
--- a/fs/yaffs2/direct/dtest.c
+++ b/fs/yaffs2/direct/dtest.c
@@ -15,6 +15,8 @@
 * Test code for the "direct" interface. 
 */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
 
 #include <stdio.h>
 #include <string.h>
diff --git a/fs/yaffs2/direct/yaffs_fileem.c b/fs/yaffs2/direct/yaffs_fileem.c
index e3cc30e..5779d7e 100644
--- a/fs/yaffs2/direct/yaffs_fileem.c
+++ b/fs/yaffs2/direct/yaffs_fileem.c
@@ -16,6 +16,9 @@
  * This is only intended as test code to test persistence etc.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 const char *yaffs_flashif_c_version = "$Id: yaffs_fileem.c,v 1.3 2007/02/14 01:09:06 wookey Exp $";
 
 
@@ -214,5 +217,3 @@
 	
 	return YAFFS_OK;
 }
-
-
diff --git a/fs/yaffs2/direct/yaffs_fileem2k.c b/fs/yaffs2/direct/yaffs_fileem2k.c
index 7a3b299..34a4e87 100644
--- a/fs/yaffs2/direct/yaffs_fileem2k.c
+++ b/fs/yaffs2/direct/yaffs_fileem2k.c
@@ -16,6 +16,9 @@
  * This is only intended as test code to test persistence etc.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 const char *yaffs_flashif_c_version = "$Id: yaffs_fileem2k.c,v 1.12 2007/02/14 01:09:06 wookey Exp $";
 
 
@@ -438,4 +441,3 @@
 	}
 	return YAFFS_OK;
 }
-
diff --git a/fs/yaffs2/direct/yaffs_flashif.c b/fs/yaffs2/direct/yaffs_flashif.c
index 5178cb2..8d51dc6 100644
--- a/fs/yaffs2/direct/yaffs_flashif.c
+++ b/fs/yaffs2/direct/yaffs_flashif.c
@@ -11,6 +11,8 @@
  * published by the Free Software Foundation.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
 
 const char *yaffs_flashif_c_version = "$Id: yaffs_flashif.c,v 1.3 2007/02/14 01:09:06 wookey Exp $";
 
@@ -226,4 +228,3 @@
 {
 	return YAFFS_OK;
 }
-
diff --git a/fs/yaffs2/direct/yaffs_malloc.h b/fs/yaffs2/direct/yaffs_malloc.h
index 245f9c9..122fb4c 100644
--- a/fs/yaffs2/direct/yaffs_malloc.h
+++ b/fs/yaffs2/direct/yaffs_malloc.h
@@ -14,8 +14,11 @@
  * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
  */
  
+/* XXX U-BOOT XXX */
+#if 0
 #include <stdlib.h>
- 
+#endif 
+
 void *yaffs_malloc(size_t size); 
 void yaffs_free(void *ptr);
  
diff --git a/fs/yaffs2/direct/yaffs_ramdisk.c b/fs/yaffs2/direct/yaffs_ramdisk.c
index 6afee81..57f27ce 100644
--- a/fs/yaffs2/direct/yaffs_ramdisk.c
+++ b/fs/yaffs2/direct/yaffs_ramdisk.c
@@ -18,6 +18,9 @@
  * Use this with dev->useNANDECC enabled, then ECC overheads are not required.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 const char *yaffs_ramdisk_c_version = "$Id: yaffs_ramdisk.c,v 1.4 2007/02/14 01:09:06 wookey Exp $";
 
 
@@ -230,5 +233,3 @@
 	
 	return YAFFS_OK;
 }
-
-
diff --git a/fs/yaffs2/direct/yaffs_ramem2k.c b/fs/yaffs2/direct/yaffs_ramem2k.c
index 1ab053c..8161789 100644
--- a/fs/yaffs2/direct/yaffs_ramem2k.c
+++ b/fs/yaffs2/direct/yaffs_ramem2k.c
@@ -15,6 +15,8 @@
  * yaffs_ramem2k.c: RAM emulation in-kernel for 2K pages (YAFFS2)
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
 
 const char *yaffs_ramem2k_c_version = "$Id: yaffs_ramem2k.c,v 1.3 2007/02/14 01:09:06 wookey Exp $";
 
@@ -360,4 +362,3 @@
 
 
 #endif //YAFFS_RAM_ENABLED
-
diff --git a/fs/yaffs2/direct/yaffscfg.c b/fs/yaffs2/direct/yaffscfg.c
index b1d311e..a4a0924 100644
--- a/fs/yaffs2/direct/yaffscfg.c
+++ b/fs/yaffs2/direct/yaffscfg.c
@@ -18,17 +18,34 @@
  * There is no need to redistribute this file.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
+#include <config.h>
+#include "nand.h"
 #include "yaffscfg.h"
 #include "yaffsfs.h"
+#include "yaffs_packedtags2.h"
+#include "yaffs_mtdif.h"
+#include "yaffs_mtdif2.h"
+#if 0
 #include <errno.h>
+#else
+#include "malloc.h"
+#endif
 
 unsigned yaffs_traceMask = 0xFFFFFFFF;
-
+static int yaffs_errno = 0;
 
 void yaffsfs_SetError(int err)
 {
 	//Do whatever to set error
-	errno = err;
+	yaffs_errno = err;
+}
+
+int yaffsfs_GetError(void)
+{
+	return yaffs_errno;
 }
 
 void yaffsfs_Lock(void)
@@ -71,27 +88,47 @@
 #include "yaffs_ramdisk.h"
 #include "yaffs_flashif.h"
 
+static int isMounted = 0;
+#define MOUNT_POINT "/flash"
+extern nand_info_t nand_info[];
+
+/* XXX U-BOOT XXX */
+#if 0
 static yaffs_Device ramDev;
 static yaffs_Device bootDev;
 static yaffs_Device flashDev;
+#endif
 
 static yaffsfs_DeviceConfiguration yaffsfs_config[] = {
-
+/* XXX U-BOOT XXX */
+#if 0
 	{ "/ram", &ramDev},
 	{ "/boot", &bootDev},
 	{ "/flash", &flashDev},
+#else
+	{ MOUNT_POINT, 0},
+#endif
 	{(void *)0,(void *)0}
 };
 
 
 int yaffs_StartUp(void)
 {
+	struct mtd_info *mtd = &nand_info[0];
+	int yaffsVersion = 2;
+	int nBlocks;
+
+	yaffs_Device *flashDev = calloc(1, sizeof(yaffs_Device));
+	yaffsfs_config[0].dev = flashDev;
+
 	// Stuff to configure YAFFS
 	// Stuff to initialise anything special (eg lock semaphore).
 	yaffsfs_LocalInitialisation();
 	
 	// Set up devices
 
+/* XXX U-BOOT XXX */
+#if 0
 	// /ram
 	ramDev.nBytesPerChunk = 512;
 	ramDev.nChunksPerBlock = 32;
@@ -119,20 +156,50 @@
 	bootDev.readChunkFromNAND = yflash_ReadChunkFromNAND;
 	bootDev.eraseBlockInNAND = yflash_EraseBlockInNAND;
 	bootDev.initialiseNAND = yflash_InitialiseNAND;
+#endif
 
 		// /flash
-	flashDev.nBytesPerChunk =  512;
-	flashDev.nChunksPerBlock = 32;
-	flashDev.nReservedBlocks = 5;
-	flashDev.startBlock = 128; // First block after 2MB
-	flashDev.endBlock = 1023; // Last block in 16MB
-	flashDev.useNANDECC = 0; // use YAFFS's ECC
-	flashDev.nShortOpCaches = 10; // Use caches
-	flashDev.genericDevice = (void *) 2;	// Used to identify the device in fstat.
-	flashDev.writeChunkToNAND = yflash_WriteChunkToNAND;
-	flashDev.readChunkFromNAND = yflash_ReadChunkFromNAND;
-	flashDev.eraseBlockInNAND = yflash_EraseBlockInNAND;
-	flashDev.initialiseNAND = yflash_InitialiseNAND;
+	flashDev->nReservedBlocks = 5;
+//  flashDev->nShortOpCaches = (options.no_cache) ? 0 : 10;
+	flashDev->nShortOpCaches = 10; // Use caches
+	flashDev->useNANDECC = 0; // do not use YAFFS's ECC
+
+	if (yaffsVersion == 2)
+	{
+		flashDev->writeChunkWithTagsToNAND = nandmtd2_WriteChunkWithTagsToNAND;
+		flashDev->readChunkWithTagsFromNAND = nandmtd2_ReadChunkWithTagsFromNAND;
+		flashDev->markNANDBlockBad = nandmtd2_MarkNANDBlockBad;
+		flashDev->queryNANDBlock = nandmtd2_QueryNANDBlock;
+		flashDev->spareBuffer = YMALLOC(mtd->oobsize);
+		flashDev->isYaffs2 = 1;
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
+		flashDev->nDataBytesPerChunk = mtd->writesize;
+		flashDev->nChunksPerBlock = mtd->erasesize / mtd->writesize;
+#else
+		flashDev->nDataBytesPerChunk = mtd->oobblock;
+		flashDev->nChunksPerBlock = mtd->erasesize / mtd->oobblock;
+#endif
+		nBlocks = mtd->size / mtd->erasesize;
+
+		flashDev->nCheckpointReservedBlocks = 10;
+		flashDev->startBlock = 0;
+		flashDev->endBlock = nBlocks - 1;
+	}
+	else
+	{
+		flashDev->writeChunkToNAND = nandmtd_WriteChunkToNAND;
+		flashDev->readChunkFromNAND = nandmtd_ReadChunkFromNAND;
+		flashDev->isYaffs2 = 0;
+		nBlocks = mtd->size / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK);
+		flashDev->startBlock = 320;
+		flashDev->endBlock = nBlocks - 1;
+		flashDev->nChunksPerBlock = YAFFS_CHUNKS_PER_BLOCK;
+		flashDev->nDataBytesPerChunk = YAFFS_BYTES_PER_CHUNK;
+	}
+	
+	/* ... and common functions */
+	flashDev->eraseBlockInNAND = nandmtd_EraseBlockInNAND;
+	flashDev->initialiseNAND = nandmtd_InitialiseNAND;
 
 	yaffs_initialise(yaffsfs_config);
 	
@@ -140,5 +207,211 @@
 }
 
 
+void make_a_file(char *yaffsName,char bval,int sizeOfFile)
+{
+	int outh;
+	int i;
+	unsigned char buffer[100];
+
+	outh = yaffs_open(yaffsName, O_CREAT | O_RDWR | O_TRUNC, S_IREAD | S_IWRITE);
+	if (outh < 0)
+	{
+		printf("Error opening file: %d\n", outh);
+		return;
+	}
+	
+	memset(buffer,bval,100);
+	
+	do{
+		i = sizeOfFile;
+		if(i > 100) i = 100;
+		sizeOfFile -= i;
+		
+		yaffs_write(outh,buffer,i);
+		
+	} while (sizeOfFile > 0);
+	
+		
+	yaffs_close(outh);
+}
+
+void read_a_file(char *fn)
+{
+	int h;
+	int i = 0;
+	unsigned char b;
+
+	h = yaffs_open(fn, O_RDWR,0);
+	if(h<0)
+	{
+		printf("File not found\n");
+		return;
+	}
+
+	while(yaffs_read(h,&b,1)> 0)
+	{
+		printf("%02x ",b);
+		i++;
+		if(i > 32) 
+		{
+		   printf("\n");
+		   i = 0;;
+		 }
+	}
+	printf("\n");
+	yaffs_close(h);
+}
+
+void cmd_yaffs_mount(char *mp)
+{
+	yaffs_StartUp();
+	int retval = yaffs_mount(mp);
+	if( retval != -1)
+		isMounted = 1;
+	else
+		printf("Error mounting %s, return value: %d\n", mp, yaffsfs_GetError());
+}
+
+static void checkMount(void)
+{
+	if( !isMounted )
+	{
+		cmd_yaffs_mount(MOUNT_POINT);
+	}
+}
+
+void cmd_yaffs_umount(char *mp)
+{
+	checkMount();
+	if( yaffs_unmount(mp) == -1)
+		printf("Error umounting %s, return value: %d\n", mp, yaffsfs_GetError());
+}
+
+void cmd_yaffs_write_file(char *yaffsName,char bval,int sizeOfFile)
+{
+	checkMount();
+	make_a_file(yaffsName,bval,sizeOfFile);
+}
 
 
+void cmd_yaffs_read_file(char *fn)
+{
+	checkMount();
+	read_a_file(fn);
+}
+
+
+void cmd_yaffs_mread_file(char *fn, char *addr)
+{
+	int h;
+	struct yaffs_stat s;
+	
+	checkMount();
+
+	yaffs_stat(fn,&s);
+
+	printf ("Copy %s to 0x%08x... ", fn, addr);
+	h = yaffs_open(fn, O_RDWR,0);
+	if(h<0)
+	{
+		printf("File not found\n");
+		return;
+	}
+				
+	yaffs_read(h,addr,(int)s.st_size);
+	printf("\t[DONE]\n");
+
+	yaffs_close(h);
+}
+
+
+void cmd_yaffs_mwrite_file(char *fn, char *addr, int size)
+{
+	int outh;
+
+	checkMount();
+	outh = yaffs_open(fn, O_CREAT | O_RDWR | O_TRUNC, S_IREAD | S_IWRITE);
+	if (outh < 0)
+	{
+		printf("Error opening file: %d\n", outh);
+	}
+	
+	yaffs_write(outh,addr,size);
+	
+	yaffs_close(outh);
+}
+
+
+void cmd_yaffs_ls(const char *mountpt, int longlist)
+{
+	int i;
+	yaffs_DIR *d;
+	yaffs_dirent *de;
+	struct yaffs_stat stat;
+	char tempstr[255];
+
+	checkMount();
+	d = yaffs_opendir(mountpt);
+
+	if(!d)
+	{
+		printf("opendir failed\n");
+	}
+	else
+	{
+		for(i = 0; (de = yaffs_readdir(d)) != NULL; i++)
+		{
+			if (longlist)
+			{
+				sprintf(tempstr, "%s/%s", mountpt, de->d_name);
+				yaffs_stat(tempstr, &stat);
+				printf("%-25s\t%7d\n",de->d_name, stat.st_size);
+			}
+			else
+			{
+				printf("%s\n",de->d_name);
+			}
+		}
+	}
+}
+
+
+void cmd_yaffs_mkdir(const char *dir)
+{
+	checkMount();
+
+	int retval = yaffs_mkdir(dir, 0);
+	
+	if ( retval < 0)
+		printf("yaffs_mkdir returning error: %d\n", retval);
+}
+
+void cmd_yaffs_rmdir(const char *dir)
+{
+	checkMount();
+
+	int retval = yaffs_rmdir(dir);
+	
+	if ( retval < 0)
+		printf("yaffs_rmdir returning error: %d\n", retval);
+}
+
+void cmd_yaffs_rm(const char *path)
+{
+	checkMount();
+
+	int retval = yaffs_unlink(path);
+	
+	if ( retval < 0)
+		printf("yaffs_unlink returning error: %d\n", retval);
+}
+
+void cmd_yaffs_mv(const char *oldPath, const char *newPath)
+{
+	checkMount();
+
+	int retval = yaffs_rename(newPath, oldPath);
+	
+	if ( retval < 0)
+		printf("yaffs_unlink returning error: %d\n", retval);
+}
diff --git a/fs/yaffs2/direct/yaffscfg.h b/fs/yaffs2/direct/yaffscfg.h
index 2a60dc1..6ae1696 100644
--- a/fs/yaffs2/direct/yaffscfg.h
+++ b/fs/yaffs2/direct/yaffscfg.h
@@ -40,6 +40,7 @@
 __u32 yaffsfs_CurrentTime(void);
 
 void yaffsfs_SetError(int err);
+int yaffsfs_GetError(void);
 
 #endif
 
diff --git a/fs/yaffs2/direct/yaffscfg2k.c b/fs/yaffs2/direct/yaffscfg2k.c
index 6d5f542..1daede1 100644
--- a/fs/yaffs2/direct/yaffscfg2k.c
+++ b/fs/yaffs2/direct/yaffscfg2k.c
@@ -18,6 +18,9 @@
  * There is no need to redistribute this file.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 #include "yaffscfg.h"
 #include "yaffsfs.h"
 #include "yaffs_fileem2k.h"
@@ -226,4 +229,3 @@
 {
 	flashDev.nCheckpointReservedBlocks = n;
 }
-
diff --git a/fs/yaffs2/direct/yaffsfs.c b/fs/yaffs2/direct/yaffsfs.c
index a8519c2..f62c952 100644
--- a/fs/yaffs2/direct/yaffsfs.c
+++ b/fs/yaffs2/direct/yaffsfs.c
@@ -11,12 +11,20 @@
  * published by the Free Software Foundation.
  */
  
+/* XXX U-BOOT XXX */
+#include <common.h>
+#include <malloc.h>
+
 #include "yaffsfs.h"
 #include "yaffs_guts.h"
 #include "yaffscfg.h"
-#include <string.h> // for memset
 #include "yportenv.h"
 
+/* XXX U-BOOT XXX */
+#if 0
+#include <string.h> // for memset
+#endif
+
 #define YAFFSFS_MAX_SYMLINK_DEREFERENCES 5
 
 #ifndef NULL
@@ -925,7 +933,7 @@
 
 static int yaffsfs_DoChMod(yaffs_Object *obj,mode_t mode)
 {
-	int result;
+	int result = YAFFS_FAIL;
 
 	if(obj)
 	{
@@ -1158,8 +1166,6 @@
 		cfg->dev->removeObjectCallback = yaffsfs_RemoveObjectCallback;
 		cfg++;
 	}
-	
-	
 }
 
 
@@ -1502,4 +1508,3 @@
 	}
 	return 0;
 }
-
diff --git a/fs/yaffs2/direct/ydirectenv.h b/fs/yaffs2/direct/ydirectenv.h
index 0c28205..adcc0b5 100644
--- a/fs/yaffs2/direct/ydirectenv.h
+++ b/fs/yaffs2/direct/ydirectenv.h
@@ -24,13 +24,19 @@
 
 #include "devextras.h"
 
+/* XXX U-BOOT XXX */
+#if 0
 #include "stdlib.h"
 #include "stdio.h"
 #include "string.h"
+#include "assert.h"
+#endif
 #include "yaffs_malloc.h"
 
-#include "assert.h"
+/* XXX U-BOOT XXX */
+#if 0
 #define YBUG() assert(1)
+#endif
 
 #define YCHAR char
 #define YUCHAR unsigned char
diff --git a/fs/yaffs2/yaffs_checkptrw.c b/fs/yaffs2/yaffs_checkptrw.c
index d3a811e..f97ba4b 100644
--- a/fs/yaffs2/yaffs_checkptrw.c
+++ b/fs/yaffs2/yaffs_checkptrw.c
@@ -11,6 +11,10 @@
  * published by the Free Software Foundation.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+#include <malloc.h>
+
 const char *yaffs_checkptrw_c_version =
     "$Id: yaffs_checkptrw.c,v 1.14 2007/05/15 20:07:40 charles Exp $";
 
@@ -399,6 +403,3 @@
 
 	return yaffs_CheckpointErase(dev);
 }
-
-
-
diff --git a/fs/yaffs2/yaffs_ecc.c b/fs/yaffs2/yaffs_ecc.c
index d0b405f..a05a6b5 100644
--- a/fs/yaffs2/yaffs_ecc.c
+++ b/fs/yaffs2/yaffs_ecc.c
@@ -28,6 +28,9 @@
  * this bytes influence on the line parity.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 const char *yaffs_ecc_c_version =
     "$Id: yaffs_ecc.c,v 1.9 2007/02/14 01:09:06 wookey Exp $";
 
@@ -328,4 +331,3 @@
 	return -1;
 
 }
-
diff --git a/fs/yaffs2/yaffs_guts.c b/fs/yaffs2/yaffs_guts.c
index 134ed01..7dc62ef 100644
--- a/fs/yaffs2/yaffs_guts.c
+++ b/fs/yaffs2/yaffs_guts.c
@@ -11,12 +11,17 @@
  * published by the Free Software Foundation.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 const char *yaffs_guts_c_version =
     "$Id: yaffs_guts.c,v 1.52 2007/10/16 00:45:05 charles Exp $";
 
 #include "yportenv.h"
+#include "linux/stat.h"
 
 #include "yaffsinterface.h"
+#include "yaffsfs.h"
 #include "yaffs_guts.h"
 #include "yaffs_tagsvalidity.h"
 
@@ -31,6 +36,7 @@
 #include "yaffs_nand.h"
 #include "yaffs_packedtags2.h"
 
+#include "malloc.h"
 
 #ifdef CONFIG_YAFFS_WINCE
 void yfsd_LockYAFFS(BOOL fsLockOnly);
@@ -597,7 +603,6 @@
 	int i;
 	yaffs_Device *dev = obj->myDev;
 	int ok = 1;
-	int nTnodeBytes = (dev->tnodeWidth * YAFFS_NTNODES_LEVEL0)/8;
 
 	if (tn) {
 		if (level > 0) {
@@ -646,7 +651,6 @@
 	__u32 lastChunk;
 	__u32 x;
 	__u32 i;
-	int ok;
 	yaffs_Device *dev;
 	yaffs_ExtendedTags tags;
 	yaffs_Tnode *tn;
@@ -854,7 +858,10 @@
  
 static Y_INLINE int yaffs_HashFunction(int n)
 {
-	n = abs(n);
+/* XXX U-BOOT XXX */
+	/*n = abs(n); */
+	if (n < 0)
+		n = -n;
 	return (n % YAFFS_NOBJECT_BUCKETS);
 }
 
@@ -1954,6 +1961,8 @@
 
 	yaffs_Device *dev = tn->myDev;
 
+/* XXX U-BOOT XXX */
+#if 0
 #ifdef  __KERNEL__
 	if (tn->myInode) {
 		/* We're still hooked up to a cached inode.
@@ -1963,7 +1972,7 @@
 		return;
 	}
 #endif
-
+#endif
 	yaffs_UnhashObject(tn);
 
 	/* Link into the free list. */
@@ -1972,6 +1981,8 @@
 	dev->nFreeObjects++;
 }
 
+/* XXX U-BOOT XXX */
+#if 0
 #ifdef __KERNEL__
 
 void yaffs_HandleDeferedFree(yaffs_Object * obj)
@@ -1982,6 +1993,7 @@
 }
 
 #endif
+#endif
 
 static void yaffs_DeinitialiseObjects(yaffs_Device * dev)
 {
@@ -2107,12 +2119,14 @@
 		if (i) {
 			in = list_entry(i, yaffs_Object, hashLink);
 			if (in->objectId == number) {
+/* XXX U-BOOT XXX */
+#if 0
 #ifdef __KERNEL__
 				/* Don't tell the VFS about this one if it is defered free */
 				if (in->deferedFree)
 					return NULL;
 #endif
-
+#endif
 				return in;
 			}
 		}
@@ -5085,11 +5099,14 @@
 	int immediateDeletion = 0;
 
 	if (1) {
+/* XXX U-BOOT XXX */
+#if 0
 #ifdef __KERNEL__
 		if (!in->myInode) {
 			immediateDeletion = 1;
 
 		}
+#endif
 #else
 		if (in->inUse <= 0) {
 			immediateDeletion = 1;
diff --git a/fs/yaffs2/yaffs_guts.h b/fs/yaffs2/yaffs_guts.h
index 87b539b..ecf701f 100644
--- a/fs/yaffs2/yaffs_guts.h
+++ b/fs/yaffs2/yaffs_guts.h
@@ -446,9 +446,10 @@
 	YCHAR shortName[YAFFS_SHORT_NAME_LENGTH + 1];
 #endif
 
-#ifndef __KERNEL__
+/* XXX U-BOOT XXX */
+/* #ifndef __KERNEL__ */
 	__u32 inUse;
-#endif
+/* #endif */
 
 #ifdef CONFIG_YAFFS_WINCE
 	__u32 win_ctime[2];
@@ -464,10 +465,10 @@
 
 	__u32 yst_rdev;
 
-#ifdef __KERNEL__
+/* XXX U-BOOT XXX */
+/* #ifndef __KERNEL__ */
 	struct inode *myInode;
-
-#endif
+/* #endif */
 
 	yaffs_ObjectType variantType;
 
@@ -626,15 +627,18 @@
 	__u32 chunkMask;
 	
 
-#ifdef __KERNEL__
+/* XXX U-BOOT XXX */
+#if 0
+#ifndef __KERNEL__
 
 	struct semaphore sem;	/* Semaphore for waiting on erasure.*/
 	struct semaphore grossLock;	/* Gross locking semaphore */
+	void (*putSuperFunc) (struct super_block * sb);
+#endif
+#endif
 	__u8 *spareBuffer;	/* For mtdif2 use. Don't know the size of the buffer 
 				 * at compile time so we have to allocate it.
 				 */
-	void (*putSuperFunc) (struct super_block * sb);
-#endif
 
 	int isMounted;
 	
@@ -883,10 +887,12 @@
 void yfsd_WinFileTimeNow(__u32 target[2]);
 #endif
 
-#ifdef __KERNEL__
-
+/* XXX U-BOOT XXX */
+#if 0
+#ifndef __KERNEL__
 void yaffs_HandleDeferedFree(yaffs_Object * obj);
 #endif
+#endif
 
 /* Debug dump  */
 int yaffs_DumpObject(yaffs_Object * obj);
diff --git a/fs/yaffs2/yaffs_mtdif.c b/fs/yaffs2/yaffs_mtdif.c
index 031827e..407ef2b 100644
--- a/fs/yaffs2/yaffs_mtdif.c
+++ b/fs/yaffs2/yaffs_mtdif.c
@@ -11,6 +11,9 @@
  * published by the Free Software Foundation.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 const char *yaffs_mtdif_c_version =
     "$Id: yaffs_mtdif.c,v 1.19 2007/02/14 01:09:06 wookey Exp $";
 
@@ -224,7 +227,10 @@
 
 	/* Todo finish off the ei if required */
 
+/* XXX U-BOOT XXX */
+#if 0
 	sema_init(&dev->sem, 0);
+#endif
 
 	retval = mtd->erase(mtd, &ei);
 
@@ -238,4 +244,3 @@
 {
 	return YAFFS_OK;
 }
-
diff --git a/fs/yaffs2/yaffs_mtdif2.c b/fs/yaffs2/yaffs_mtdif2.c
index 5a18725..cd2a2a1 100644
--- a/fs/yaffs2/yaffs_mtdif2.c
+++ b/fs/yaffs2/yaffs_mtdif2.c
@@ -13,6 +13,10 @@
 
 /* mtd interface for YAFFS2 */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+#include "asm/errno.h"
+
 const char *yaffs_mtdif2_c_version =
     "$Id: yaffs_mtdif2.c,v 1.17 2007/02/14 01:09:06 wookey Exp $";
 
@@ -229,4 +233,3 @@
 	else
 		return YAFFS_FAIL;
 }
-
diff --git a/fs/yaffs2/yaffs_nand.c b/fs/yaffs2/yaffs_nand.c
index 6a1585d..b201655 100644
--- a/fs/yaffs2/yaffs_nand.c
+++ b/fs/yaffs2/yaffs_nand.c
@@ -11,6 +11,9 @@
  * published by the Free Software Foundation.
  */
  
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 const char *yaffs_nand_c_version =
     "$Id: yaffs_nand.c,v 1.7 2007/02/14 01:09:06 wookey Exp $";
 
@@ -129,6 +132,3 @@
 {
 	return dev->initialiseNAND(dev);
 }
-
-
- 
diff --git a/fs/yaffs2/yaffs_packedtags1.c b/fs/yaffs2/yaffs_packedtags1.c
index f480bf1..a149431 100644
--- a/fs/yaffs2/yaffs_packedtags1.c
+++ b/fs/yaffs2/yaffs_packedtags1.c
@@ -11,6 +11,9 @@
  * published by the Free Software Foundation.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 #include "yaffs_packedtags1.h"
 #include "yportenv.h"
 
diff --git a/fs/yaffs2/yaffs_packedtags2.c b/fs/yaffs2/yaffs_packedtags2.c
index 6860876..467d5ac 100644
--- a/fs/yaffs2/yaffs_packedtags2.c
+++ b/fs/yaffs2/yaffs_packedtags2.c
@@ -11,6 +11,9 @@
  * published by the Free Software Foundation.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 #include "yaffs_packedtags2.h"
 #include "yportenv.h"
 #include "yaffs_tagsvalidity.h"
diff --git a/fs/yaffs2/yaffs_qsort.c b/fs/yaffs2/yaffs_qsort.c
index 0429838..a74709f 100644
--- a/fs/yaffs2/yaffs_qsort.c
+++ b/fs/yaffs2/yaffs_qsort.c
@@ -27,6 +27,9 @@
  * SUCH DAMAGE.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 #include "yportenv.h"
 //#include <linux/string.h>
 
diff --git a/fs/yaffs2/yaffs_tagscompat.c b/fs/yaffs2/yaffs_tagscompat.c
index 7622b1a..70a8a8c 100644
--- a/fs/yaffs2/yaffs_tagscompat.c
+++ b/fs/yaffs2/yaffs_tagscompat.c
@@ -11,6 +11,9 @@
  * published by the Free Software Foundation.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 #include "yaffs_guts.h"
 #include "yaffs_tagscompat.h"
 #include "yaffs_ecc.h"
diff --git a/fs/yaffs2/yaffs_tagsvalidity.c b/fs/yaffs2/yaffs_tagsvalidity.c
index 9e0bd1c..f588d3a 100644
--- a/fs/yaffs2/yaffs_tagsvalidity.c
+++ b/fs/yaffs2/yaffs_tagsvalidity.c
@@ -11,6 +11,9 @@
  * published by the Free Software Foundation.
  */
 
+/* XXX U-BOOT XXX */
+#include <common.h>
+
 #include "yaffs_tagsvalidity.h"
 
 void yaffs_InitialiseTags(yaffs_ExtendedTags * tags)
diff --git a/fs/yaffs2/yportenv.h b/fs/yaffs2/yportenv.h
index 8b80c6d..b316b16 100644
--- a/fs/yaffs2/yportenv.h
+++ b/fs/yaffs2/yportenv.h
@@ -17,11 +17,17 @@
 #ifndef __YPORTENV_H__
 #define __YPORTENV_H__
 
+/* XXX U-BOOT XXX */
+#ifndef CONFIG_YAFFS_DIRECT
+#define CONFIG_YAFFS_DIRECT
+#endif
+
 #if defined CONFIG_YAFFS_WINCE
 
 #include "ywinceenv.h"
 
-#elif  defined __KERNEL__
+/* XXX U-BOOT XXX */
+#elif  0 /* defined __KERNEL__ */
 
 #include "moduleconfig.h"
 
