<font size="4">kernel version is linux-2.6.33 , and apply with android patch, hardware is arm realview pbxA9<br><br>I configured the sd/mmc driver into the kernel, when I boot filesystem from nfs, after the kernel boot up, the sd/mmc driver is probe ok, and I can mount the sd card. but when I copy the filesytem to sd/mmc card , and boot with it, it can&#39;t works ok. error as follows:<br>
</font><br>&lt;7&gt;mmc0: starting CMD51 arg 00000000 flags 000000b5<br>&lt;7&gt;mmc0:     blksz 8 blocks 1 flags 00000200 tsac 100 ms nsac 0<br>Desc_No: 0 , desc0: 0x8000001c, desc1: 0x8,                     desc2: 0x7f3fe4e0, desc3: 0x0<br>
[   55.324953] Desc_No: 0 , desc0: 0x8000001c, desc1: 0x8,                      desc2: 0x7f3fe4e0, desc3: 0x0<br>&lt;3&gt;ns2416-sdmmc ns2416-sdmmc.0: MMC IRQ 00000004 (CMD 51): [   55.365066] ns2416-sdmmc ns2416-sdmmc.0: MMC IRQ 00000004 (CMD 51): CMD doneCMD done<br>
<br>&lt;6&gt;scsi0 : pata_platform<br>.......................................................................................<br>.......................................................................................<br>&lt;4&gt;atkbd.c: keyboard reset failed on fpga:kmi1<br>
[   53.382712] atkbd.c: keyboard reset failed on fpga:kmi1<br>&lt;6&gt;Waiting for root device /dev/mmcblk0p4...<br>[   53.861013] Waiting for root device /dev/mmcblk0p4...<br>&lt;3&gt;INFO: task kmmcd:165 blocked for more than 120 seconds.<br>
[  288.385908] INFO: task kmmcd:165 blocked for more than 120 seconds.<br>&lt;3&gt;&quot;echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs&quot; disables this message.<br>[  288.425467] &quot;echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs&quot; disables this message.<br>
&lt;6&gt;kmmcd           D[  288.454402] kmmcd           D&lt;c&gt; c02c69b4  c02c69b4 &lt;c&gt;    0   165      2 0x00000000<br>    0   165      2 0x00000000<br>[&lt;c02c69b4&gt;] (schedule+0x280/0x2c4) from [&lt;c02c6b5c&gt;] (schedule_timeout+0x18/0x188)<br>
[  288.508780] [&lt;c02c69b4&gt;] (schedule+0x280/0x2c4) from [&lt;c02c6b5c&gt;] (schedule_timeout+0x18/0x188)<br>[&lt;c02c6b5c&gt;] (schedule_timeout+0x18/0x188) from [&lt;c02c6628&gt;] (wait_for_common+0xc0/0x14c)<br>[  288.559151] [&lt;c02c6b5c&gt;] (schedule_timeout+0x18/0x188) from [&lt;c02c6628&gt;] (wait_for_common+0xc0/0x14c)<br>
[&lt;c02c6628&gt;] (wait_for_common+0xc0/0x14c) from [&lt;c017b95c&gt;] (mmc_wait_for_req+0x114/0x120)<br>[  288.611389] [&lt;c02c6628&gt;] (wait_for_common+0xc0/0x14c) from [&lt;c017b95c&gt;] (mmc_wait_for_req+0x114/0x120)<br>
[&lt;c017b95c&gt;] (mmc_wait_for_req+0x114/0x120) from [&lt;c017e1a4&gt;] (mmc_app_send_scr+0xec/0x134)<br>[  288.664140] [&lt;c017b95c&gt;] (mmc_wait_for_req+0x114/0x120) from [&lt;c017e1a4&gt;] (mmc_app_send_scr+0xec/0x134)<br>
[&lt;c017e1a4&gt;] (mmc_app_send_scr+0xec/0x134) from [&lt;c017d8f0&gt;] (mmc_sd_init_card+0x38c/0x69c)<br>[  288.717131] [&lt;c017e1a4&gt;] (mmc_app_send_scr+0xec/0x134) from [&lt;c017d8f0&gt;] (mmc_sd_init_card+0x38c/0x69c)<br>
[&lt;c017d8f0&gt;] (mmc_sd_init_card+0x38c/0x69c) from [&lt;c017dd04&gt;] (mmc_attach_sd+0x104/0x180)<br>[  288.769587] [&lt;c017d8f0&gt;] (mmc_sd_init_card+0x38c/0x69c) from [&lt;c017dd04&gt;] (mmc_attach_sd+0x104/0x180)<br>
[&lt;c017dd04&gt;] (mmc_attach_sd+0x104/0x180) from [&lt;c017b7bc&gt;] (mmc_rescan+0x1b0/0x23c)<br>[  288.819924] [&lt;c017dd04&gt;] (mmc_attach_sd+0x104/0x180) from [&lt;c017b7bc&gt;] (mmc_rescan+0x1b0/0x23c)<br>[&lt;c017b7bc&gt;] (mmc_rescan+0x1b0/0x23c) from [&lt;c00500ac&gt;] (worker_thread+0x14c/0x1c4)<br>
[  288.868745] [&lt;c017b7bc&gt;] (mmc_rescan+0x1b0/0x23c) from [&lt;c00500ac&gt;] (worker_thread+0x14c/0x1c4)<br>[&lt;c00500ac&gt;] (worker_thread+0x14c/0x1c4) from [&lt;c0052e94&gt;] (kthread+0x7c/0x84)<br>[  288.916254] [&lt;c00500ac&gt;] (worker_thread+0x14c/0x1c4) from [&lt;c0052e94&gt;] (kthread+0x7c/0x84)<br>
[&lt;c0052e94&gt;] (kthread+0x7c/0x84) from [&lt;c002a970&gt;] (kernel_thread_exit+0x0/0x8)<br><br><br><font size="4">CMD51 is the first command which need transfer data from SD to memory. At normal working condition when I write DMA Descriptors address to register it&#39;s begin transfer data, but now it&#39;s blocked and it can&#39;t get the data tranfer over, timeout or any others interrupt. my programm flow as follows;<br>
    <br>    setup DMA descriptors---&gt; wmb() ----&gt; write DMA descriptors address to SD/MMC controller&#39;s regsiter and begin to transfer data<br><br>I don&#39;t how to relove this problem , anybody can help me ? thanks!</font><br>
<br><br>