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.

3352 flash启动失败

Other Parts Discussed in Thread: AM3352

各位好。

       我们使用的是am3352平台,目前的情况是通过MMC0启动方式,MLO和uboot.img都可以正常跑起来,但是在uboot中通过命令将MLO和uboot.img烧录到flash,选择flash启动后,调试串口只有CCCC的打印信息,MLO未启动

       我做了如下测试:

       1.在mmc0启动方式下,进入uboot命令输入模式,手动格式化flash芯片,再dump flash的起始页,结果是全FF,烧录MLO到flash后,再dump flash的起始页是有数据的(但是不确定数据是否正常),如此是否能够证明MLO已经写入flash?

       2.测量了LCD_D15~LCD_D0,对应的电平情况为01 00 00 0 0 10 0 10011,参照数据手册,这个应该就是flash启动方式的设置方法。

        这么看来还是MLO文件写入的有问题?

        我的写入命令:

mmc rescan; fatload mmc 0 0x80200000 MLO; nandecc hw; nand erase 0x0 0x20000; nand write.i 0x80200000 0x0 0x20000

写入操作未有异常报出,请各位帮忙看看到这种情况要如何调试flash启动?

  • 我们使用的flash是cypress的2G-S34ML02G200TFI000,是不是uboot中需要修改flash的一些配置才行?

    我看到了这个帖子,不知道我使用的flash是否需要修改,如果要修改,如何修改?

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

  • 请问你用的是哪个版本的SDK?另外NAND相关的硬件电路部分都检查过么?

  • 我们使用的uboot版本是u-boot-2013.01.01-psp06.00.00.00,内核部分还没设计到,nand的硬件电路检查有什么好的建议吗?

    我们做了如下尝试:

    1.几块样板都做了实验,全部都不行

    2.SD卡启动到uboot,nand命令想flash写入数据、nand read读取数据、nand dump读取数据都没有报错

    这样感觉nand的硬件应该没问题吧。

    现在已经确认了sysboot启动方式没问题(ccs直接读取44e10040地址,确认配置方式为01 00 00 0 0 10 0 10011)

    使用的是cypress的nand,boot的代码的一些参数是需要修改的吧,目前我只了解到需要修改oobsize的大小(uboot代码默认大小为64,需要改成128),改完测试依然启动失败,附件是我们使用的flash芯片的手册(2G X8),求帮忙看看都有哪些参数需要重新配置,谢谢。

    cypress(2G-S34ML02G200TFI000).pdf
  • 打印CCC说明启动介质有问题

  • 介质有问题什么意思?在我理解,nand启动方式没问题,但是芯片的固化程序无法从nand的0地址读取到MLO吧?

  • 好吧,还是自己解答吧,下面是我在e2e上得到的答案:

    Your issue is with the ECC. The AM335x ROM code selects ECC based on OOB size. For OOB size of 128 bytes the ROM code will use BCH16. 
    Another issue is the Linux version you use. PSP 06.00.00.00 is obsolete from 3 years. It's no longer maintained or supported by TI. Please move to the new Processor SDK: www.ti.com/.../PROCESSOR-SDK-AM335X

    看来还是3352的rom code和uboot烧写flash使用的ECC不一致导致的,rom code在发现flash的oob大小为128时自动使用BCH16,看来要想办法在uboot中实现对bch16的支持才行。