EmbeddedPkg/MmcDxe: invoke SetIos() protocol method to set speed and width
authorHaojian Zhuang <haojian.zhuang@linaro.org>
Wed, 23 Nov 2016 13:36:21 +0000 (21:36 +0800)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 24 Nov 2016 16:29:03 +0000 (16:29 +0000)
commit752ae80514ccb3532a6d6d16a122642573eabdee
tree3bc06c60df241c5c7af623b1b682570d92c362c1
parent1df2fe1433b2420b7e11591e3d46ed1a2c146072
EmbeddedPkg/MmcDxe: invoke SetIos() protocol method to set speed and width

Add the interface to change the bus width and speed.

By default, MMC is initialized with 1-bit mode and less than 400KHz bus
clock. It causes MMC working inefficiently.

Set I/O bus width on both MMC controller and EXTCSD. Otherwise, it may
cause unmatched failure case. And support more timing mode, high speed,
HS200 & HS400 mode.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
EmbeddedPkg/Universal/MmcDxe/Mmc.h
EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c