-
-
编程器读GD5F1GQ5REYIG NAND FLASH ECC问题求助
-
发表于:
2024-2-18 17:14
4136
-
编程器读GD5F1GQ5REYIG NAND FLASH ECC问题求助
最近读取某路由器的固件碰到一个让我疑惑的问题求大神解惑:
falsh:兆易的GD5F1GQ5REYIG 1.8V
编程器:ch341 1.8V
软件:NeoProgrammer2.2.0
查了一下DATASHEET,flash是GD5F1GQ5xExxG系列,1G-bit 2K+128BPageSize with E Version,开启ECC时128B的后64B是ECC数据。
把芯片吹下来,用ch341编程器 可以读,但每次得到的文件都随机有几十个字节不同。感觉是和ECC纠错有关。
改NeoProgrammer软件,记录芯片状态寄存器,发现读的过程中芯片状态寄存器一直显示“Bit errors greater than ECC capability(4 bits) and not corrected”的状态,
所以我推断固件没有用片内的ECC,估计是用软件或CPU的ECC校验。于是我在读之前先通过寄存器设置把片内ECC关闭,发现现象也一样,还是每次读的文件都有几十个字节随机错。
把芯片焊回主板,路由器工作是正常的。
同样的路由器我试了两台都一样。上述现象用RT809H也一样。
买了一片新的GD5F1GQ5REYIG进行测试,擦除后写入文件再读发现每次读的都一样,并不能复现上面的现象。
对硬件一点不了解,我的疑惑是为什么新买的GD5F1GQ5REYIG和拆机的flash读的现象不同?新买的falsh读出来每次结果都一样(需要ECC纠错的概率小),而拆机的falsh读出来的数据有那么多随机错(频繁需要ECC纠错)?
怎样让新买的flash也有拆机falsh的效果?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)