Hi Huang,
I happen to saw this post when i am scratching my head trying to booting the i.mx6solo from a 4GB NAND flash.
I had manage to flash the u-boot and kernel into the NAND flash using kobs-ng version 1.3.
After flashing in the u-boot and kernel, i am able to boot up the u-boot from NAND.
However, the u-boot is not able to load and go into kernel. It seems like seeing all blocks as bad blocks.
U-Boot 2009.08 (May 06 2015 - 08:31:00)
BOOTLOADER_VER=1.03
CPU: Freescale i.MX 6 family 0.2V at 792 MHz
Temperature: 56 C, calibration data 0x5aa52169
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66666666Hz
ipg per clock : 66666666Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 133333333Hz
axi clock : 200000000Hz
emi_slow clock: 22222222Hz
ddr clock : 400000000Hz
usdhc1 clock : 200000000Hz
usdhc2 clock : 200000000Hz
usdhc3 clock : 200000000Hz
usdhc4 clock : 200000000Hz
nfc clock : 11000000Hz
Board: i.MX6DL/Solo-SABRESD: unknown-board Board: 0x61002 [POR ]
Boot Device: NAND
I2C: ready
DRAM: 512 MB
NAND: NAND device: Manufacturer ID: 0x2c, Chip ID: 0x44 (Micron NAND 4GiB 3,3V 8-bit)
Manufacturer : Micron (0x2c)
Device Code : 0x44
Cell Technology : MLC
Chip Size : 4 GiB
Pages per Block : 256
Page Geometry : 4096+224
ECC Strength : 12 bits
ECC Size : 512 B
Data Setup Time : 15 ns
Data Hold Time : 10 ns
Address Setup Time: 20 ns
GPMI Sample Delay : 6 ns
tREA : 20 ns
tRLOH : 5 ns
tRHOH : 15 ns
Description : MT29F32G08CBADAWP (4GB)
2048 MiB
MMC: FSL_USDHC: 0,FSL_USDHC: 1
Using default environment
In: serial
Out: serial
Err: serial
curr nand dev: 0
NAND read: device 0 offset 0x500000, size 0x1000
Skipping bad block 0x00500000
Skipping bad block 0x00600000
Skipping bad block 0x00700000
Skipping bad block 0x00800000
Skipping bad block 0x00900000
Skipping bad block 0x00a00000
Skipping bad block 0x00b00000
Skipping bad block 0x00c00000
Skipping bad block 0x00d00000
read failed @ offset 0xe00000 size 4096, ecc_stats.failed inc 8
NAND read from offset e00000 failed -74
0 bytes read: ERROR
Net: got MAC address from IIM: 00:00:00:00:00:00
FEC0
Hit Ctrl-C to stop autoboot: 0
NAND read: device 0 offset 0x600000, size 0x300000
Skipping bad block 0x00600000
Skipping bad block 0x00700000
Skipping bad block 0x00800000
Skipping bad block 0x00900000
Skipping bad block 0x00a00000
Skipping bad block 0x00b00000
Skipping bad block 0x00c00000
Skipping bad block 0x00d00000
read failed @ offset 0xe00000 size 1048576, ecc_stats.failed inc 2042
NAND read from offset e00000 failed -74
0 bytes read: ERROR
Wrong Image Format for bootm command
ERROR: can't get kernel image!
MX6SDL SABRESD U-Boot >
After checking through the code, it seems like the cmd.nand.c uses lot's of 32 bits address space. There is even a FIXME in the source code stating that uboot cmd_nand does not support 64bit address space. 4GB is 33 bits address space. Could this be the issue?
I am using u-boot version 2009.08. NAND is MT29F32G08CBADAWP.
Is there any patch that i can apply for this u-boot version to fix the issue? Thanks.
Regards,
zc