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.

am3358 启动故障

Other Parts Discussed in Thread: AM3358

硬件 : am3358 自行设计的板子

软件: sdk6.0里面的uboot

我们的板子做了3块,最开始的时候都是好的,每个板子都调试了有一个月左右了,后来其中一个板子使用sd卡引导起不来程序(该sd卡插到别的板子上系统运行正常),打印消息经常不确定,如下:


U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
OMAP SD/MMC: 0
** Partition 1 not valid on device 0 **
spl: fat register err - -1
### ERROR ### Please RESET the board ###

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
MP SD/MMC: 0


U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
OMAPPS/MMC: 0
** Partition 1 not valid on device 0 **
spl: fat register err - -1
### ERROR ### Please RESET the board ###

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
: 0,

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
: 0

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
OMAP SD/MMC: 0

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
MAP S$/MMC: 0
mmc_send_cmd: timedout waiting for STAT (ffff) to clear
mmc_send_cmd: timedout waiting for STAT (ffff) to clear
mmc_send_cmd: timedout waiting for STAT (ffff) to clear
Card did not respond to voltage select!
spl: mmc init failed: err - -17
### ERROR ### Please RESET the board ###


U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
OMAP SD/MMC: 0
mmc_send_cmd: timedout waiting for STAT (ffff) to clear
mmc_send_cmd: timedout waiting for STAT (ffff) to clear
mmc_send_cmd: timedout waiting for STAT (ffff) to clear
Card did not respond to voltage select!
spl: mmc init failed: err - -17
### ERROR ### Please RESET the board ###

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
here to configurate ddr
ddr configuration ok
OMAP SD/MMC: 0
reading u-boot.img
spl: error reading image u-boot.img, err - -1
### ERROR ### Please RESET the board ###

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
here to configurate ddr
ddr configuration ok
OMAP SD/MMC: 0
** Partition 1 not valid on device 0 **
spl: fat register err - -1
### ERROR ### Please RESET the board ###

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
OMAP SD/MM: 0

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
: 64,


U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
OMAP SD/MMC: 0

U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
: 6, (: -2147482600,


U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
OMAPPS: 0
** Partition 1 not valid on device 0 **
spl: fat register err - -1
### ERROR ### Please RESET the board ###

对这个板子重新换过CPU和DDR,板子刚回来的时候一切正常。过了一天后,板子又出现类似上面的问题了。我按照sdk里的文档,通过uart的方式加载串口启动文件,结果还是会打印类似上面的消息。

现在疑惑的是:到底是什么出了问题?CPU么?请帮忙分析下

  • 感觉是DDR焊接不良造成的

  • ddr 和cpu都重新焊接过,当然不能保证焊接过后就一定是焊好了。

    我从打印消息来看,怎么觉得好像是cpu片内的boot引导有问题呀。

    因为启动顺序首先是片内的BOOT启动,识别启动设备,然后加载从启动设备去MLO文件。

    类似

    U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
    : 64,


    U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
    OMAP SD/MMC: 0

    U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
    : 0,

    U-Boot SPL 2013.01.01 (Dec 23 2014 - 09:37:53)
    : 0

    的打印消息感觉都没有找到启动设备,而在这个地方应该ddr还没有运行起来就报错了。

    板子换过DDR和cpu后好了一天,又坏了,特别想搞明白啥问题。我们这单位重新焊器件超麻烦,要送到外省去弄,所以想仔细分析下~~~~

    现在我们是纯分析和讨论…………………….

    附:

    here to configurate ddr
    ddr configuration ok 

    这两句话是我加的调试用的,不用管它。

  • 如果你的U-boot前后没有做过任何改动,那就不是软件的问题。

    一级boot首先在芯片内部的SRAM运行,初始化DDR之后会在DDR中建立堆栈,然后引导U-BOOT,如果DDR焊接有问题,一般是走到DDR初始化之后会报错。

    从log看,好像还有SD卡发送cmd的错误,SD卡卡槽这部分有没有虚焊?也不能排除这部分的原因。

  • 周工指出的sd卡卡槽的问题确实是一个思路也是我们单位以前的项目中遇到过的问题,我会去核实该问题,谢谢

  • 从log看,是和mmc有交互的时候就出问题了

    我有一个思路,进入uboot,通过手动加载的方式看看可能正常启动系统

  • 现象:

    1. 操作流程:使用串口方式,xmodem发送u-boot-spl.bin,ymodem发送u-boot.img

    2. u-boot-spl.bin发送成功后,超级终端打印乱码,接着发送u-boot.img,超级终端等待很久后提示 远程系统无响应。

    分析:

    1. 第一步:u-boot-spl.bin发送成功后,应该会打印spl信息,现在我没有出现,u-boot-spl.bin 里面有对ddr进行初始化和配置工作,但并没有进行数据拷贝工作,也就是说这时候ddr还没有工作。 因此初步排除ddr焊接的问题。

    2. uart的方式发送u-boot-spl.bin任然出现问题,说明之前采用SD卡启动的方式,sd卡卡槽应该没有虚 焊,不然MLO也不会启动,这种情况下应该上电后打印CCCC(找不到SD卡,转为串口启动)

    3.以上方式我量过PMIC的输出电压VDD_MPU和VDD_CORE都正常,就是说uboot其实工作了,因为u-boot-spl.bin 里面会对PMIC进行配置。(上电都为1.1v,u-boot-spl.bin执行后为1.1v和1.26v(对应OPP100和Turbo模式))

    4.综合上述3点,个人认为

    1.cpu出现没有焊接好

    2.cpu出现故障

    不知分析是否合理,请指正。

    另 :附件有超级终端发送文件的截图和相关打印信息。

  • 再补充一张截图。

    另:To:  leo chen

    关键是我进入不了uboot,咋搞,要uboot能起来说明基本没问题了, uart的方式也进不了uboot。

    咋搞?

    大家一起分析分析

  • 请问:还有人继续跟踪么?

  • 看到你上面的描述,你同样的软件配置,在使用中,都是刚换过片子和DDR的时候,都能正常的使用;但是过一段时间都一定会挂。在出现挂掉情况之后的测试中,还会有启动成功的案例吗?

    如果说是软件配置上面导致的不稳定现象,那么在使用过程中,挂与不挂也应该是随机事件,和你换完CPU和DDR就一定能正常工作个几天,之后就一定会挂掉,这一现象有出入。所以如果在你这些日子以来的测试中,这不是个随机事件,而是像你描述的开始一定能正常一些时间,后面一定会挂这样的话,我建议排查一下硬件上面的因素。

    比如,在你的系统设计中,有没有对AM335x的I/O口的供电、信号,在芯片还没有上电正常启动的时候就已经上了,会有损坏的可能,平日操作中,有无ESD损伤风险之类的。

  • 如果每次CPU都能起来,但是无论SD卡还是串口,都不能引导U-boot在DDR中运行,那么DDR出问题的可能性很大。

    首先确定下DDR是不是手摆焊上去的,如果是手摆很容易造成焊接问题。

    另外DDR是不是已经拆包很久了,焊接之前有没有烘干?