This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM355_MMC

The DM355 processor is interfaced to MMC card through flash card interface. Please let me know what is the memory capacity of MMC card that can be used.

  • The MMC/SD driver on the DM355 and DM6446 as of DVSDK 1.30.01.41, PSP 1.20.00.014 does not support high capacity SD cards (SDHC) so the maximum memory capacity of a MMC/SD card on the interface today would be 4GB.

  • Hi could I check this with you please - page....

    http://tiexpressdsp.com/index.php?title=PSP_Technical_FAQ

    ....says "Yes, SD High capacity (SDHC) support is available in Patch 45". I'm using the DM355 and for my application it's likely I'll need to use the higher capacity cards. If SDHC is not supported, is there a plan to introduce it?

    Many thanks

  • That patch 45 is for DM644x, it looks like there may be a patch for the DM355 version as well, however if there was it probably should have been rolled into the 1.30 release, but both the 1.30 release and the upcoming 2.0 release say specifically in the user's guide that high capacity SD is not supported by the driver. This being said I will have to do some digging internally to get the scoop on this one (I am not sure if either the support never totally made it to DM355 or if the user's guide just never reflected the addition of the support).

  • Hi,

    Please see question numbers 5,7,8 and 12 of the following wiki topic :- http://wiki.davincidsp.com/index.php?title=PSP_Introduction_and_Product_FAQ

    This should answer your questions on LSP 1.x.

    thanks

    regards

    sathya

  • Hi,

    I plan to add SDHC patch to DM355, too, I noticed that the patch45 if for DM644x, so, I am not sure whether it work on DM355,  Does anybody have the experience to do that?  thank?

  • Another key thing to consider is the version of the kernel.  Patch 45 applies to older DVSDK releases baed on MV Pro 4 (based on 2.6.10 kernel); our latest DVSDK releases are based on MV Pro 5 (2.6.18 kernel) and currently there are no patches for these DVSDK based kernels.  Although I believe SDHC support is already in the GIT tree and will likely be included in future DVSDK releases.

    If you are ok working with an older DVSDK, then patch 45 is probrably a good place to start porting from...

  • thanks for your reply, my DM355 linux version is 2.6.10_mvl401, it seems to be the old one. I have built the sdio modules following the Davinci_Custom_SDIO_Stack_Usermanual.doc.

    I can "insmod sdio_lib.ko" and "insmod sdio_busdriver.ko" correctly, but the kernel crashed when I try to "insmod sdio_davinci_hcd.ko"

    below is the log, please help me to check it, thank you very much!

    root@192.168.1.103:~# insmod sdio_lib.ko
    SDIO Library load
    root@192.168.1.103:~# insmod sdio_busdriver.ko
    root@192.168.1.103:~# insmod sdio_davinci_hcd.ko
    Unable to handle kernel NULL pointer dereference at virtual address 00000012
    pgd = c649c000
    [00000012] *pgd=86bb3031, *pte=00000000, *ppte=00000000
    Internal error: Oops: 17 [#1]
    Modules linked in: sdio_davinci_hcd sdio_busdriver sdio_lib
    CPU: 0
    PC is at __clk_use+0xc/0x20
    LR is at clk_use+0x34/0x60
    pc : [<c0098280>]    lr : [<c009861c>]    Not tainted
    sp : c649bdc0  ip : c649bdd0  fp : c649bdcc
    r10: 00000000  r9 : 0000001a  r8 : 00000000
    r7 : 00000000  r6 : 0000001b  r5 : a0000013  r4 : c649a000
    r3 : 00000001  r2 : 0000004d  r1 : c649a000  r0 : fffffffe
    Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  Segment user
    Control: 5317F  Table: 8649C000  DAC: 00000015
    Process insmod (pid: 1125, stack limit = 0xc649a1a0)
    Stack: (0xc649bdc0 to 0xc649c000)
    bdc0: c649bdec c649bdd0 c009861c c0098284 0000001b fffffffe c6ba6800 0000001b
    bde0: c649be3c c649bdf0 bf012700 c00985f8 c6bf86c0 bf012fcf c649be24 c6bf86c0
    be00: c6ba6800 c03340d8 00000000 bf015588 bf0155a8 4b87ad6e c6ba6800 bf015960
    be20: 00000000 bf015588 bf0155a8 00000000 c649be74 c649be40 bf012110 bf0126c8
    be40: 00000000 c01968d0 c06b6fc0 00000000 bf0155a8 bf0158b0 c033ead0 bf0158b0
    be60: c03340d8 00000001 c649be94 c649be78 c01b2660 bf011e30 c649be94 bf0158c4
    be80: bf0155a8 c033eb30 c649beac c649be98 c01d618c c01b25c8 bf0158f4 bf0155a8
    bea0: c649becc c649beb0 c01d620c c01d6148 c649becc bf0155a8 bf00f1f0 bf0155a8
    bec0: c649bef4 c649bed0 c01d63c4 c01d61bc c01d8eb8 bf0155a8 bf00f1f0 bf0155cc
    bee0: 00000000 bf0158b0 c649bf14 c649bef8 c01d532c c01d6378 bf0155a8 bf0155a8
    bf00: bf00f52c 00000000 c649bf2c c649bf18 c01b196c c01d52b4 c6bf8520 bf0155a8
    bf20: c649bf5c c649bf30 bf00b34c c01b18dc c649bf5c bf015594 c0333948 c649a000
    bf40: c0333938 00000000 c649a000 00000002 c649bf74 c649bf60 bf017064 bf00b180
    bf60: c0333948 bf015a40 c649bfa4 c649bf78 c00c1668 bf017010 c649bfa4 00008f08
    bf80: 00012018 00000003 00000080 c008a2f4 c649a000 00900080 00000000 c649bfa8
    bfa0: c0089b60 c00c14a8 00008f08 00012018 00012018 00005d09 00012008 00004000
    bfc0: 00008f08 00012018 00000003 befffbec 00008000 00000000 00012008 00000000
    bfe0: 400d0740 befffbdc 00008dbc 400d074c 60000010 00012018 fbd7ffdd 0a104420
    Backtrace:
    [<c0098274>] (__clk_use+0x0/0x20) from [<c009861c>] (clk_use+0x34/0x60)
    [<c00985e8>] (clk_use+0x0/0x60) from [<bf012700>] (InitDavinci+0x48/0x2d8 [sdio_davinci_hcd])
     r6 = 0000001B  r5 = C6BA6800  r4 = FFFFFFFE
    [<bf0126b8>] (InitDavinci+0x0/0x2d8 [sdio_davinci_hcd]) from [<bf012110>] (Probe+0x2f0/0x48c [sdio_davinci_hcd])
    [<bf011e20>] (Probe+0x0/0x48c [sdio_davinci_hcd]) from [<c01b2660>] (pnp_device_probe+0xa8/0xd0)
    [<c01b25b8>] (pnp_device_probe+0x0/0xd0) from [<c01d618c>] (driver_probe_device+0x54/0x74)
     r6 = C033EB30  r5 = BF0155A8  r4 = BF0158C4
    [<c01d6138>] (driver_probe_device+0x0/0x74) from [<c01d620c>] (device_attach+0x60/0xa4)
     r5 = BF0155A8  r4 = BF0158F4
    [<c01d61ac>] (device_attach+0x0/0xa4) from [<c01d63c4>] (bus_add_device+0x5c/0x10c)
     r6 = BF0155A8  r5 = BF00F1F0  r4 = BF0155A8
    [<c01d6368>] (bus_add_device+0x0/0x10c) from [<c01d532c>] (device_add+0x88/0x11c)
     r8 = BF0158B0  r7 = 00000000  r6 = BF0155CC  r5 = BF00F1F0
     r4 = BF0155A8
    [<c01d52a4>] (device_add+0x0/0x11c) from [<c01b196c>] (__pnp_add_device+0xa0/0xc8)
     r7 = 00000000  r6 = BF00F52C  r5 = BF0155A8  r4 = BF0155A8
    [<c01b18cc>] (__pnp_add_device+0x0/0xc8) from [<bf00b34c>] (SDIO_BusAddOSDevice+0x1dc/0x2b0 [sdio_busdriver])
     r5 = BF0155A8  r4 = C6BF8520
    [<bf00b170>] (SDIO_BusAddOSDevice+0x0/0x2b0 [sdio_busdriver]) from [<bf017064>] (sdio_local_hcd_init+0x64/0xec [sdio_davinci_hcd])
    [<bf017000>] (sdio_local_hcd_init+0x0/0xec [sdio_davinci_hcd]) from [<c00c1668>] (sys_init_module+0x1d0/0x3e0)
     r4 = BF015A40
    [<c00c1498>] (sys_init_module+0x0/0x3e0) from [<c0089b60>] (ret_fast_syscall+0x0/0x2c)
    Code: e89da800 e1a0c00d e92dd800 e24cb004 (e5d03014)
     <6>note: insmod[1125] exited with preempt_count 1
    BUG: scheduling while atomic: insmod/0x40000001/1125
    caller is __cond_resched+0x60/0x80
    BUG: scheduling while atomic: insmod/0x40000001/1125
    caller is __cond_resched+0x60/0x80
    BUG: scheduling while atomic: insmod/0x00000001/1125
    caller is do_exit+0xd38/0xd9c
    Segmentation fault

  • And I have traced the code, I found that the crash happen on InitDavinci() in file:drivers/sdio/hcd/davinci/sdio_hcd_os_2_6.c. when the code run into clk_use(clksrc), crashed!!!

  • Hi, I have fixed the crash issue, "MMCSDCLK" should be changed to "MMCSDCLK0" when we call clk_get();

    But I meet another issue. the eth0 was down and nfs was down, too, after insmod sdio_davinci_hcd.ko. So, What's wrong with eth0???

    root@192.168.1.103:~# insmod sdio_lib.ko
    SDIO Library load
    root@192.168.1.103:~# insmod sdio_busdriver.ko
    root@192.168.1.103:~# insmod sdio_davinci_hcd.ko
    DMA channels: Tx 27, Rx 26, # of Slaves[3]
    root@192.168.1.103:~# eth0: link down

    nfs: server 192.168.1.101 not responding, still trying
    nfs: server 192.168.1.101 not responding, still trying

  • Hello,

    I'm trying to get SDHC card working on my DVEVM DM355 board. I've applied the same patch available from TI website, to my kernel which is 2.6.10 from LSP 1.20. After applying the patch, I loaded the modules:

    # insmod sdio_lib.ko

    # insmod sdio_busdriver.ko

    # insmod sdio_davinci_hcd.ko

    After that I inserted a standard 1GB SD card (not SDHC), but it was not detected. I didn't see any kernel messages (dmesg). Usually when I insert this SD card, it gets detected as /dev/mmc**, but that did not happen.
    I don't have SDHC card with me yet to test SDHC card support, but I believe that after applying this patch both SD and SDHC cards should be detected, right?
    So can someone suggest what might be wrong?
    Note that I did not load the ar6000.ko module which is also included in the same patchset. Is it necessary to load that module?
    I've tried inserting the 1GB SD card in both the SD card slots, still no luck. Is there any hardware switch or jumper that needs to be set in a particular position for the SD card slots to work with this patchset?
    Best regards,
    Kapil

  • My bad!

    I had added the patchset to a fresh copy of the LSP 1.20 kernel 2.6.10 in which the "TI DAVINCI Multimedia Card Interface support" option under "Device Drivers->MMC Support" was left unselected. I selected this to be compiled in to the kernel and now the 1GB SD card gets detected without any problem. Both the memory card slots work well simultaneously. Now I'll get hold of a SDHC card and test it. Will update here soon.

     

    Best regards,

    Kapil

  • Although I was able to use 1GB SD card, when I tried to load the SDIO modules (after unmounting & removing the SD card), I got the following warning messages:

    root@192.168.4.104:/ko# insmod sdio_lib.ko

    SDIO Library load

    root@192.168.4.104:/ko# insmod sdio_busdriver.ko

    root@192.168.4.104:/ko# insmod sdio_davinci_hcd.ko

    WARNING: dma unregister callback failed - invalid tcc 64 on lch 0

    WARNING: dma unregister callback failed - invalid tcc 64 on lch 27

    pnp: Device 00:00 disabled.

    sdio_davinci_hcd: probe of 00:00 failed with error -12

     

    By running 'lsmod', I can see that the sdio_davinci_hcd module does get loaded despite these warnings:

    root@192.168.4.104:/ko# lsmod

    Module                  Size  Used by

    sdio_davinci_hcd       20048  0

    sdio_busdriver         46448  1 sdio_davinci_hcd

    sdio_lib               10464  2 sdio_davinci_hcd,sdio_busdriver

     

     

    After this if I try to use the SD card again, it still works OK. My first guess is that the MMC card driver - which is built into the kernel and not a loadable module - is using the DMA channels which the SDIO/SDHC driver requires. I'm going to dig deeper into this tomorrow morning. If anyone has any suggestions kindly let me know.

     

    One question: Is it necessary to build the MMC support as a loadable module too?

     

    Best regards,

    Kapil

  • Hi Jeffrey,

    Have you found any solution for your problem?

     

  • Yes, I had to modify some KConfig files by hand in order to have both the MMC and the SDIO support built-in. After that the microSD card just worked. I tested with 8GB card and my colleagues tested with up to 32 GB cards. They all work. We are facing some filesystem related problems on the cards, but that might be a different issue altogether as it is not easily reproducible.

    Best regards,

    Kapil

  • sorry for my delay.

    Now I am using arago project to support my 8G SD card, it works well

    please reference to the user guide of arago project

    http://arago-project.org/wiki/index.php/Setting_Up_Build_Environment

    Jeffery

     

  • Hi, I am having some issue with support of SDHC card on DM6446 mv pro 4 2.6.10 kernel.

    The drivers are built  as dynamically loadable modules. It works fine. Is it possible to have SDIO stack and and drivers to be built as part of the kernel?