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.

omapl138, and rootFS on MMC card

Other Parts Discussed in Thread: OMAPL138, OMAP-L138

Hello

As i've already read I am not only person having this problem. Besides of this, I could not find anyone who uses the same configuration as I am.

I have Logic omapl138 EVM, which contains of a 8MB SPI memory, and MMC/SD slot

UBL,U-boot, and linux kernel are loaded into this memory.

rootFS is loaded into SD card. (This is microSD in SD adapter)

Everything works fine, when I am using ready kernel uImage file (provided with the EVM)

When I am trying to develop my own configuration, and load the kernel into memory, I got a fallowing problem

Clock: disable unused emac

Clock: disable unused mmc

U-Boot 2009.11 (Nov 09 2010 - 18:48:43)

U-Boot > boot
8192 KiB M25P64 at 0:0 is now current device
## Booting kernel from Legacy Image at c0700000 ...
   Image Name:   Linux-2.6.32.58
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1500940 Bytes =  1.4 MB
   Load Address: c0008000
   Entry Point:  c0008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux............................................................................................... done, booting the kernel.
Linux version 2.6.32.58 (filip@filip-MS-7599) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-42) ) #4 PREEMPT Sun Mar 11 12:22:43 CET 2012
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DA850/OMAP-L138 EVM
Memory policy: ECC disabled, Data cache writeback
DaVinci da850/omap-l138 variant 0x0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: mem=32M console=ttyS2,115200n8 root=/dev/mmcblk0p1 rw rootwait ip=off
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 29340KB available (2648K code, 272K data, 96K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:245
Console: colour dummy device 80x30
Calibrating delay loop... 149.50 BogoMIPS (lpj=747520)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
DaVinci: 144 gpio irqs
regulator: core version 0.5
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
Switching to clocksource timer0_1
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
msgmni has been set to 57
io scheduler noop registered
io scheduler anticipatory registered (default)
Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A
serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A
serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A
console [ttyS2] enabled
brd: module loaded
console [netcon0] enabled
netconsole: network logging started
i2c /dev entries driver
cpuidle: using governor ladder
cpuidle: using governor menu
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
TCP cubic registered
NET: Registered protocol family 17
Clocks: disable unused emac
Clocks: disable unused mmcsd
Waiting for root device /dev/mmcblk0p1...

During kernel configuration I've set all elements connected with MMC/SD card module to "*" - also this:

Device Drivers --->

    <*>MMC/SD/SDIO card support --->

          [*] Assume MMC/SD cards are non-removable


I've patched the kernel to keep the card seen all the time:
I commented checking of real pin and said return 1 always:

static int da850_evm_mmc_get_cd(int index)
{
    //return !gpio_get_value(DA850_MMCSD_CD_PIN);
    return 1;
}

This also does nothing.

I am out of ideas. Please Help me.

Regards

  • You should not have to mess with the CD and WR pin code. The board's SD socket and your MicroSD adapter should handle those. When you move to a MicroSD socket, you'll have to modify the CD and WR pin code.

    I would guess that the MMC driver in not configured in the kernel for some reason. Check

    "MMC/SD/SDIO card support"
    -->"MMC/SD/SDIO Host Controller Drivers"
    ----->"TI DAVINCI Multimedia Card Interface support"

    Your .config file should have CONFIG_MMC_DAVINCI set.

  • Thanks for advice

    This option is avaible since 2.6.33 kernel. I do not have it in my 2.6.32.58.

    I turned off

    System Type -> TI_DaVinci Implementations ->  "reset unused clocks during boot"

    I hope this will work.

    I also compiled 2.6.33.20 kernel, and set the option you mesioned.

    Hope one of those will help me out.

    Thanks

  • Finally I used the 2.6.31-rc7 from DaVinci Package.

    The most important thing is that kernel should support this:

    "MMC/SD/SDIO card support"
    -->"MMC/SD/SDIO Host Controller Drivers"
    ----->"TI DAVINCI Multimedia Card Interface support"

    Thank You !