
Ok...
What about supporting SLC. I dont have a Chip pro, but are you sure that the current logic works for that too?
Thanks & Regards Gunjan Gupta
On Mon, Mar 22, 2021, 11:58 PM Maxime Ripard maxime@cerno.tech wrote:
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/6ddbb1e936c78cdef1e7395039fa7020c5c7...
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