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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot