[U-Boot] [PATCH] add explicit bbt creation to commandline

Scott Wood
2010-02-17T19:10:48Z

Steven Zedeck wrote:
> Scott Wood-2 wrote:
>> On Fri, Feb 12, 2010 at 06:14:51PM -0800, Steven Zedeck wrote:
>>> int board_nand_init(struct nand_chip *nand)
>>> {
>>> nand->ecc.mode = NAND_ECC_SOFT;
>>> #ifdef CFG_NAND_DBW_16
>>> nand->options = NAND_BUSWIDTH_16;
>>> #endif
>>> nand->cmd_ctrl = at91sam9rlek_nand_hwcontrol;
>>> nand->dev_ready = at91sam9rlek_nand_ready;
>>> nand->chip_delay = 20;
>>>
>>> return 0;
>>> }
>> Add "nand->options |= NAND_USE_FLASH_BBT;".
[snip]
> I really appreciate your help. I added what you suggested, except since we
> are using an 8 bit wide bus and not 16 I had to do the following:
>
> #ifdef CFG_NAND_DBW_8
> nand->options |= NAND_USE_FLASH_BBT;
> #endif

I don't see why the ifdef is needed -- just don't put it inside (or
before) the other ifdef.

> Now when my board boots I get this and then it just stops:
> NAND: Entering nand_init
> Nand Base 0x40000000
> Bad block table not found for chip 0
> Bad block table not found for chip 0

The messages are expected on the first boot -- but it should then create
the bad block table.

You'll have to debug to find out why it's hanging. If you don't set
NAND_USE_FLASH_BBT, does ordinary nand read/write from the u-boot prompt
work?

-Scott