Chinaunix首页 | 论坛 | 博客
  • 博客访问: 931159
  • 博文数量: 96
  • 博客积分: 10071
  • 博客等级: 上将
  • 技术积分: 1118
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-20 17:54
文章分类

全部博文(96)

文章存档

2011年(3)

2010年(3)

2009年(29)

2008年(54)

2007年(7)

分类: LINUX

2008-05-29 20:16:42

linux-2.6.24.3下移植SD/MMC到S3C2440上的全过程

     creator
     sz111@126.com
     
     移植SD/MMC驱动,费劲周折,问题最大是patch不对。不过千辛万苦总算是
找到了。特来分享。
     1。首先下载2.6.24.3内核源码。其他内核不保证可以。移植部分就不讲了,如果不会参考我的其他文章。我仅仅测试了这个。
     2.去*checkout*/branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch?rev=4096
       下载SD/MMC patch,其他早期版本不行,我就栽倒了这个地方。
     3.把 s3c_mci.patch copy到linux-2.6.24.3下。执行patch -p1      4.make menuconfig,选择MMC/SD ,选择语言CP437,ISO 8859-1,最好也同时选择SCSI相关的东西吧,连USB也一块支持了。
      (昨天SD一直不成功,就把U盘测试了,至少要保证有成绩啊。
     5.对于patch生成的s3cmci.c还要加入detect脚位,我选择的是S3C2410_GPG8。设定:
      static struct s3c24xx_mci_pdata s3cmci_def_pdata = {
       .do_dma        = 0,
       .gpio_detect    = S3C2410_GPG8,
       .set_power    = NULL,
       .ocr_avail    = MMC_VDD_32_33,
       };
     6.编译下载。
     出现信息如下:
     --------start mdev-------
s3c2440-sdi s3c2410-sdi: running at 0kHz (requested: 0kHz).
s3c2440-sdi s3c2410-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2410-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2410-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2410-sdi: CMD[FAIL(-110)] #2 op:CMD8 arg:0x000001aa flags:0x082f5
 retries:0 Status:nothing to complete
s3c2440-sdi s3c2410-sdi: CMD[FAIL(-110)] #3 op:CMD5 arg:0x00000000 flags:0x082e1
 retries:3 Status:nothing to complete
s3c2440-sdi s3c2410-sdi: CMD[FAIL(-110)] #4 op:CMD5 arg:0x00000000 flags:0x082e1
 retries:2 Status:nothing to complete
s3c2440-sdi s3c2410-sdi: CMD[FAIL(-110)] #5 op:CMD5 arg:0x00000000 flags:0x082e1
 retries:1 Status:nothing to complete
s3c2440-sdi s3c2410-sdi: CMD[FAIL(-110)] #6 op:CMD5 arg:0x00000000 flags:0x082e1
 retries:0 Status:nothing to complete
s3c2440-sdi s3c2410-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2410-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2410-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2410-sdi: CMD[FAIL(-110)] #10 op:CMD8 arg:0x000001aa flags:0x082f
5 retries:0 Status:nothing to complete
s3c2440-sdi s3c2410-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2410-sdi: running at 16875kHz (requested: 25000kHz).
s3c2440-sdi s3c2410-sdi: running at 16875kHz (requested: 25000kHz).
mmc0: new SD card at address 73ef
mmcblk0: mmc0:73ef SD064 62080KiB
 mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 000000b5
 p1
***********************
love linux
starting pid 801, tty '': '-/bin/sh'

Processing /etc/profile...
Set search library path in /etc/profile
Set user path in /etc/profile
Done

[root@/]#cat /proc/partitions
major minor  #blocks  name

  31     0        384 mtdblock0
  31     1       2048 mtdblock1
  31     2      63040 mtdblock2
 179     0      62080 mmcblk0
 179     1      62060 mmcblk0p1
[root@/]#mount -t vfat /dev/mmcblk0p1 /mnt/temp

成功,ok。感谢所有的Linux开发和支持者。感谢openmoko开源软件。



 
阅读(4401) | 评论(5) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-01-31 02:05:08

不用if(s3c2410_dma_request(...)) 要改为:if(s3c2410_dma_request(...)<0)

chinaunix网友2009-07-25 11:43:18

s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz). s3c2440-sdi s3c2440-sdi: running at 290kHz (requested: 289kHz). s3c2440-sdi s3c2440-sdi: running at 290kHz (requested: 289kHz). s3c2440-sdi s3c2440-sdi: running at 290kHz (requested: 289kHz). s3c2440-sdi s3c2440-sdi: CMD[FAIL(-110)] #35 op:CMD8 arg:0x000001aa flags:0x082f5 retries:0 Status:nothing to complete s3c2440-sdi s3c2440-sdi: CMD[FAIL(-110)] #36 op:CMD5 arg:0x00000000 flags:0x082e1 retries:3 Status:nothing to complete s3c2

sxwboy2009-02-23 16:23:59

你好!我在移植sd卡驱动的过程中,出现了以下问题: s3c2410-sdi s3c2410-sdi: unable to get DMA channel. s3c2410-sdi: probe of s3c2410-sdi failed with error -16 请问大侠知道是什么原因吗?望回复,不甚感激!

sxwboy2009-02-23 16:23:38

你好!我在移植sd卡驱动的过程中,出现了以下问题: s3c2410-sdi s3c2410-sdi: unable to get DMA channel. s3c2410-sdi: probe of s3c2410-sdi failed with error -16 请问大侠知道是什么原因吗?望回复,不甚感激!

chinaunix网友2008-09-19 16:08:29

还要给/arch/arm/mach-s3c2440/mach-smdk2440.c中的 static struct platform_device *smdk2440_devices[] __initdata 添加sdi设备了,如下: ... &s3c_device_i2c, &s3c_device_iis, &s3c_device_sdi, //加入这一行 要不插入卡后没有反应