diff -U2 -r -N -x CVS linux-2_3_99-orig/Documentation/Configure.help linux-2_3_99-doc/Documentation/Configure.help
--- linux-2_3_99-orig/Documentation/Configure.help	Thu Nov  9 15:19:19 2000
+++ linux-2_3_99-doc/Documentation/Configure.help	Thu Nov  9 15:19:19 2000
@@ -1173,4 +1173,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_3_99-orig/drivers/block/Config.in linux-2_3_99-doc/drivers/block/Config.in
--- linux-2_3_99-orig/drivers/block/Config.in	Thu Nov  9 15:19:19 2000
+++ linux-2_3_99-doc/drivers/block/Config.in	Thu Nov  9 15:19:19 2000
@@ -60,3 +60,6 @@
 dep_bool '  Initial RAM disk (initrd) support' CONFIG_BLK_DEV_INITRD $CONFIG_BLK_DEV_RAM
 
+# 
+tristate 'M-Systems DOC device support' CONFIG_BLK_DEV_MSYS_DOC
+
 endmenu
diff -U2 -r -N -x CVS linux-2_3_99-orig/drivers/block/Makefile linux-2_3_99-doc/drivers/block/Makefile
--- linux-2_3_99-orig/drivers/block/Makefile	Thu Nov  9 15:19:19 2000
+++ linux-2_3_99-doc/drivers/block/Makefile	Thu Nov  9 15:19:19 2000
@@ -44,4 +44,5 @@
 
 obj-$(CONFIG_BLK_DEV_NBD)	+= nbd.o
+obj-$(CONFIG_BLK_DEV_MSYS_DOC)  += doc/doc.o
 
 ifeq ($(CONFIG_PARIDE),y)
@@ -70,4 +71,14 @@
 M_OBJS		:= $(sort $(filter-out $(export-objs), $(obj-m)))
 MX_OBJS		:= $(sort $(filter	$(export-objs), $(obj-m)))
+
+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
 
 include $(TOPDIR)/Rules.make
diff -U2 -r -N -x CVS linux-2_3_99-orig/drivers/block/doc/Makefile linux-2_3_99-doc/drivers/block/doc/Makefile
--- linux-2_3_99-orig/drivers/block/doc/Makefile	Wed Dec 31 16:00:00 1969
+++ linux-2_3_99-doc/drivers/block/doc/Makefile	Tue Jan 23 12:27:28 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_3_99-orig/drivers/block/ll_rw_blk.c linux-2_3_99-doc/drivers/block/ll_rw_blk.c
--- linux-2_3_99-orig/drivers/block/ll_rw_blk.c	Thu Nov  9 15:19:19 2000
+++ linux-2_3_99-doc/drivers/block/ll_rw_blk.c	Thu Nov  9 15:19:19 2000
@@ -1074,4 +1074,7 @@
 	mfm_init();
 #endif
+#ifdef CONFIG_BLK_DEV_MSYS_DOC
+	fl_init();
+#endif CONFIG_BLK_DEV_MSYS_DOC
 #ifdef CONFIG_PARIDE
 	{ extern void paride_init(void); paride_init(); };
diff -U2 -r -N -x CVS linux-2_3_99-orig/include/linux/blk.h linux-2_3_99-doc/include/linux/blk.h
--- linux-2_3_99-orig/include/linux/blk.h	Thu Nov  9 15:19:19 2000
+++ linux-2_3_99-doc/include/linux/blk.h	Thu Nov  9 15:19:19 2000
@@ -64,4 +64,8 @@
 extern int rd_image_start;	/* starting block # of image */
 
+#ifdef CONFIG_BLK_DEV_MSYS_DOC
+extern int fl_init(void);
+#endif CONFIG_BLK_DEV_MSYS_DOC
+
 #ifdef CONFIG_BLK_DEV_INITRD
 
diff -U2 -r -N -x CVS linux-2_3_99-orig/include/linux/major.h linux-2_3_99-doc/include/linux/major.h
--- linux-2_3_99-orig/include/linux/major.h	Thu Nov  9 15:19:19 2000
+++ linux-2_3_99-doc/include/linux/major.h	Thu Nov  9 15:19:19 2000
@@ -124,4 +124,5 @@
 #define JSFD_MAJOR	99
 
+#define FLASH_MAJOR	100
 #define PHONE_MAJOR	100
 
