TI中文支持网
TI专业的中文技术问题搜集分享网站

uboot启动不能识别nand

    我使用SDK6.0,按照文档:

http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/52381.aspx?pi2132219853=1

的说明修改了支持nand烧写。

    在自己做的板子上通过uniflash下载后,识别不了nandflash(nand型号为MT29F1G08),使用示波器

测量不到片选信号,而不下apl和uboot时能测量到片选信号(应该是ROM中的程序在读nand)。

    我在打了uboot补丁后修改了eeprom、nand引脚复用。

    请问还有什么地方需要修改?

Jian Zhou:

先用其他方式引导u-boot,然后测试下基本的NAND读写功能。

QingKai Ji1:

回复 Jian Zhou:

    我应该没说清楚。

   我现在的问题是:uboot-restore识别不了nand,而且没有片选信号输出。(有读信号)

QingKai Ji1:

回复 QingKai Ji1:

@Jian Zhou:

    能不能给我一个能正常识别nand的spl和u-boot的restore版本,我看看是否我的修改问题?

谢谢!

Jian Zhou:

回复 QingKai Ji1:

有原理图么?用的是哪个片选?

QingKai Ji1:

回复 Jian Zhou:

请问下,eeprom的修改是如何进行的?

我是根据BBB板修改如下:

static int read_eeprom(void){ char buf[12] = {0x33, 0x30, 0x31, 0x36, 0x42, 0x42, 0x42, 0x4b, 0x32, 0x31, 0x45, 0x45}; int i; header.magic = 0xEE3355AA; strncpy(header.name, "A335BNLT", 8); header.version[0] = 0x30; header.version[1] = 0x30; header.version[2] = 0x43; header.version[3] = 0x30;

for(i = 0; i < 12; i++) { header.serial[i] = buf[i]; } printf("jqk sizeof(mac_addr) = %d\n", sizeof(header.mac_addr)); memset(header.config, 0xff, sizeof(header.config)); memset(header.mac_addr, 0xff, sizeof(header.mac_addr)); return 0;

片选问题已经解决,发现是因为识别出的型号为"A335BNLT",后面进行了emm1的引脚复用初始化。

但现在还是不能正确读出数据。

QingKai Ji1:

回复 Jian Zhou:

Jian Zhou:

    按照你给的文档,修改之后,还是找不到nand。用示波器测量,发现gpmc_ad0-gpmc_ad7

线上没有数据。(在ROM运行时测量是有数据的)

    应该是哪里还有没改到的地方?

QingKai Ji1:

回复 QingKai Ji1:

@Jian Zhou:

    可以识别到nand了。原因是硬件上把be1n当成be0n使用。

谢谢!

QingKai Ji1:

回复 QingKai Ji1:

@Jian Zhou:

    uboot可以识别到nand了,原因是硬件把be1n当成be0n用了。

谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » uboot启动不能识别nand
分享到: 更多 (0)