This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好,
我买的是APPro DM8127的开发板,软件版本为DM8127_IPNC_3.80.00。我把开发板的nand flash 芯片MT29F2G16AADWP:D换成我们使用的的S34ML01G200TFI000,8位宽度的flash后,出现问题:
1,进不了nand boot模式,直接跳到uart模式。
2,在uart模式下,把uboot写到ddr中,在ddr中操作nand flash。写和擦除都正常。通过比较数据是正常的。但是在读的时候有很多ECC: uncorrectable.打印。请问问题出现在哪里?
谢谢!
你好,
anguo wang 说:1,进不了nand boot模式,直接跳到uart模式。
anguo wang 说:2,在uart模式下,把uboot写到ddr中,在ddr中操作nand flash。写和擦除都正常。通过比较数据是正常的。但是在读的时候有很多ECC: uncorrectable.打印。请问问题出现在哪里?
Chris Meng,你好
1,我使用 的nand 都是通过ddr把u-boot.min.nand和u-boot.bin写到了nand中了的。而且通过nand dump命令读取数据域源文件比较,数据是相同的,读取的第一页的oob数据位:
OOB:
ff ff e4 b6 30 c5 27 50
32 89 f8 f0 03 dd e5 00
0f a3 d2 db 4d b0 1a 8a
bf 4a 00 1b e1 00 6b e1
89 f4 5a fc 62 6c e3 05
e3 8c c9 00 a1 8b 59 44
ed 54 07 36 40 de da 23
a8 00 ff ff ff ff ff ff
2,按照你说的修改了,在读取时使用nand read 0x81000000 0x20000 0x40000后,还是有很多ECC: uncorrectable。最后的打印是:
ECC: uncorrectable.
ECC: uncorrectable.
NAND read from offset 20000 failed -74
262144 bytes read: ERROR
这个与校验有关吗,开发板使用的是16位宽度的nand,我换上去的是8位的nand,我是一直把nand->options |= NAND_BUSWIDTH_16;这句屏蔽的。
int board_nand_init(struct nand_chip *nand)
{ …
* If we are 16 bit dev, our gpmc config tells us that */
//if ((readl(&gpmc_cfg->cs[cs].config1) & 0x3000) == 0x1000)
//nand->options |= NAND_BUSWIDTH_16;
… }
是否还需要修改一些配置呢?
你好,
请问你是否有修改硬件引脚BTMODE[12]的上拉为下拉?
GPMC CS0 default Data Bus Width input. This pin is
multiplexed between ARM Cortex-A8 boot mode and
General-Purpose Memory Controller (GPMC) peripheral
functions. At reset, BTMODE[12] is sampled to determine the GPMC CS0 bus width:
• 0 = 8-bit data bus
• 1 = 16-bit data bus
After reset, this pin functions as GPMC multiplexed
data/address pin 12 (GPMC_D[12]).
你好,
硬件我没有修改,直接屏蔽这句不行的吗?
/if ((readl(&gpmc_cfg->cs[cs].config1) & 0x3000) == 0x1000)
//nand->options |= NAND_BUSWIDTH_16;
你好,
仍然是串口打印CCC么?
请问你是否有仿真器?如果有,能否参考http://processors.wiki.ti.com/index.php/Debug_Tips_for_DM81xx_Boot_Fail看看启动失败的时候CONTROL_STATUS.SYSBOOT 是否和你的外部上下拉一致。
你好,
你使用的是DM8127,请从DM8127的数据手册里面找到control module的寄存器起始地址。在DM814x TRM里面找到CONTROL_STATUS寄存器的偏移地址。然后再CCS下访问相关地址。
你之前回复里面的地址不是DM8127的CONTROL_STATUS的地址。