AW: UBI - NAND Flash Programming

Musch, Edwin musche at dataio.com
Tue May 5 17:41:37 EDT 2009


Hello Artem Bityutskiy

Thank you so far for your info.

I'm working on the device level of the chip, but I'm not using the Linux kernel. Only our customer does but we have to follow the UBI convention.

We are programming blank chips in production so there is nothing in the NAND flash. This means I do not have to change anything from the Image, right?
So I don't have to make any updates within the main and the spare area, right?

With question 2 & 3 I try to say. Do I need to update a dependency if a block will be moved? Is there something in the main / spare area of the NAND flash that needs to be updated if a block will be moved into the next good block.

Could you provide me the structure of the table if "NAND_USE_FLASH_BBT" is enabled?

Mit freundlichen Grüßen / Best Regards
Edwin Musch
Dipl. - Ing.
FAE - Support Team
6464 185th Avenue NE - Suite 101
Redmond, WA, USA, 98052
Fon:          +1 425 867 6268
@:             musche at data.io.com
web:          www.data-io.com

-----Ursprüngliche Nachricht-----
Von: Artem Bityutskiy [mailto:dedekind at infradead.org] 
Gesendet: Dienstag, 5. Mai 2009 07:18
An: Musch, Edwin
Cc: linux-mtd at lists.infradead.org
Betreff: Re: UBI - NAND Flash Programming

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