求助:
最近使用TI的官方开发板进行Linux开发,用的SDK版本是ti-processor-sdk-linux-am335x-evm-03.02.00.05-Linux-x86。
按照官方指导制作了SD卡,SD卡容量是8GB,启动时出现以下问题,请问应该怎么解决啊。
U-Boot SPL 2016.05 (Dec 22 2016 – 18:36:44)
Trying to boot from MMC1
reading args
spl_load_image_fat_os: error reading image args, err – -1
reading u-boot.img
reading u-boot.img
reading u-boot.img
reading u-boot.img
U-Boot 2016.05 (Dec 22 2016 – 18:25:44 +0800)
CPU : AM335X-GP rev 1.0
Model: TI AM335x EVM
Watchdog enabled
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
MMC: no card present
** Bad device mmc 0 **
Using default environment
<ethaddr> not set. Validating first E-fuse MAC
Net: eth0: ethernet@4a100000
Warning: usb_ether MAC addresses don't match:
Address in SROM is de:ad:be:ef:00:01
Address in environment is d4:94:a1:52:3f:73
, eth1: usb_ether
Press SPACE to abort autoboot in 2 seconds
MMC: no card present
MMC: no card present
MMC: no card present
MMC: no card present
MMC: no card present
data abort
pc : [<9ff70480>] lr : [<9ff6f681>]
reloc pc : [<8081e480>] lr : [<8081d681>]
sp : 9ef27678 ip : 9ff57c31 fp : 00000003
r10: 9ffb3208 r9 : 9ef31ed8 r8 : 9ef3bf90
r7 : 9ff577b9 r6 : 9ef33630 r5 : 9ef336b8 r4 : 47810000
r3 : 9ff70471 r2 : 00000c0f r1 : 9ffa4e31 r0 : 9ef336b8
Flags: nZCv IRQs off FIQs on Mode SVC_32
Resetting CPU …
resetting …
Steven Liu1:
你用的是哪个开发板?从log上看,MMC没有正常识别。你是用的create sd脚本来做的启动SD卡吗?
Kevin Fu:
回复 Steven Liu1:
您好,是AM3359的一快开发板,用create sd脚本做的SD卡,我看了下代码,uboot里判断了SD卡cd引脚状态,这个状态的判断好像有问题。
int mmc_start_init(struct mmc *mmc){ int err; int uhs_en = true; /* we pretend there's no card when init is NULL */ if (mmc_getcd(mmc) == 0 || mmc->cfg->ops->init == NULL) { mmc->has_init = 0;#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBCOMMON_SUPPORT) printf("MMC: no card present\n");#endif return NO_CARD_ERR; } if (mmc->has_init) return 0;
Kevin Fu:
回复 Steven Liu1:
用的是这一款开发板:http://www.ti.com.cn/tool/cn/tmdxevm3358?keyMatch=am335x%20evm&tisearch=Search-CN-Everything
Steven Liu1:
回复 Kevin Fu:
这个是我们的官方的GPEVM板,PDK中不需要做任何的改动就可以正常使用才对。
不排除你的板子上硬件有问题,我能想到的一个最快辨别的方法就是用串口启动,导入spl和uboot,然后在uboot中尝试读取你的SD卡内容,看看能否正常读取成功。你试试看这样做的结果怎样。