Jim Donelson wrote:
-If we are talking about regular SD cards, there is no internal wear
leveling.
It is up to the driver to do that.
The driver only could do that, if the interface to the card is done as
the interface of of SPI Flash chips:
- Writing is only possible on erased areas
- there is a block erase command. (with block size several 100 K Bytes)
Here the driver needs to know about the physical block size.
The soon coming wear out of a block needs to be detected by measuring
the time necessary to erase a block.
Also to do wear leveling the driver would need to write information
about spare and worn out blocks onto the card. As the card is
exchangeable between different systems running different OSes, there
would need to be a standard on how this is done. I never heard about
something like that.
If in fact the card provides an interface like an SPI Flash chip, with
Linux supposedly use an MTD driver would be used to physically access
it. On top of that it would be viable to use JFFS2 to do the wear
leveling. But I never heard about a way to do a wear leveling layer
between the card interface and an FAT file system.
If the logical interface of the SD card is done similar to that of an FC
card or an IDE driver (with randomly readable and writable 512 Byte
sectors) the wear leveling needs to be made internally in the card.
A string indicator of the card doing internal wear leveling is the size.
If it provides all it's data bytes "naked", the byte count should be
exactly 2**n. if it's 2**n - x, the remaining bytes will be used for
wear leveling.
When activating the SD card in my uClinux system by "modprobe mmc0" I
get the message:
mmc0: new SD card on SPI
mmc0: mmc0:0000 121 MiB
This is a 128 MB SD-card.
So I do suppose that there is an internally reserved memory area used
for wear leveling.
--Michael
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev