
Hi Eric,
On Wednesday, February 27, 2013 12:11:04 PM, Eric Bénard wrote:
Hi Fabio,
Le Tue, 26 Feb 2013 15:35:20 -0300, Fabio Estevam fabio.estevam@freescale.com a écrit :
Currently is_16bit_nand() is a per SoC function and it decides the bus nand width by reading some boot related registers.
This method works when NAND is the boot medium, but does not work if another boot medium is used. For example: booting from a SD card and then using NAND to store the environment variables, would lead to the following error:
NAND bus width 16 instead 8 bit No NAND device found!!! 0 MiB
Use CONFIG_SYS_NAND_BUSWIDTH_16BIT symbol to decide the bus width.
If it is defined in the board file, then consider 16-bit NAND bus-width, otherwise assume 8-bit NAND is used.
This also aligns with Documentation/devicetree/bindings/mtd/nand.txt, which states:
nand-bus-width : 8 or 16 bus width if not present 82
are you sure that your patch won't break current boards booting on nand flash (and so which can use the current functions to detect the nand width) ?
This code is not used for NAND boot, for which the SPL version of this driver and CONFIG_SYS_NAND_BUSWIDTH_16 are used.
Best regards, Benoît