Hi, On Sun, Mar 21, 2021 at 08:04:08PM +0530, Gunjan Gupta wrote: > I figured out the why SPL was not loading U-Boot from NAND. > > Apparently the logic to use PIO instead of DMA that was introduced in > 6ddbb1e936c78cdef1e7395039fa7020c5c75326 > <https://github.com/u-boot/u-boot/commit/6ddbb1e936c78cdef1e7395039fa7020c5c75326> > may > be was not as generic as it was supposed to be. I tried adding hexdump in > nand_read_page and found that on CHIP the logic was not reading and real > data. Instead all of the bytes were set to 0s. > > I have created a patch to provide an option to use the older version of > nand_read_page function that was present just before the above mentioned > commit. > > With the attached patches and some config changes the Upstream U-Boot works > fine on CHIP. I have tested the attached patches on CHIP with 8GB Hynix > nand along with the following extra configurations.
An MLC NAND without proper support will work fine until it won't. I would strongly discourage you to use it. > CONFIG_MTD=y > CONFIG_CMD_MTD=y > CONFIG_CMD_MTDPARTS=y > CONFIG_MTDIDS_DEFAULT="nand0=sunxi-nand.0" > CONFIG_MTDPARTS_DEFAULT="mtdparts=sunxi-nand.0:4m(spl),4m(spl-backup),4m(uboot),4m(env),-(yaffs2)" > CONFIG_MTD_RAW_NAND=y > CONFIG_SYS_NAND_BLOCK_SIZE=0x400000 > CONFIG_SYS_NAND_PAGE_SIZE=0x4000 > CONFIG_SYS_NAND_OOBSIZE=0x680 > CONFIG_ENV_IS_IN_NAND=y > CONFIG_ENV_SIZE=0x400000 > CONFIG_ENV_OFFSET=0xc00000 > CONFIG_FASTBOOT_FLASH_NAND=y > CONFIG_YAFFS2=y > > @Andre will it be possible to get the attached patches merged into the > U-Boot? And we definitely shouldn't make it easy Maxime