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

AM5728: 用SD卡引导A15内核,串口打印出报错信息,引导失败

Part Number:AM5728

板子是匠牛的MINI5728板子,对方已提供有可从SD卡引导的MLO文件。我的A15程序是纯裸机,用JTAG进调试模式后代码运行正常,然后打算下载到SD卡,从SD卡运行该程序。为了得到app映像,看了文档 

Processor SDK RTOS Getting Started Guide,特别是如下截图部分

 截图1

后来我从别的文档看到可以将截图1里面的程序关联到CCS上面,当在CCS上编译裸机程序时,可同时得到名字为app的映像文件,具体是哪个文档,我给忘了。要说明一下的是,这个方法我在K2GICE板子上是引导成功了的。我所说的关联到CCS中去的方法,截图如下:

 截图2

上图是针对K2GICE的,CCS中编译得到的app文件,直接拷贝到SD卡,然后从如下截图找到MLO文件,也拷贝到SD中

 截图3

之后将SD卡插入K2GICE板子,并用BOOT拨码开关调整对应的引导模式,板子引导成功,K2GICE按CCS中编写的程序运行。

因此我在5728板子上如法炮制,使用完全相同的方法,将截图2中最后部分K2G arm换成   AM572x arm,截图如下:

 截图4

同样得到了app映像,如下:

 截图5

将匠牛提供的MLO映像文件和工程编译得到的app映像拷贝到SD卡后,引导失败,串口调试助手的打印信息如下:

U-Boot SPL 2016.05 (Sep 29 2017 – 02:24:22)
DRA752-GP ES1.1
Trying to boot from MMC1
** First descriptor is NOT a primary desc on 0:1 **
** Partition 1 not valid on device 0 **
spl_register_fat_device: fat register err – -1
** Partition 1 not valid on device 0 **
spl_register_fat_device: fat register err – -1
spl_load_image_fat: error reading image u-boot.img, err – -1
spl: no partition table found
spl: no partition table found
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

现在我的问题如下:

同样的方法,也同为A15内核,为啥K2GICE就能引导成功,而5728则不行呢?从现象看,5728至少有了串口打印信息,说明MLO引导程序本身是没有问题的,而我的裸机代码进调试模式时是运行正常的,那编译后对应得到的app映像本身也应该没有问题吧?

手头除了有块匠牛的MINI5728,还有个创龙的TL5728板子,使用上述得到app映像的方法,然后使用创龙提供的MLO映像文件,运行结果和在MINI5728上的报错信息基本相同。

顺便一提,上述在CCS中得到app映像的方法,我在K2GICE平台中对DSP侧也是同样的操作,然后对DSP核也是一次性引导成功

Shine:

请尝试按照下面文档上步骤生成app Image。https://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_Foundational_Components.html#application-image-creation

,

user18914063:

我看了你给的网页的链接内容,AM57xx制作应用程序映像应该是主要下面两步:

1 使用out2rprc将CCS编译得到的out文件转换成binary格式

2 使用MulticoreImageGen得到最终的二进制文件

以上两步都在命令行里面成功执行,然后吧第二步得到的二进制文件拷贝到SD卡中,并重命名为app,将板子配套的MLO文件拷贝到SD卡,以下是串口打印出来的信息

U-Boot SPL 2016.05 (Sep 29 2017 – 02:24:22)DRA752-GP ES1.1Trying to boot from MMC1reading argsspl_load_image_fat_os: error reading image args, err – -1reading u-boot.imgspl_load_image_fat: error reading image u-boot.img, err – -1Failed to mount ext2 filesystem…spl_load_image_ext_os: ext4fs mount err – 0Failed to mount ext2 filesystem…spl_load_image_ext: ext4fs mount err – 0

SD卡启动仍然失败

,

Shine:

我把您的问题升级到e2e,请关注下面帖子的回复。https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1054092/am5728-failed-to-boot-a15-bare-metal-code-from-sd-card

,

Shine:

请看下面的工程师的回复。

Can you please tell what all boot media are available on board? Also can you confirm that if there is anything flashed on any other boot media? 

