[PATCH] cmd/mmc: fix output of mmc info for e-MMC

Jaehoon Chung jh80.chung at samsung.com
Thu Feb 10 23:37:42 CET 2022


On 2/10/22 18:16, Markus Niebel wrote:
> From: Max Merchel <Max.Merchel at tq-group.com>
> 
> 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 at tq-group.com>
> Signed-off-by: Markus Niebel <Markus.Niebel at ew.tq-group.com>

Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>

Best Regards,
Jaehoon Chung

> ---
>  cmd/mmc.c | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/cmd/mmc.c b/cmd/mmc.c
> index 96d81ffdf36..ca5622c45d0 100644
> --- a/cmd/mmc.c
> +++ b/cmd/mmc.c
> @@ -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)



More information about the U-Boot mailing list