紧急求援
来源: 互联网 发布时间:2016-02-09
本文导语: 各位高手, 小弟目前移植WINCE的SDIO CLIENT 驱动到FREESCALE IMX31ADS LINUX下,遇到非常棘手的问题。由于LINUX目前对SDIO BUS的支持不足,许多的总线协议栈和上层交互的接口代码需要自己从MMC层进行封装。开始进...
各位高手,
小弟目前移植WINCE的SDIO CLIENT 驱动到FREESCALE IMX31ADS LINUX下,遇到非常棘手的问题。由于LINUX目前对SDIO BUS的支持不足,许多的总线协议栈和上层交互的接口代码需要自己从MMC层进行封装。开始进展较为顺利,可是就差CMD53数据管道设置就全部完成了。在IMX31平台上,如果使用现成的mmc_wait_for_req函数,必须使用scatter-gather 列表将数据导入DMA。但是,一旦我设置BLOCK数大于1或BLOCK长度小于512,则出现传输失败。如果我不用DMA而改用REGISTER直接写BUFFER,则会出现状态不一致的情况(中断的干扰),除非我修改内核代码。但是在内核里这些地方特别是IRQ相关的代码修改很可能会导致一般的MMS/SD卡不能正常使用。
不知有哪位高手做过LINUX下类似平台的SDIO CLIENT 驱动,可为小弟指点迷津?
谢谢先!
一个嵌入式LINUX菜鸟
小弟目前移植WINCE的SDIO CLIENT 驱动到FREESCALE IMX31ADS LINUX下,遇到非常棘手的问题。由于LINUX目前对SDIO BUS的支持不足,许多的总线协议栈和上层交互的接口代码需要自己从MMC层进行封装。开始进展较为顺利,可是就差CMD53数据管道设置就全部完成了。在IMX31平台上,如果使用现成的mmc_wait_for_req函数,必须使用scatter-gather 列表将数据导入DMA。但是,一旦我设置BLOCK数大于1或BLOCK长度小于512,则出现传输失败。如果我不用DMA而改用REGISTER直接写BUFFER,则会出现状态不一致的情况(中断的干扰),除非我修改内核代码。但是在内核里这些地方特别是IRQ相关的代码修改很可能会导致一般的MMS/SD卡不能正常使用。
不知有哪位高手做过LINUX下类似平台的SDIO CLIENT 驱动,可为小弟指点迷津?
谢谢先!
一个嵌入式LINUX菜鸟
|
Linux 的 SDIO Stack 也有 open-source 的版本了!
http://www.jollen.org/blog/2006/12/linux_sdio_stack_open_source.html
介绍了个开源项目MontaVista, Atheros contribute open-source SDIO stack
应该可以参考下
http://www.jollen.org/blog/2006/12/linux_sdio_stack_open_source.html
介绍了个开源项目MontaVista, Atheros contribute open-source SDIO stack
应该可以参考下
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。