uboot环境下mmc操作_【记录】将Uboot 2011.06中mmc驱动移植到uboot 1.1.6的过程

本文详细记录了将UBoot 2011.06中的mmc驱动移植到1.1.6版本的过程,涉及mmc初始化、s3c_mmc_init()、mmc_set_ios()和mmc_send_cmd()等关键函数的实现,以及在TQ2440平台上的应用和遇到的CMD8和CMD13超时问题。
摘要由CSDN通过智能技术生成

【记录】将Uboot 2011.06中mmc驱动移植到uboot 1.1.6的过程

时间:2011-8-14

作者:crifan

联系方式:green-waste (at) 163.com

附上代码:

【背景】

硬件:

(1)TQ2440,CPU是S3C2440,带SD/MMC控制器。

(2)自己的金士顿的1GB的SD卡

软件:

(1)TQ2440的uboot 1.1.6

(2)自己已经移植旧的mmc的驱动成功,可以实现mmcinfo, fatls mmc 0, fatload mmc 0 addr file,但是旧的mmc中检测出来的sd卡的容量不对,原因是由于READ_BL_LEN是15,大于12了,用的计算方法是错误的。

详情参见:

【记录】在TQ2440的uboot中添加SD/MMC支持+添加USB Mass Storage支持+解决fatls乱码问题

【目的】

想要实现正确检测我的1GB的SD卡的容量,所以要把正确的mmc驱动移植过来。

而目前最新的uboot 2011.06版本的中,已经有最新的mmc驱动,但是和uboot 1.1.6比,mmc的整个架构都变了,需要把mmc部分,整个都改了,再添加对应的底层函数,才可以。

【将Uboot 2011.06中mmc驱动移植到uboot 1.1.6的全过程】

1.添加文件,修改makefile等准备工作

先是把mmc最直接相关的cmd_mmc.c,整个替换了

这样就支持了更多的mmc相关的命令了:

mmcinfo

mmc rescan

mmc part

mmc list

mmc dev

fatls mmc 0

fatload mmc 0 addr filename

同时,替换了最新的mmc.h头文件,该文件包含了对应的sd/mmc所有的命令等定义。

由于旧的uboot中在board.c的start_armboot()中没有mmc初始化部分,所以也要填上对应内容:#ifdef CONFIG_GENERIC_MMC

puts(“MMC:“);

mmc_initialize(gd->bd);

#endif

而后再去添加对应的makefile等,使得编译通过,不多细说。

2. s3c_mmc_init()

用beyondcompare,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值