4
votes

I am trying to get a linux kernel with a linux rootfs running on an imx51 Freescale board.

I compiled linux kernel, root file system and u-boot and copied the image to SD-card: partition 0: boot partition 1: rootfs and linux kernel

However I have the following error:

U-Boot 2011.12 (Mar 13 2012 - 14:15:41)

CPU:   Freescale i.MX51 family rev3.0 at 800 MHz
Reset cause: POR
Board: MX51EVK
DRAM:  512 MiB
WARNING: Caches not enabled
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
MMC: no card present
MMC init failed
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   FEC
Warning: failed to set MAC address

Hit any key to stop autoboot:  0 
MX51EVK U-Boot > mmcinfo
MMC: no card present
Device: FSL_SDHC
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 0
Rd Block Len: 0
MMC version 0.0
High Capacity: No
Capacity: 0 Bytes
Bus Width: 0-bit
MX51EVK U-Boot > mmc init
mmc - MMC sub system

Usage:
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc rescan
mmc part - lists available partition on current mmc device
mmc dev [dev] [part] - show or set current mmc device [partition]
mmc list - lists available devices
MX51EVK U-Boot > mmc list
FSL_SDHC: 0
 FSL_SDHC: 1
MX51EVK U-Boot > mmc dev
MMC: no card present
mmc0(part 0) is current device
MX51EVK U-Boot >

What could be wrong?

2
My boot partition is 50 MB and my rootfs partition is 3.64 GB of which 2.45 GB is used up with the kernel and RFS. I find that weird as I see that people talk about as small as 6MB file systems :(user900785
Are you using the u-boot version that came with your evaluation board? Are you sure you ported the drivers correctly? It seems a driver problem to me because Manufacturer ID and MMC version is 0.sessyargc.jp
Oh. I got the latest uboot and compiled it for my Board by setting the configuration. Btw when I tried doing a git clone, it seems to fail. git clone git://git.denx.de/u-boot-imx.git Cloning into u-boot-imx... fatal: protocol error: bad line length character: cork ........Any ideas??user900785
Ok just a question, should I have to always take the U-boot and Linux BSP with the kernel from the board manufacturer? as in this ase, freescale linux BSP with u-boot? I took the u-boot from denx website and compiled it for my board mx51evk and also took the latest kernel from the kernel.org and compiled it for ARM. Is this the problem??user900785

2 Answers

2
votes

Checking the DIP switches, I realized that the switch was set to boot the SDcard from the bottom slot while I had all along booted from top slot. Thus, it solved my problem

1
votes

at file ./board/freescale/mx51evk/mx51evk.c

int board_mmc_init(bd_t *bis)
{                                                                  
    u32 index;                                                             
    s32 status = 0;                            
    esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);                      
    esdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);  
}

As per above code snippets, I would suggest to check clock source. Try to probe clock on MMC0 source. There might be clock source issue.