[U-Boot] 8/16 bit support for NAND at runtime

Scott Wood scottwood at freescale.com
Tue Mar 23 17:15:07 CET 2010


On Thu, Mar 04, 2010 at 04:02:31PM +0530, Vipin KUMAR wrote:
> Hi All,
> 
> This query is wrt NAND 8/16 bit device support at runtime. Currently,
> the u-boot code can support only one of these at a time.
> 
> Although the NAND device in itself can be recognized by reading the
> device id, the NAND controllers may need different platform specific
> initializations for different device attached.
> 
> The current u-boot is written in such a way that
> 1. Initializes chip->options for a particular buswidth option
> 2. calls board_nand_init once and proceeds to read the device id
> 
> Although it matches the buswidth selected through chip->options and the
> the buswidth of device id it reads and returns an error if they don't 
> match, probably a better way can be to reinitialize NAND controller 
> based on 16 bit device and re-read the device id.

At some point I'd like to see u-boot transition to a more flexible NAND init
such as what Linux has (nand_scan_ident/nand_scan_tail).  These are actually
in u-boot now, but they're covered up by less flexible init wrapper code.

That way, it would be up to the controller driver to manage this process. 
It could try different options if it wants, and only record the successful
one in nand_info[].  It could also make changes between the ident phase and
the bbt scan based on what the ident reveals, such as page size.

-Scott


More information about the U-Boot mailing list