bbb u-boot do_mmcinfo

1. common/cmd_mmc.c
static int do_mmcinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
     mmc = find_mmc_device(curr_device);
     if (mmc) {
          mmc_init(mmc);
          print_mmcinfo(mmc);
          return 0;
     } else {
          printf("no mmc device at slot %x\n", curr_device);
          eturn 1;
     }
}


通过分析print_mmcinfo中的打印信息,来寻找mmc结构体中的值在哪赋值
static void print_mmcinfo(struct mmc *mmc)
{
printf("Device: %s\n", mmc->name);
printf("Manufacturer ID: %x\n", mmc->cid[0] >> 24);
printf("OEM: %x\n", (mmc->cid[0] >> 8) & 0xffff);
printf("Name: %c%c%c%c%c \n", mmc->cid[0] & 0xff,
(mmc->cid[1] >> 24), (mmc->cid[1] >> 16) & 0xff,
(mmc->cid[1] >> 8) & 0xff, mmc->cid[1] & 0xff);


printf("Tran Speed: %d\n", mmc->tran_speed);
printf("Rd Block Len: %d\n", mmc->read_bl_len);


printf("%s version %d.%d\n", IS_SD(mmc) ? "SD" : "MMC",
(mmc->version >> 4) & 0xf, mmc->version & 0xf);


printf("High Capacity: %s\n", mmc->high_capacity ? "Yes" : "No");
puts("Capacity: ");
print_size(mmc->capacity, "\n");


printf("Bus Width: %d-bit\n", mmc->bus_width);
}


2. drivers/mmc/mmc.c
后面的注释代表mmc中打印的属性是在哪个函数中得到的值
int mmc_init(struct mmc *mmc)
{
     mmc_set_bus_width(mmc, 1);      //bus_width
     sd_send_op_cond(mmc);           //high_capacity
     mmc_send_op_cond(mmc);          //high_capacity
     err = mmc_startup(mmc);         //csd,cid,tran_speed,read_bl_len,version,capacity
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值