4

我正在尝试在 imx51 Freescale 板上运行带有 linux rootfs 的 linux 内核。

我编译了 linux 内核、根文件系统和 u-boot 并将映像复制到 SD 卡:分区 0:引导分区 1:rootfs 和 linux 内核

但是我有以下错误:

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 >

有什么问题?

4

2 回答 2

2

检查 DIP 开关,我意识到开关设置为从底部插槽引导 SD 卡,而我一直从顶部插槽引导。因此,它解决了我的问题

于 2012-03-19T12:29:25.463 回答
1

在文件 ./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);  
}

根据上面的代码片段,我建议检查时钟源。尝试在 MMC0 源上探测时钟。可能存在时钟源问题。

于 2014-04-08T09:33:42.497 回答