Micron NAND device connected to GPMI nand controller is not detected.
Pin mux settings seems correct.
root@imx6solosabreauto:~# dmesg | grep nand
[ 0.440095] gpmi-nand 112000.gpmi-nand: Acq res
[ 0.440759] gpmi-nand 112000.gpmi-nand: gpmi Nand Init
[ 0.440805] gpmi-nand 112000.gpmi-nand: chip nr = 0
[ 0.440818] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 0.440829] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 0.440871] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 0.440883] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 0.440892] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 0.440933] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.432864] gpmi-nand 112000.gpmi-nand: DMA timeout, last DMA :1
[ 1.438888] gpmi-nand 112000.gpmi-nand: Show GPMI registers :
[ 1.444667] gpmi-nand 112000.gpmi-nand: offset 0x000 : 0x21800001
[ 1.450773] gpmi-nand 112000.gpmi-nand: offset 0x010 : 0x00000000
[ 1.456891] gpmi-nand 112000.gpmi-nand: offset 0x020 : 0x00000000
[ 1.463009] gpmi-nand 112000.gpmi-nand: offset 0x030 : 0x00000000
[ 1.469111] gpmi-nand 112000.gpmi-nand: offset 0x040 : 0x00000000
[ 1.475228] gpmi-nand 112000.gpmi-nand: offset 0x050 : 0x00000000
[ 1.481330] gpmi-nand 112000.gpmi-nand: offset 0x060 : 0x0104000c
[ 1.487447] gpmi-nand 112000.gpmi-nand: offset 0x070 : 0x00010203
[ 1.493564] gpmi-nand 112000.gpmi-nand: offset 0x080 : 0x05000000
[ 1.499666] gpmi-nand 112000.gpmi-nand: offset 0x090 : 0x03023336
[ 1.505782] gpmi-nand 112000.gpmi-nand: offset 0x0a0 : 0x00000090
[ 1.511884] gpmi-nand 112000.gpmi-nand: offset 0x0b0 : 0xff000005
[ 1.518002] gpmi-nand 112000.gpmi-nand: offset 0x0c0 : 0x00000000
[ 1.524119] gpmi-nand 112000.gpmi-nand: offset 0x0d0 : 0x05010000
[ 1.530221] gpmi-nand 112000.gpmi-nand: Show BCH registers :
[ 1.535903] gpmi-nand 112000.gpmi-nand: offset 0x000 : 0x00000000
[ 1.542005] gpmi-nand 112000.gpmi-nand: offset 0x010 : 0x00000010
[ 1.548121] gpmi-nand 112000.gpmi-nand: offset 0x020 : 0x00000000
[ 1.554238] gpmi-nand 112000.gpmi-nand: offset 0x030 : 0x00000000
[ 1.560339] gpmi-nand 112000.gpmi-nand: offset 0x040 : 0x00000000
[ 1.566458] gpmi-nand 112000.gpmi-nand: offset 0x050 : 0x00000000
[ 1.572559] gpmi-nand 112000.gpmi-nand: offset 0x060 : 0x00000000
[ 1.578679] gpmi-nand 112000.gpmi-nand: offset 0x070 : 0xe4e4e4e4
[ 1.584797] gpmi-nand 112000.gpmi-nand: offset 0x080 : 0x070a4080
[ 1.590900] gpmi-nand 112000.gpmi-nand: offset 0x090 : 0x10da4080
[ 1.597016] gpmi-nand 112000.gpmi-nand: offset 0x0a0 : 0x070a4080
[ 1.603133] gpmi-nand 112000.gpmi-nand: offset 0x0b0 : 0x10da4080
[ 1.609235] gpmi-nand 112000.gpmi-nand: offset 0x0c0 : 0x070a4080
[ 1.615350] gpmi-nand 112000.gpmi-nand: offset 0x0d0 : 0x10da4080
[ 1.621453] gpmi-nand 112000.gpmi-nand: offset 0x0e0 : 0x070a4080
[ 1.627568] gpmi-nand 112000.gpmi-nand: offset 0x0f0 : 0x10da4080
[ 1.633687] gpmi-nand 112000.gpmi-nand: offset 0x100 : 0x00000000
[ 1.639790] gpmi-nand 112000.gpmi-nand: offset 0x110 : 0x00000000
[ 1.645905] gpmi-nand 112000.gpmi-nand: offset 0x120 : 0x00000000
[ 1.652007] gpmi-nand 112000.gpmi-nand: offset 0x130 : 0x00000000
[ 1.658123] gpmi-nand 112000.gpmi-nand: offset 0x140 : 0x00000000
[ 1.664239] gpmi-nand 112000.gpmi-nand: offset 0x150 : 0x20484342
[ 1.670342] gpmi-nand 112000.gpmi-nand: offset 0x160 : 0x01000000
[ 1.676457] gpmi-nand 112000.gpmi-nand: offset 0x170 : 0x00000000
[ 1.682570] gpmi-nand 112000.gpmi-nand: BCH Geometry :
[ 1.729256] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.729270] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 1.729281] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 1.729290] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 1.729300] gpmi-nand 112000.gpmi-nand: I am in error
[ 1.729310] gpmi-nand 112000.gpmi-nand: Chip: 0, Error -22
[ 1.734822] gpmi-nand 112000.gpmi-nand: Chip fails
[ 1.739625] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.739637] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.739647] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.739657] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.739666] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.739675] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.739685] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.739696] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.739714] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 1.739723] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 1.739732] gpmi-nand 112000.gpmi-nand: CMD CTRL
[ 1.739742] gpmi-nand 112000.gpmi-nand: I am in error
[ 1.739752] gpmi-nand 112000.gpmi-nand: Chip: 0, Error -22
[ 1.745263] gpmi-nand 112000.gpmi-nand: Chip fails
[ 1.750065] gpmi-nand 112000.gpmi-nand: len is 1
[ 1.750074] nand: No NAND device found
[ 1.750094] gpmi-nand 112000.gpmi-nand: chip nr = -1
[ 1.750135] gpmi-nand 112000.gpmi-nand: driver registration failed: -19
Any clues to debug.
Hi kiruthika
from log seems it even can not read NAND ID,
had you checked hardware with SDK (simple NAND ID read procedure) ?
i.MX 6Series Platform SDK : Bare-metal SDK for the i.MX 6
Best regards
igor
Hi Akshay,
I added the following lines to DTS file
1. &gpmi {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpmi_nand_1>;
status = "okay";
};
2. Make sure that pins of pinctrl_gpmi_nand_1 is not muxed with any other devices.
With kernel configs enabled for GPMI NAND it works straight away.
Thanks,
Kirthika