Correct my words, According to SD host controller spec, the CRC field is ignored by h/c. user could only get the data between bit8 and bit127.
Kind of Response | Meaning of Response | ResponseField | ResponseRegister ------------------------------------------------------------------------------------------------------------------------------ R2 (CID, CSD register) | CID or CSD reg. incl. | R [127:8] | REP [119:0] So I don't think your fix is correct. Please correct me if I misunderstand. Thanks Feng -----Original Message----- From: Tian, Feng Sent: Wednesday, July 20, 2016 10:13 AM To: Haojian Zhuang <haojian.zhu...@linaro.org> Cc: edk2-devel@lists.01.org; guodong...@linaro.org; leif.lindh...@linaro.org; ard.biesheu...@linaro.org; Tian, Feng <feng.t...@intel.com> Subject: RE: [edk2] [PATCH] EmmcBlockIo: fix to get CSD data Hi, Haojian Why I didn't get the lowest byte data is because it's CRC field. I thought nobody will care about it. My assumption is incorrect for your usage model? Thanks Feng -----Original Message----- From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Haojian Zhuang Sent: Tuesday, July 19, 2016 3:38 PM To: Tian, Feng <feng.t...@intel.com> Cc: Haojian Zhuang <haojian.zhu...@linaro.org>; edk2-devel@lists.01.org; guodong...@linaro.org; leif.lindh...@linaro.org; ard.biesheu...@linaro.org Subject: [edk2] [PATCH] EmmcBlockIo: fix to get CSD data The CSD structure is a 128-bit structure. But EmmcGetCsd() only loads 120 bits with 8-bit offset. Now fix it. Signed-off-by: Haojian Zhuang <haojian.zhu...@linaro.org> --- MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c index fc705e1..fe85627 100644 --- a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c +++ b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c @@ -191,9 +191,9 @@ EmmcGetCsd ( Status = PassThru->PassThru (PassThru, Device->Slot, &Packet, NULL); if (!EFI_ERROR (Status)) { // - // For details, refer to SD Host Controller Simplified Spec 3.0 Table 2-12. + // Copy 128bit data for CSD structure. // - CopyMem (((UINT8*)Csd) + 1, &SdMmcStatusBlk.Resp0, sizeof (EMMC_CSD) - 1); + CopyMem ((VOID*)Csd, &SdMmcStatusBlk.Resp0, sizeof (EMMC_CSD)); } return Status; -- 1.9.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel