Hi,
I’m using IPNC RDK 3.8.0 DM385.
I know the NAND ECC is BCH8 as default.
When nand writing operation is occurred in uboot, the NAND oob data is like as following,
Page 00000000 dump:
94 65 01 00 00 00 30 40 12 00 00 ea 14 f0 9f e5
14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5
14 f0 9f e5 14 f0 9f e5 20 01 70 80 80 01 70 80
e0 01 70 80 40 02 70 80 a0 02 70 80 00 03 70 80
60 03 70 80 78 56 34 12 00 00 70 80 00 00 70 80
94 65 71 80 70 71 71 80 00 00 0f e1 1f 00 c0 e3
d3 00 80 e3 00 f0 29 e1 1c 00 00 eb 6c 00 4f e2
...
02 31 23 e2 30 40 2d e9 81 40 a0 e1 83 50 a0 e1
05 00 34 e1 02 00 30 01 00 c0 94 11 02 c0 95 11
c4 ca f0 11 c5 ca f0 11 8c 00 00 0a a4 4a a0 e1
a5 5a 74 e0 00 50 65 b2 06 00 00 da 05 40 84 e0
OOB:
ff ff 8b 1d 66 18 54 6a
86 7e 42 35 2f c2 e3 00
36 3d 23 5d 77 2d 6f 30
64 3e 22 dd 10 00 22 ec
a8 f9 7c 81 e9 41 dc 8d
9c 1b 92 00 e1 bd a6 a8
86 69 90 1d 18 93 66 2f
1a 00 ff ff ff ff ff ff
However, nand writing operation is occurred after linux booting, the OOB is following.
(ECC data is all zero.)
root@DM385_IPNC:~# nanddump -l2048 -p -o /dev/mtd7
ECC failed: 0
ECC corrected: 0
Number of bad blocks: 0
Number of bbt blocks: 0
Block size 131072, page size 2048, OOB size 64
Dumping data starting at 0x00000000 and ending at 0x00000800...
0x00000000: 55 42 49 23 01 00 00 00 00 00 00 00 00 00 00 06
0x00000010: 00 00 08 00 00 00 10 00 41 18 8b 1c 00 00 00 00
0x00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x00000030: 00 00 00 00 00 00 00 00 00 00 00 00 8a b0 44 03
0x00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...
0x000007b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x000007c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x000007d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x000007e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x000007f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB Data: ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OOB Data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OOB Data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OOB Data: 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff
The ECC data pattern of Uboot and linux kernel is different.
After linux booting, nand write operation make ECC area as all-zero pattern.
My question is:
Why the ECC data is all zero after linux booting?
I want the ECC data of linux is same to uboot. How can I do it?