Memory technology devices.

David Woodhouse (D.W.Woodhouse@nortel.co.uk)
Wed, 17 Sep 1997 15:40:31 +0100


This is a multipart MIME message.

--===_0_Wed_Sep_17_15:36:46_BST_1997
Content-Type: text/plain; charset=us-ascii

I have put together a system for accessing memory devices, such as flash
cards, EMM expansion cards (remember them?), ROM directly mapped into physical
memory, etc.

Each MTD presents itself to the generic driver with a set of routines: read,
write, etc. The generic driver presents to the user a pair of character
devices for each MTD present, for read-only or normal operation. These
character devices have ioctls for managing erase operations, and for passing
information on the type of memory technology present.

So far I've done MTD drivers for physically mapped ROM/RAM and for an
M-Systems ISA Flash Disk. I'd like to get PCMCIA devices to use this system,
too, which means rewriting memory_cs.c.

On top of the MTD subsystem, it is possible to add drivers for things like FTL
(Flash Translation Layer), which I've also ported to this system from the
PCMCIA distribution, and have running.

This is all fairly new, and needs a fair amount of work, but I'd like to show
it to people now, because I realise I'm treading on a few peoples' toes here,
and would like some input before I go ahead and tidy it up.

So: Would anyone, especially those involved with the PCMCIA code that I've
either stolen or intend to replace, like to request changes to the way I'm
doing it, before I start tidying it up and trying to make it fit for release?

--===_0_Wed_Sep_17_15:36:46_BST_1997
Content-Type: application/octet-stream
Content-Description: mtd-pre-alpha-0.00001.tar.gz
Content-Transfer-Encoding: base64

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

--===_0_Wed_Sep_17_15:36:46_BST_1997
Content-Type: text/plain; charset=us-ascii

David Woodhouse, CB3 9AN http://dwmw2.robinson.cam.ac.uk/
dwmw2@cam.ac.uk Tel: 0976 658355
D.W.Woodhouse@nortel.co.uk Tel: 01279 402332

--===_0_Wed_Sep_17_15:36:46_BST_1997--