diff options
author | Max Merchel <Max.Merchel@tq-group.com> | 2022-02-10 10:16:39 +0100 |
---|---|---|
committer | Jaehoon Chung <jh80.chung@samsung.com> | 2022-03-16 16:40:57 +0900 |
commit | 84191f73847c351019bb50728d28220d91b0aee4 (patch) | |
tree | 4293fe56d131aae977f204e41792c7987e5362c0 /cmd/mmc.c | |
parent | 925f6900c8f51f2b9d4c5cd389be51c19121e974 (diff) | |
download | u-boot-84191f73847c351019bb50728d28220d91b0aee4.zip u-boot-84191f73847c351019bb50728d28220d91b0aee4.tar.gz u-boot-84191f73847c351019bb50728d28220d91b0aee4.tar.bz2 |
cmd/mmc: fix output of mmc info for e-MMC
e-MMC and SD standards differ for some CID fields:
- 6 Byte Name - assigned by Manufacturer (SD 5 Byte)
- 1 Byte OEM - assigned by Jedec (SD 2 Byte)
See e-MMC standard (JEDEC Standard No. 84-B51), 7.2.3 (OID) and 7.2.4 (PNM)
Signed-off-by: Max Merchel <Max.Merchel@tq-group.com>
Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Diffstat (limited to 'cmd/mmc.c')
-rw-r--r-- | cmd/mmc.c | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -22,10 +22,18 @@ static void print_mmcinfo(struct mmc *mmc) printf("Device: %s\n", mmc->cfg->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); + if (IS_SD(mmc)) { + 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); + } else { + printf("OEM: %x\n", (mmc->cid[0] >> 8) & 0xff); + printf("Name: %c%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, + (mmc->cid[2] >> 24)); + } printf("Bus Speed: %d\n", mmc->clock); #if CONFIG_IS_ENABLED(MMC_VERBOSE) |