I figured it was about time for me to write some documentation for these
drivers. They are heavily based on the memory subsystem developed by David 
Hinds for his PCMCIA package.

The main directory contains four kernel modules:

mtd.o		Generic 'Memory Technology Device' subsystem.
	This presents a character device interface on major #90

physmem.o	Physical memory device driver.
	This uses physical memory as a storage device. 
	To use it, you must tell your kernel not to use all the RAM available
	in your system. It's currently set up to use RAM between 96M and 128M -
	as with a 128Mb machine booted with 'mem=96M'.

flashcard.o	Driver for M-Systems' 4Mb ISA flash card.
	This is hard-coded to use the ISA flash card at the exact memory
	address I had originally set it up to use. It should be fairly easy to
	modify it to auto-detect the cards, and also to use the Disk-on-Chip,
	and other paging flash systems.

ftl.o		Flash Translation Layer driver.
	This is almost a straight copy of the FTL driver from David Hinds' 
	PCMCIA distribution, except that it's now modified to allow partitions
	on FTL devices. It scans all registered MTD devices for a flash 
	filesystem, and makes them available as block devices on major #44.

The system has now been ported to the 2.2.0-pre5 kernel, and vaguely tested.
Unfortunately I no longer have access to any suitable flash devices, so have
only tested the 'physmem' driver, along with the mtd and ftl modules.

If you have spare hardware that you would like to donate/loan to me in order
to complete the flash driver, please contact me at the address below.

-----------

There is also a copy of the ftl_format program from the PCMCIA distribution, 
slightly modified to work with the MTD subsystem.

This is an example of its usage:
	
devel2 /homes/dwmw2/working/mtd # insmod physmem
mtd: Giving out device 0 to Raw memory
Registered physmem device from 98304Kb to 131072Kb
Mapped from 0xc6c77000 to 0xc8c77000
devel2 /homes/dwmw2/working/mtd # ./ftl_format /dev/mtd0
Partition size = 32 mb, erase unit size = 64 kb, 1 transfer units
Reserved 5%, formatted size = 31072 kb
Erasing all blocks...
+++++++*+++++++*+++++++*+++++++*
Writing erase unit headers...
format successful.
devel2 /homes/dwmw2/working/mtd # insmod ftl
Valid FTL partition found.
 ftla: unknown partition table
devel2 /homes/dwmw2/working/mtd # mkfs /dev/ftla
mke2fs 1.12, 9-Jul-98 for EXT2 FS 0.5b, 95/08/09
Linux ext2 filesystem format
Filesystem label=
7776 inodes, 31072 blocks
1553 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
4 block groups
8192 blocks per group, 8192 fragments per group
1944 inodes per group
Superblock backups stored on blocks:
        8193, 16385, 24577

Writing inode tables: done
Writing superblocks and filesystem accounting information: done
devel2 /homes/dwmw2/working/mtd # mount /dev/ftla /mnt/spare
devel2 /homes/dwmw2/working/mtd # 	

----------

The 'obsolete' directory contains some standalone drivers, and other stuff 
that I can't remember much about, but might turn out to be useful one day.


Happy Hacking.

$Id: README,v 1.2 2000/03/30 11:38:48 dwmw2 Exp $

David Woodhouse <Dave@imladris.demon.co.uk>
