UBI - NAND Flash Programming

Artem Bityutskiy dedekind at infradead.org
Tue May 5 01:18:15 EDT 2009


On Mon, 2009-05-04 at 08:39 -0700, Musch, Edwin wrote:
> 
> Hello
> 
> I am from Data I/O. We produce mass production Flash programming equipment.
> We received a request from Keymile/Germany to support the UBI.
> 
> As you will know we need to program the raw NAND Flash the same way than the application is handling the NAND Flash ( bad blocks )
> 
> Could you please give me further information regarding the Bad Block Handling? Since we are programming the NAND Flash only once we are not worried about wear levelling.
> 

You have an UBI image, and you need to flash it to your device,
right?

> 1) If we detect a bad block where should we move the Data
>    a. SKIP: go on with the next good block - or
>    b. Put the Data into a reserved area
>       c. Please let me know where this area is defined

a).

> 2) Do I need to update the Main area if I move a block? - Is there a header?
> 3) Could you explain the info within the spare area? 
>    a. Do I need to update anything if I move a block to different location?
>    b. ECC - In case I need to update the main area - How is it done?

I do not really understand these questions, sorry.

> 4) Are there any dynamic table somewhere that needs to be updated - Bad block table?

There might be. It depends what you MTD driver chooses. See the
NAND_USE_FLASH_BBT option in the linux kernel. I personally never
used on-flash BBT.

Please, take a look here:
http://www.linux-mtd.infradead.org/doc/ubi.html#L_format

The flashing algorithm is described there.

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




More information about the linux-mtd mailing list