Re: Flashdisk, M-Systems, Devicedriver, TrueFFS, Booting

David Woodhouse (
Mon, 19 Jan 1998 15:12:54 +0000 said:
> i have a M-Systems Flashdisk PCD-896 (ISA) with 4 MB. With an
> BIOS-Extension and TrueFFS it's possible to access the disk like an
> normal harddisk (realtime stuff under DOS)...

> I like to boot a very small linux from that Flashdisk into RAM. But
> after switching to protected-mode i need a kernel-driver, or?

> I searched for a kernel-driver for this hardware, but i didn't found
> any. But in devices.txt i found...

Hi. That'd have been me. I've was working on drivers for this over the summer
vacation, while I was working for Nortel. I got it to the point where it would
read and write FFS on the cards.

My code is at

There's a generic MTD (Memory Technology Device) driver, an FTL driver (ported
from the PCMCIA distribution), and a couple of memory device drivers - one to
use standard memory, and the M-Systems ISA card driver. It's set up for the
4Mb card, AFAICR, but it should be simple enough to change it to other sizes.
I just didn't have enough of the cards to work out how to tell them apart.

There's no makefiles - just use the gcc command line that the kernel uses to
make modules.

Also, it's against about 2.1.57, which was just before a handful of VFS
changes (inode->dentry, etc.), but that should be fairly trivial to fix.

Obviously, if you want to use it as a root fs, you'll need to compile it in,
but that shouldn't take too much work.

The main problem with it is that it is _very_ slow to write, and tends to
hangs the machine up for the duration of the write. If it were to set current->
timeout to a sensible value before calling schedule() when it is waiting for
the flash card, that should improve. Busy-waiting is bad :)

The reason that I stopped working on it was to wait for the changes to the
PCMCIA code to support generic MTD devices, after discussion with David Hinds.
It was silly for me to provide a generic MTD subsystem when there was already
one provided by the PCMCIA code. All that needed doing was separating the MTD
system from the PCMCIA so that you could have the former without the latter.

I went on to other things before I left, and I don't know if Nortel ever picked
up the project, or even if the PCMCIA subsystem now supports generic MTD
devices in the way we want.

Note that if you want to boot from it, the easiest solution is to put a DOS
partition on it and use LOADLIN. You can update LILO to know about it later,
perhaps, or make the FTL driver fake the geometry so it looks exactly how the
BIOS routines present it.

----                              ----                              ----
David Woodhouse, Robinson College, CB3 9AN, England.   (+44) 0976 658355
	    finger for PGP key.