硬件存储配置为SD卡和NANDFLASH,启动方式选择的是USART0->XIP->MMC0->NAND,MMC0,uboot启动成功,软件复位后,ROM CODE卡死在XIP处,等待大概4分钟后,能够再次自动重启成功进入uboot。如何修改uboot使其支持软件复位。
Steven Liu1:
你的软件复位是怎么做的?
如果按了warm reset键,是一样的效果吗?
软件复位后,rom code卡死在XIP,这点怎么判断出来的?UART0启动会打印CCC,在你软件复位后能看到吗?
Liu Xiansheng:
回复 Steven Liu1:
软件复位是通过在uboot下输入reset命令,或者在linux下输入reboot。按warm reset第一次效果一样,第二次会正常启动。UART0会打印CCCCCCCC,然后死机,4分钟后,自动重启,能够正常启动。修改启动方式,nand直接启动,一切正常,没有问题。
Steven Liu1:
回复 Liu Xiansheng:
不能排除是不是SD卡的问题哦。
最近碰到的一个案例中,SD卡启动第一次上电也是正常的,reset了之后,也是需要等很久,然后才能启动。最后查出来,换一个批次的SD卡就没有这个问题了。
你有仿真器,可以接AM335x吗?如果可以的话,在第二次启动UART0过后的“死机”时,接入仿真器,通过trace寄存器可以查看目前是卡在哪个启动模式上了,这样有助于你辨识问题在哪个环节。trace寄存器在TRM手册的26.1.3中有介绍,对应bit位的含义在26.1.12
Liu Xiansheng:
回复 Steven Liu1:
sd卡,换过好几个了,可以排除。因为启动模式为uart0-》XIP-》MMC0-》NAND,不插入SD卡,从最后的NAND上启动,也是这样。另外老外也遇到这个问题http://e2e.ti.com/support/arm/sitara_arm/f/791/t/355238
Yaoming Qin:
回复 Liu Xiansheng:
您可以飞线换个启动方式验证下,如果去掉xip是不是就没这个问题了。
Liu Xiansheng:
回复 Yaoming Qin:
是的,去掉XIP后,正常。替我问下老外如果有XIP的时候,重启前做哪些操作,可以避免卡在XIP,谢谢。
Yaoming Qin:
回复 Liu Xiansheng:
请您查看 trm中26.1.7
The detection of whether an image is present or not on a selected device depends on the first few bytes.On a GP Device type a booting image is considered to be present when the first four bytes of the sector isnot equal to 0000 0000h or FFFF FFFFh
看看您的gpmc上的上下拉是不是可以调整下
Jian Zhou:
回复 Yaoming Qin:
有些客户也确实遇到类似问题,如果启动选项有XIP启动,上电启动是没有问题,但是reset会停在XIP,这个应该是reset之后XIP启动代码有变化导致的,建议如果没有XIP设备的话应该去掉XIP启动选项