
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