diff -U2 -r -N -x CVS linux-2_2-orig/Documentation/Configure.help linux-2_2-doc/Documentation/Configure.help
--- linux-2_2-orig/Documentation/Configure.help	Thu Nov  9 15:19:19 2000
+++ linux-2_2-doc/Documentation/Configure.help	Thu Nov  9 15:19:19 2000
@@ -700,4 +700,28 @@
   called DAC960.o. 
 
+M-Systems DiskOnChip 2000 Support
+CONFIG_BLK_DEV_MSYS_DOC
+  This driver adds support for the M-Systems DiskOnChip 2000 Flash
+  device. 
+
+  The driver is composed of a pre-compiled library (libosak.a) and
+  the linux driver (fldrvlnx.c). 
+
+  You may compile as a module or link directly into the kernel. 
+  
+  If used as a module you may wish to enable the INITRD option to
+  allow the module to be loaded prior to final system startup so
+  that the root filesystem can be on the DOC device.
+
+  Because of GPL restrictions you may not distribute a kernel with 
+  the doc driver linked into it (you must be able to distribute
+  all source code for everything linked into any kernel you provide
+  to someone.) 
+
+  You may (subject to the restrictions outlined in the README.TXT
+  file that accompanies the software) distribute the doc driver as 
+  a module. 
+
+
 Parallel port IDE device support
 CONFIG_PARIDE
diff -U2 -r -N -x CVS linux-2_2-orig/drivers/block/Config.in linux-2_2-doc/drivers/block/Config.in
--- linux-2_2-orig/drivers/block/Config.in	Thu Nov  9 15:19:19 2000
+++ linux-2_2-doc/drivers/block/Config.in	Thu Nov  9 15:19:19 2000
@@ -142,3 +142,6 @@
 fi
 
+# 
+tristate 'M-Systems DOC device support' CONFIG_BLK_DEV_MSYS_DOC
+
 endmenu
diff -U2 -r -N -x CVS linux-2_2-orig/drivers/block/Makefile linux-2_2-doc/drivers/block/Makefile
--- linux-2_2-orig/drivers/block/Makefile	Thu Nov  9 15:19:19 2000
+++ linux-2_2-doc/drivers/block/Makefile	Thu Nov  9 15:19:19 2000
@@ -24,4 +24,5 @@
 M_OBJS   :=
 MOD_LIST_NAME := BLOCK_MODULES
+MOD_TO_LIST :=
 LX_OBJS := ll_rw_blk.o
 MX_OBJS :=
@@ -302,4 +303,14 @@
   ifeq ($(CONFIG_PARIDE),m)
   MOD_IN_SUB_DIRS	+= paride
+  endif
+endif
+
+ifeq ($(CONFIG_BLK_DEV_MSYS_DOC),y)
+SUB_DIRS	+= doc
+MOD_IN_SUB_DIRS	+= doc
+L_OBJS          += doc/doc.o
+else
+  ifeq ($(CONFIG_BLK_DEV_MSYS_DOC),m)
+  MOD_SUB_DIRS	+= doc
   endif
 endif
diff -U2 -r -N -x CVS linux-2_2-orig/drivers/block/doc/Makefile linux-2_2-doc/drivers/block/doc/Makefile
--- linux-2_2-orig/drivers/block/doc/Makefile	Wed Dec 31 16:00:00 1969
+++ linux-2_2-doc/drivers/block/doc/Makefile	Tue Jan 23 12:27:22 2001
@@ -0,0 +1,39 @@
+#
+# Makefile for a block device driver
+# for the DiskOnChip flash module from M-Systems
+# 
+# Copyright (C) 1998 IGEL GmbH
+#
+# 16.8.98 updated by Ron Dick, rond@m-sys.com
+
+O_TARGET := doc.o
+O_OBJS := fldrvlnx.o libosak.a 
+M_OBJS   := $(O_TARGET)
+
+FL_DEBUG = -DFL_DEBUG=1 -DDEBUG_FL=1 -DDEBUG_FL_MORE=1 -DDEBUG_FL_INIT=1
+
+ifndef TOPDIR
+TOPDIR = /usr/src/linux
+endif
+
+ifndef CFLAGS
+CFLAGS = -I$(TOPDIR)/include -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strength-reduce $(FL_DEBUG)
+endif
+
+all: $(O_TARGET)
+
+clean:
+	-@rm -f $(O_TARGET) *.o *.a 
+test: 
+	@echo $(TOPDIR)
+	@echo $(CFLAGS)
+
+libosak.a: libosak.uu
+	uudecode libosak.uu
+
+fldrvlnx.c: compat20.h compat20.c compat22.h compat22.c compat24.h compat24.c
+	touch $@
+
+# Real actions are started from Rules.make
+include $(TOPDIR)/Rules.make
+
diff -U2 -r -N -x CVS linux-2_2-orig/drivers/block/ll_rw_blk.c linux-2_2-doc/drivers/block/ll_rw_blk.c
--- linux-2_2-orig/drivers/block/ll_rw_blk.c	Thu Nov  9 15:19:19 2000
+++ linux-2_2-doc/drivers/block/ll_rw_blk.c	Thu Nov  9 15:19:19 2000
@@ -912,4 +912,7 @@
 	dasd_init();
 #endif
+#ifdef CONFIG_BLK_DEV_MSYS_DOC
+	fl_init();
+#endif CONFIG_BLK_DEV_MSYS_DOC
 	return 0;
 };
diff -U2 -r -N -x CVS linux-2_2-orig/include/linux/blk.h linux-2_2-doc/include/linux/blk.h
--- linux-2_2-orig/include/linux/blk.h	Thu Nov  9 15:19:19 2000
+++ linux-2_2-doc/include/linux/blk.h	Thu Nov  9 15:19:19 2000
@@ -64,4 +64,7 @@
 extern int bpcd_init(void);
 extern int ps2esdi_init(void);
+#ifdef CONFIG_BLK_DEV_MSYS_DOC
+extern int fl_init(void);
+#endif CONFIG_BLK_DEV_MSYS_DOC
 
 #ifdef CONFIG_ARCH_S390
diff -U2 -r -N -x CVS linux-2_2-orig/include/linux/major.h linux-2_2-doc/include/linux/major.h
--- linux-2_2-orig/include/linux/major.h	Thu Nov  9 15:19:19 2000
+++ linux-2_2-doc/include/linux/major.h	Thu Nov  9 15:19:19 2000
@@ -114,4 +114,6 @@
 #define AURORA_MAJOR 79
 
+#define FLASH_MAJOR		100
+
 #define UNIX98_PTY_MASTER_MAJOR	128
 #define UNIX98_PTY_MAJOR_COUNT	8
