giving room for Linux filesystems on MLC/SLC

Artem Bityutskiy dedekind1 at
Tue Oct 20 08:39:25 EDT 2009

On Tue, 2009-10-20 at 12:56 +0200, Emmanuel Michon wrote:
> Hello,
> we're preparing in my company the software for a general purpose (.5K,
> 2K, 4KB page)
> hardware MLC/SLC controller, especially how we're going to
> choose the byte offsets of a page+spare for `metadata' and `bad
> blocks' (those are excluded by our ECC check hardware).
> 0                                               4096+epsilon
> | metadata | data | bb info | data
> Our primary goal is to be compatible with our proprietary filesystem,
> but if we can enable Linux family of MTD FS with little effort, let's
> prepare it
> `bad block' information is a hardware stuff (unconsistently, poorly)
> documented to be near the start of spare area.
> For some reason we have this 4 byte metadata at the start of each
> page. Does this software concept apply to ubifs and friends and should
> it be sized differently?

We work with an abstract flash mode: it consists of eraseblock, each
eraseblock has several min. I/O units. So if in your cases the driver
hides these meta-data bytes, it should be fine.

However, current UBIFS is hard-coded with an assumption that min. I/O
size is power of 2. This would probably have to change. There was no
fundamental reason why we did it like this, we just wanted to save some
CPU cycles and avoid divisions. But this can be changed.

> Btw, any success stories about UBIFS+MLC since the FAQ report on this topic?

I have not heard them.

Best Regards,
Artem Bityutskiy (Артём Битюцкий)

More information about the linux-mtd mailing list