Hi,
I'm bringing-up an i.MX 8M Mini custom board. We added 2x Toshiba/Kioxia SLC NAND TH58NYG3S0HBAI6 flash chips.
During kernel boot, the following problem happens:
[ 1.832824] gpmi-nand 33002000.nand-controller: DMA timeout, last DMA
[ 1.839280] gpmi-nand 33002000.nand-controller: Show GPMI registers :
[ 1.845730] gpmi-nand 33002000.nand-controller: offset 0x000 : 0x03800000
[ 1.852525] gpmi-nand 33002000.nand-controller: offset 0x010 : 0x00000000
[ 1.859318] gpmi-nand 33002000.nand-controller: offset 0x020 : 0x00000000
[ 1.866113] gpmi-nand 33002000.nand-controller: offset 0x030 : 0x00000000
[ 1.872906] gpmi-nand 33002000.nand-controller: offset 0x040 : 0x00000000
[ 1.879700] gpmi-nand 33002000.nand-controller: offset 0x050 : 0x00000000
[ 1.886494] gpmi-nand 33002000.nand-controller: offset 0x060 : 0x010c000c
[ 1.893288] gpmi-nand 33002000.nand-controller: offset 0x070 : 0x00020101
[ 1.900082] gpmi-nand 33002000.nand-controller: offset 0x080 : 0x60000000
[ 1.906876] gpmi-nand 33002000.nand-controller: offset 0x090 : 0x23023336
[ 1.913669] gpmi-nand 33002000.nand-controller: offset 0x0a0 : 0x000000ff
[ 1.920463] gpmi-nand 33002000.nand-controller: offset 0x0b0 : 0xfe000005
[ 1.927257] gpmi-nand 33002000.nand-controller: offset 0x0c0 : 0x00000001
[ 1.934051] gpmi-nand 33002000.nand-controller: offset 0x0d0 : 0x05020000
[ 1.940844] gpmi-nand 33002000.nand-controller: Show BCH registers :
[ 1.947203] gpmi-nand 33002000.nand-controller: offset 0x000 : 0x00000000
[ 1.953996] gpmi-nand 33002000.nand-controller: offset 0x010 : 0x00000010
[ 1.960793] gpmi-nand 33002000.nand-controller: offset 0x020 : 0x00000000
[ 1.967587] gpmi-nand 33002000.nand-controller: offset 0x030 : 0x00000000
[ 1.974381] gpmi-nand 33002000.nand-controller: offset 0x040 : 0x00000000
[ 1.981174] gpmi-nand 33002000.nand-controller: offset 0x050 : 0x00000000
[ 1.987968] gpmi-nand 33002000.nand-controller: offset 0x060 : 0x00000000
[ 1.994762] gpmi-nand 33002000.nand-controller: offset 0x070 : 0xe4e4e4e4
[ 2.001555] gpmi-nand 33002000.nand-controller: offset 0x080 : 0x070a4080
[ 2.008348] gpmi-nand 33002000.nand-controller: offset 0x090 : 0x10da4080
[ 2.015142] gpmi-nand 33002000.nand-controller: offset 0x0a0 : 0x070a4080
[ 2.021935] gpmi-nand 33002000.nand-controller: offset 0x0b0 : 0x10da4080
[ 2.028728] gpmi-nand 33002000.nand-controller: offset 0x0c0 : 0x070a4080
[ 2.035522] gpmi-nand 33002000.nand-controller: offset 0x0d0 : 0x10da4080
[ 2.042316] gpmi-nand 33002000.nand-controller: offset 0x0e0 : 0x070a4080
[ 2.049109] gpmi-nand 33002000.nand-controller: offset 0x0f0 : 0x10da4080
[ 2.055903] gpmi-nand 33002000.nand-controller: offset 0x100 : 0x00000000
[ 2.062697] gpmi-nand 33002000.nand-controller: offset 0x110 : 0x00000000
[ 2.069490] gpmi-nand 33002000.nand-controller: offset 0x120 : 0x00000000
[ 2.076283] gpmi-nand 33002000.nand-controller: offset 0x130 : 0x00000000
[ 2.083077] gpmi-nand 33002000.nand-controller: offset 0x140 : 0x00000000
[ 2.089874] gpmi-nand 33002000.nand-controller: offset 0x150 : 0x20484342
[ 2.096668] gpmi-nand 33002000.nand-controller: offset 0x160 : 0x01010000
[ 2.103462] gpmi-nand 33002000.nand-controller: offset 0x170 : 0x00000000
[ 2.110260] gpmi-nand 33002000.nand-controller: BCH Geometry :
[ 2.110260] GF length : 0
[ 2.110260] ECC Strength : 0
[ 2.110260] Page Size in Bytes : 0
[ 2.110260] Metadata Size in Bytes : 0
[ 2.110260] ECC Chunk0 Size in Bytes: 0
[ 2.110260] ECC Chunkn Size in Bytes: 0
[ 2.110260] ECC Chunk Count : 0
[ 2.110260] Payload Size in Bytes : 1024
[ 2.110260] Auxiliary Size in Bytes: 128
[ 2.110260] Auxiliary Status Offset: 0
[ 2.110260] Block Mark Byte Offset : 0
[ 2.110260] Block Mark Bit Offset : 0
[ 2.161502] nand: No NAND device found
[ 2.165320] gpmi-nand: probe of 33002000.nand-controller failed with error -110
It looks like the Kernel is unable to identify the NAND chips. This is weird, because the U-Boot finds them and is even able to read and write to the devices:
u-boot=> nand info
Device 0: 2x nand0, sector size 256 KiB
Page size 4096 b
OOB size 256 b
Erase size 262144 b
subpagesize 4096 b
options 0x00004200
bbt options 0x00028000
I didn't find any similar problem on the internet nor I can imagine how to debug this.
Could anyone help me with a suggestion of where to look for the cause of this problem?
Regards.
已解决! 转到解答。
I found a solution: the READY/BUSY pin didn't have the internal pull-up enabled. I updated my kernel to the imx_5.4.70_2.3.0, but it didn't make any difference (I was using the 5.4.3).
After enabling the internal pull-up on the device tree, it worked!!
Hi, fernand_lopes san.
I have a custom board with a i.MX8MP and a KIOKXIA TH58NVG4S0HTAK0 which should be used as boot device.
However, something prevents it from booting.
Please check my post.
[i.mx8mp] Boot from nand flash - NXP Community
And please advise if possible. m(_ _)m
I found a solution: the READY/BUSY pin didn't have the internal pull-up enabled. I updated my kernel to the imx_5.4.70_2.3.0, but it didn't make any difference (I was using the 5.4.3).
After enabling the internal pull-up on the device tree, it worked!!