,

user18914063:

板子上有SD卡卡槽,板载eMMC,eMMC厂家出厂时已写入linux系统,我在用自己制作的SD卡引导5728时,已用boot拨码开关把板子配置为SD卡引导

,

Shine:

已更新您的回复,请等待e2e产品工程师的回复。

,

user18914063:

非常感谢你的帮助哈!!!!Grinning

,

Shine:

请看下面工程师的回复。

Looks like for some reason board is booting through eMMC.

Can you please try the following: 1) Try removing the SD card and boot to see if you are getting any logs 2) Try erasing the eMMC and see if you are able to boot properly with SD card

If above does not seem to be the issue could you please try to boot some binary from the SDK like UART diagnostic test?

,

user18914063:

对于第一点 不用SD卡引导,配置为eMMC引导,当然就直接正常的引导为linux启动了,其它除SD卡外的任何引导方式下都没串口日志打印出来

对于第二点我还没有尝试过,但你这样提示的话,我下来试试擦除板载eMMC的内容,然后再试试SD卡启动,但是擦除eMMC,我现在还不知道如何去操作

针对我之前SD卡引导时出现的串口打印信息,可能要纠正一些问题:

1  我觉得我采用过不正确的SD卡格式化方法来制作SD卡,导致本帖子上面我第二次复制的串口打印信息有误导性

2  针对上述问题,我又再仔细阅读了 文档    Processor SDK RTOS for AM57X 06_03_02 ,对SD卡的制作部分发现之前的制作方法可能不正确,以下是文档的描述截图:

根据描述,可以针对AM57xx系列CPU,只对SD卡进行引导方面的格式化进行一次,后面只需删除不需要的MLO 和app,直接拷贝新的到SD卡即可,然后继续看文档,方法截图如下:

在我的电脑中找到这款SD卡制卡工具,然后从制卡工具中找到官方SDK自带的映像文件,截图如下:

写入SD卡中。接下来我用DiskGenius磁盘分区工具特意查看了写入官方SDK映像后SD卡的分区状态,截图如下:

而我之前是直接格式化的操作,截图如下:

这种直接格式化的方式得到的SD卡分区,和用专门的制卡工具得到的分区是完全不同的,从SDK文档来看,用专门的制卡工具写入官方SDK自带的映像后会对SD卡做自动的格式化处理,这种格式化后得到的分区才是正确的分区。

经过反复的对比测试后,用制卡工具得到可引导的SD卡,并删除SD卡制卡工具写入的官方SDK映像,拷贝我的裸机工程编译得到的app映像到SD卡中,再找到开发板制造商提供的MLO映像并拷贝到SD卡,然后插卡,板子上电,串口打印信息如下:

U-Boot SPL 2016.05 (Sep 29 2017 – 02:24:22)DRA752-GP ES1.1Trying to boot from MMC1** First descriptor is NOT a primary desc on 0:1 **** Partition 1 not valid on device 0 **spl_register_fat_device: fat register err – -1** Partition 1 not valid on device 0 **spl_register_fat_device: fat register err – -1spl_load_image_fat: error reading image u-boot.img, err – -1spl: no partition table foundspl: no partition table foundSPL: failed to boot from all boot devices### ERROR ### Please RESET the board ###

其结果同样是引导失败,但比起之前错误的SD卡格式化方法,感觉起码方向是正确的。从打印信息来看,重点提示信息是:

** Partition 1 not valid on device 0 **  ,设备0上的分区1无效

从上述错误提示来看,目前我的核心问题,应该是这个分区1无效的问题

,

Shine:

我把您的问题在e2e帖子里更新了,请关注工程师的回复。

,

user18914063:

谢谢你的帮助Slight smile

,

Shine:

请尝试擦除emmc再尝试从sd卡启动。

,

user18914063:

好的,我试试

赞(0)
未经允许不得转载:TI中文支持网 » AM5728: 用SD卡引导A15内核,串口打印出报错信息,引导失败
分享到: 更多 (0)