目标:
参考"common/cmd_mmc.c"的查找emmc的代码,在mmc总线初始化函数后,遍历mmc总线,查找emmc并
打印emmc信息。
在"drivers/mmc/mmc.c"中的mmc_initialize函数的最后面添加我们的遍历函数
int mmc_initialize(bd_t *bis)
{
INIT_LIST_HEAD (&mmc_devices);
cur_dev_num = 0;
if (board_mmc_init(bis) < 0)
cpu_mmc_init(bis);
print_mmc_devices(',');
printf("---------------------------------------------\n");
my_print_mmcinfo(0); //打印mmc0上的设备
printf("---------------------------------------------\n");
my_print_mmcinfo(1); //打印mmc1上的设备
printf("---------------------------------------------\n");
return 0;
}
static void my_print_mmcinfo(int index)
{
struct mmc *mmc;
mmc = find_mmc_device(index);
if(mmc)
{
mmc_init(mmc);
print_mmcinfo(mmc); //直接将cmd_mmc.c中的此函数粘过来即可
}
else
{
printf("no mmc device at slot %d\n", index);
}
}
打印结果如下:此打印结果是在ftp启动的条件下取得的。
---------------------------------------------
Card did not respond to voltage select!
Device: OMAP SD/MMC
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: 1-bit
---------------------------------------------
mmc_send_cmd : timeout: No status update
Device: OMAP SD/MMC
Manufacturer ID: 70
OEM: 100
Name: MMC04
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.0
High Capacity: Yes
Capacity: 3.6 GiB
Bus Width: 4-bit
---------------------------------------------
从打印结果可以看到emmc是挂在mmc1下面,mmc0是sd卡