[U-Boot] NAND 16 bit buswidth issue

Pete Murray pmurray at dawning.com
Thu Aug 19 15:07:48 CEST 2010


I am running U-boot 2009.08 on a sequoia based custom board.  The board 
has a Micron 29F2G16AAD nand chip.  This chip is a large page device 
with a 16 bit buswidth.  I have an issue in nand_base.c in the 
nand_get_flash_type function where the check for buswidth fails, causing 
the print out -

printk(KERN_WARNING "NAND bus width %d instead %d bit\n",
                       (chip->options & NAND_BUSWIDTH_16) ? 16 : 8,
                       busw ? 16 : 8);

The busw is read from the nand chip and is correct, but the 
chip->options is incorrect.   I don't see where this gets set to the 
options shown in nand_ids.c.  I see that here:

        /* Lookup the flash id */
        for (i = 0; nand_flash_ids[i].name != NULL; i++) {
                if (dev_id == nand_flash_ids[i].id) {
                        type =  &nand_flash_ids[i];
                        break;
                }
        }


type gets the correct values from nand_ids, should the value of 
type->options be assigned to chip->options?  Or am I missing something 
and need to set chip->options somewhere in my board specific files?









More information about the U-Boot mailing list