时时笔记丨驱动丨迅为4412开发板-mmc升级驱动修改篇

发布时间:2021-8-19 15:54    发布者:就是塔塔
关键词: 4412开发板
mmc 升级之后,用户如果使用老的镜像(201805 月之前的代码),会打印 mmc 的错误,并无法启动。这是因为在默认的 mmc 驱动源码中有几行判断 mmc 版本的代码,随着时间流逝,mmc 硬件版本一直在升级,导致超出了预留的 mmc 版本号,其实 mmc 硬件驱动是一模一样的,只需要注释掉 mmc 驱动中版本判断的代码即可。
本文档适用于 iTOP-4412 精英版/全能版,iTOP-4418/6818 全能版,iTOPIMX6Q/D/UL 全能版。
1、mmc 驱动修改
mmc 驱动要修改的文件为内核源码“/drivers/mmc/core/”下的 mmc.c 驱动文件。
在该驱动文件下找到函数“mmc_read_ext_csd”,如下图所示。
1.jpg
在“mmc_read_ext_csd”函数中的判断 mmc 硬件版本代码部分如下图所示。
2.jpg
请注意,可能在部分开发板中已经简单修改,但是还是存在 mmc 升级之后可能无法使用
的情况,这里可以直接将其中的版本报错返回的代码注释掉。将
  1. err = -EINVAL;

    goto out;

复制代码
直接注释掉重新编译是最简单的修改方法。
也可以如下所示修改,这部分判断版本范围直接修改为打印版本号。
  1. #if 0

    printk(KERN_ERR "%s: unrecognised EXT_CSD revision %d\n",

    mmc_hostname(card->host), card->ext_csd.rev);

    err = -EINVAL;

    goto out;

    #else

    printk(KERN_ERR "%s: EXT_CSD revision %d\n",

    mmc_hostname(card->host), card->ext_csd.rev);

    #endif

复制代码


2、4412 的 uboot 修改
mmc 硬件升级之后,uboot 部分,除了 4412 开发板需要简单修改,其它开发板不影响。
将 4412 的 uboot 源码下的 drivers/mmc 目录下的 mmc.c 文件替换为压缩包中
4412uboot 文件夹下的 mmc.c 文件即可。
请注意,其它开发板不需要修改,这个驱动文件是 4412 的源码。

本文地址:https://www.eechina.com/thread-772685-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表