am3352,之前用的emmc4.41,sdk是am335x-evm-sdk-src-06.00.00.00,可以从tf卡启动;
但是现在改用emmc5.1后,sdk没变,从tf卡启动时,报错:mmc1:unrecognised EXT_CSD revision 8.
看起来应该是识别不了新版emmc,请教这个问题该怎么解决?am3352是否支持emmc5.1呢?
shu hu:
看了一下官方最新sdk应该是 am335x-sdk 08_00_00_00,好像也是不支持emmc5.1的
Jian Zhou:
回复 shu hu:
你是接到MMC1这个接口么?驱动需要修改下, 请参考:
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/73278.aspx?pi2132219853=2
shu hu:
回复 Jian Zhou:
你好,意思是只改SDK06里面的\drivers\mmc\core\mmc.c这个文件就行了吧
但内核或者驱动的其他部分不需要对应修改吗,这样会不会存在其他问题,谢谢
shu hu:
回复 Jian Zhou:
我的板子上tf卡接在MMC0接口,emmc接在MMC1接口,现在设备上emmc是空的,系统从tf卡启动,但是内核启动日志中
显示只能发现mmc1,导致一直卡在rootfs那里,这个问题的原因是emmc5.1的必须接在MMC1接口上吗?谢谢
shu hu:
回复 Jian Zhou:
你好,前面可能表述不太清楚,我再描述一下问题:
(1)am3352,emmc4.41(emmc未烧录程序),tf卡接在MMC0接口,sdk是6.0,可以从tf卡正常启动;
(2)将emmc改为emmc5.1(emmc未烧录程序),其他硬件都没变,软件也是一样的,但从tf卡启动不了,看内核启动日志,只发现了
emmc设备,标记为mmcblk0:mmc1,没有发现tf卡,但tf卡的uboot设置的rootfs是mmcblk0p2,所以卡死
在这里了。
请问是什么原因?比较急,谢谢
Jian Zhou:
回复 shu hu:
再和你确认下,你最终是想从哪里启动?tf卡还是eMMC?
emmc接到mmc1上是正确的,我给你发的那个驱动也是要修改的。
shu hu:
回复 Jian Zhou:
我是想从tf卡启动,驱动已经改了,现在的问题是我不知道为啥换了新版本eMMC后,从tf卡
启动就卡死了?具体现象就是我上一个回复里面描述的。谢谢
Jian Zhou:
回复 shu hu:
你看一下我给你发的文档,如果要使用emmc,需要内核加载驱动,并且格式化烧录文件系统,emmc5.51还要修改那块代码。
很奇怪你为什么不直接从emmc启动?
shu hu:
回复 Jian Zhou:
你好,是这样的。
1、我的是新板子,流程是这样,想先从tf卡启动,然后启动后有自动脚本会向emmc烧写内核、文件系统那些,完成后再从emmc启动;
2、你说的“emmc5.51还要修改那块代码“,是指的tf卡上的内核程序还要修改吗?那具体怎么修改啊?
谢谢
Jian Zhou:
回复 shu hu:
1. 你想做的这些东西参考我这个文档就是了:http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/73278.aspx
2. 就是修改这个文档里所说的:
目前市面上的eMMC更多的都是eMMC v5.0的,如果是SDK06及以前的版本,需要修改驱动文件\drivers\mmc\core\mmc.c中的mmc_read_ext_csd()函数如下:
static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd){int err = 0, idx;unsigned int part_size;u8 hc_erase_grp_sz = 0, hc_wp_grp_sz = 0;BUG_ON(!card);・・・card->ext_csd.rev = ext_csd[EXT_CSD_REV];// if (card->ext_csd.rev > 6) {if (card->ext_csd.rev > 7) {pr_err("%s: unrecognised EXT_CSD revision %d¥n",mmc_hostname(card->host), card->ext_csd.rev);err = -EINVAL;goto out;}・・・}
TI中文支持网