FL2440 2.6.28 SD卡驱动BUG解决

FL2440的2.6.28的内核,SD卡驱动默认是有问题的,

在linux-2.6.28.7/drivers/mmc/host目录的s3cmci.c文件的do_pio_write函数中做如下修改:

[cpp] view plaincopystatic void do_pio_write(struct s3cmci_host *host) 

void __iomem *to_ptr;

 int res; u32 fifo; u32 *ptr;

 to_ptr = host->base + host->sdidata; 

//while ((fifo = fifo_free(host))) 

while ((fifo = fifo_free(host))>3) 

//lqm changed from feiling FAE.11-01-19

 { 

if (!host->pio_bytes)

 { 

res = get_data_buffer(host, &host->pio_bytes,&host->pio_ptr); 

if (res)

 { 

dbg(host, dbg_pio,"pio_write(): complete (no more data)./n");

 host->pio_active =XFER_NONE; return; 

dbg(host, dbg_pio,"pio_write(): new source: [%i]@[%p]/n",host->pio_bytes, host->pio_ptr); 

/* If we have reached the end of the block, we have to * write exactly the remaining number of bytes. If we * in the middle of the block, we have to write full * words, so round down to an even multiple of 4. */ 

if (fifo >=host->pio_bytes)

 fifo = host->pio_bytes;

 else fifo -= fifo & 3; 

host->pio_bytes -= fifo; 

host->pio_count += fifo; 

fifo = (fifo + 3) >> 2; 

ptr = host->pio_ptr; 

while (fifo--) 

writel(*ptr++, to_ptr); 

host->pio_ptr = ptr;

 } 

enable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF); 

}

时间: 2024-09-28 12:30:46

FL2440 2.6.28 SD卡驱动BUG解决的相关文章

SD卡驱动开发心得体会

最近在负责SD卡驱动的开发移植工作,支持vfat文件系统,现在谈一下开发心得吧!         SD卡高度集成闪存,具备串行和随机存取能力.可以通过专用优化速度的串行接口访问,数据传输可靠.接口允许几个卡垛叠,通过他们的外部连接.接口完全符合最新的消费者标准,叫做SD卡系统标准,由SD卡系统规范定义. SD卡系统是一个新的大容量存储系统,基于半导体技术的变革.它的出现,提供了一个便宜的.结实的卡片式的存储媒介,为了消费多媒体应用.SD卡可以设计出便宜的播放器和驱动器而没有可移动的部分.一个低耗

手机SD卡无法读取怎么办?手机SD卡无法读取解决方法

1.当手机无法识别SD卡时,我们可以尝试格式化SD卡,这样有可能恢复但是这样手机SD卡中数据都丢失了,具体步骤如:在手机中点击"设置"-->"存储设置" 如图所示. 2.在进入到SD卡管理界面我们点击"格式化SD卡"这样就可以格式化SD卡了. 3.其实硬件接触不良或手机SD卡槽金属丝可能存在断裂或弯曲现象.对此重新插拔手机SD卡,或者利用小尖针调整金属丝,使其在SD卡槽内均匀排列. 4.如上面办法也无法操作,我们可以在"设置&qu

电脑不能读到手机sd卡怎么办?手机sd卡无法读取解决方法

第一步.记得我们先把把手机SD卡放到读卡器中之后再把读卡器插入到电脑上显示出可移动磁盘.     第二步.好了现在我们打开电脑的"开始"-"运行"-输入"CMD".     第三步.然后在打开的cmd中我们输入 "chkdsk /f #:"(# 号是你的SD卡符号,这个可在我的电脑中看到).   第四步.点击回车键,就开始修复.   第五步.执行完chkds之后我们在我的电脑中找到SD卡,然后右键SD卡属性-工具-开始检查-把

Linux驱动之挂在SD卡

      讲解之前我得说一下,现在有一个新的技术在公司已经在用了,远远比你在学校学的东西要先进一点,我们烧写u-boot程序一般是在flash上,然后由flash中的程序来引导linux内核,但是flash成本远远比SD卡要高,现在公司很多都用SD卡来代替flash,这个具体怎么实现,还得自己去学习,我目前也不是很熟悉这个新的技术,就不写出来了,等我熟悉以后再写出来分享吧. Linux中对S3C2440 SD驱动已经支持的非常好.为了让FL2440支持2G以上的SD卡,只需要完成几个步骤即可.

基于全志A20 android4.2平台如何支持三个SD卡

基于全志A20 android4.2平台如何支持三个SD卡            做过android平台的同仁大多都知道android原生态只支持了一个sd卡,默认的挂载点也就是/mnt/sdcard,所以在应用中使用getExternalStorageDirectory()得到的都是/mnt/sdcard,通常会symlink 到/sdcard目录.做过全志平台的童鞋也知道全志android SDK支持2个sd卡,通常是一个内置的,一个外置的,内置的一般是从nand上或者emmc上的用户数据区

三星s7无法读取sd卡怎么办?s7无法读取sd卡解决办法

SD卡如果本身没有问题,一般来说格式化一下就可以解决问题的.但是要做好数据的备份.如果卡本身有问题,是读不出来卡的.这个很好办,你加装一下其他人的卡试试.如果识别,说明手机没问题,有问题的就是卡了.然后再备份数据,格式化SD卡,再装回手机.如果手机还是不读卡,说明卡坏了,换个卡就可以了. 用读卡器在电脑上可以读写吗?如果不可以,只能先格式化,再进行数据恢复.(这个有点难度,不会操作还是不要操作了.注意,如果要让卡里的内容保持,不要再对这个卡进行写的操作,格式化以后也不要.恢复数据如果3GB的话,

Note3怎么把应用程序移动SD卡上

1.在note3系列手机桌面主屏中会有一个[应用程序]图标,我们点击它进入.     2.在应用程序管理界面我们会看到有一个[设定]按钮点击进入.    3.接着我们在设定菜单中点击[一般]-[应用程序管理器] 如下图所示. 4.在这里找到你要应用的软件,点击"MM商城"为例.    5.如果此软件可以移动到SD卡下面会看到[移动到SD卡]是可用的,否则是灰色的不可用了.    6.如果可以移动我们点击 [移动到SD卡]即可解决了.

android内核-如何控制一个内核驱动,待SD卡或内部存储设备加载完毕后再运行?

问题描述 如何控制一个内核驱动,待SD卡或内部存储设备加载完毕后再运行? 在做一个Android内核驱动程序,主要功能是读取一个存储在SD卡或内部存储比如NAND中的一个文本文件,然后解析该文件来设置一些参数. 先编译成模块,用insmod加载,rmmod来卸载,经过调试一切功能都搞定了.然后,把模块编译进了内核,也能正常加载,但是文件打开失败,看了一下内核启动log,发现由于驱动运行时文件系统还没有加载SD卡和NAND,自然无法打开文件.所以很想知道,遇到这类情况如何解决? 解决方案 建议你多

Samsung_tiny4412(驱动笔记01)----linux 3.5,U-Boot,Busybox,SD卡启动环境搭建

/*********************************************************************************** * * linux 3.5,U-Boot,Busybox,SD卡启动环境搭建 * * 声明: * 1. 本系列文档是在vim下编辑,请尽量是用vim来阅读,在其它编辑器下可能会 * 不对齐,从而影响阅读. * 2. 以下所有的shell命令都是在root权限下运行的; * 3. minicom(U-Boot)指的是用minico