M-Systems Flash Disk compliance.
ccaudle at pdq.net
Wed Nov 15 20:39:35 UTC 2000
>===== Original Message From Erik Ivanenko <erik.ivanenko at utoronto.ca> =====
>First, I need to know: Can grub be loaded onto the M-Systems Flash disk
>to boot pc-386?
Yes, that works fine.
>Also, I've heard suggestions that RTEMS may soon have native file system
>support. Hopefully, this is M-Systems compatible.
Here is what goes on, from my understanding:
Background: Flash devices have limited write lifetimes, with various numbers
of writes before error rates start going up quickly, from 10k to 100k writes.
A "flash file system" will try to map blocks used across the device with some
type of fairness algorithm such that no block on the device has a much larger
proportion of writes than other blocks. What that would mean in practice is
that if a particular file system block had heavy write activity, the mapping
between the file system block and the flash memory location would have to
change with time.
M-Systems have a file system for that purpose, but it is not open source.
The Disk-On-Chip devices work by installing a handler for interrupt 13 which
includes the flash "wear levelling" code. GrUB loads the executable image by
using calls to int 13. A native file system on RTEMS would presumably expect
a block device interface interface of some kind, so there would have to be a
block device interface wrapped around the wear leveling code.
M-Systems will provide you that code, I believe, but you would not be able to
distribute it, so it would not become a generic solution for RTEMS.
If you noticed, the number of writes before you had to worry about the device
wearing out was relatively large. If you can deal with a mostly read only
file system, you would not have to worry about wear leveling, and just a plain
ROM based file system should work. The IMFS might even work if you could
convince it to use a memory space other than heap, but I'm not sure of the
details of that implementation.
A different but similar option is to use one of the M-Systems IDE interface
products, rather than the Disk-On-Chip. With those, you just write a generic
IDE driver, and the M-Systems device handles all of the wear levelling
internally. The cost is a little higher, but the advantage is that you can
move back and forth between real IDE hard drives, and the M-Systems solid
state drive without changing your code.
-- Chris Caudle
More information about the users