Wind River Support Network


LIN5-18298 : IMX Host Cap wiped out when MMC marked non-removable, Performance Impact

Created: Mar 13, 2014    Updated: Dec 19, 2017
Resolved Date: May 4, 2014
Found In Version:
Fix Version:
Severity: Standard
Applicable for: Wind River Linux 5
Component/s: Kernel


Customer's board is based on the Freescale i.MX6 Cortex-A9 ARM processor.
The board schematics shows that the bus width is 8, while the kernel driver detects a 4 bit bus.
This negatively impacts the filesystem/storage throughput.

git blame shows that Host Capabilities word gets wiped out in commit 913413c3 :
// sdhci-esdhc-imx.c
913413c3 ( xxxx    2011-06-21 22:41:51 543)   case ESDHC_CD_PERMANENT:
913413c3 ( xxxx    2011-06-21 22:41:51 544)           host->mmc->caps = MMC_CAP_NONREMOVABLE;

the proper way of setting the flag should be done via a bit-wise OR

host->mmc->caps |= MMC_CAP_NONREMOVABLE;


Correct the assignment operator as described.

Steps to Reproduce

1. Load the kernel and check the eMMC bus width:  kernel driver negotiates a 4 bit bus (8-bit is expected)

2. After applying the proposed fix, kernel driver negotiates the 8-bit bus, filesystem throughput is improved.

Other Downloads

Live chat