From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.107.15.43; helo=eur01-db5-obe.outbound.protection.outlook.com; envelope-from=meenakshi.aggarwal@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150043.outbound.protection.outlook.com [40.107.15.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0201920971733 for ; Mon, 28 Jan 2019 20:43:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GqC3ty0ynUHEuVqKYXNWJdVVXMswkD4B5QX5cCboGsc=; b=lA0/wyLgDgOOb0aBSL+nZxDTYzccD5+0UJ1LW1Iwvbz9gcuRLrtXYY4E5LD2IawGZOULOUGpjKOLHO8AwJCEXrVUASIkz6TB7fs5Gq046TLumiaToHs45O8SJk3zax0McvbkYdzGmvnzimqF5GVIJy437Q4YAi6d6aG09dBgUkE= Received: from VI1PR04MB4685.eurprd04.prod.outlook.com (20.177.56.77) by VI1PR04MB4031.eurprd04.prod.outlook.com (10.171.182.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1580.16; Tue, 29 Jan 2019 04:43:18 +0000 Received: from VI1PR04MB4685.eurprd04.prod.outlook.com ([fe80::f14a:c19b:b324:7d63]) by VI1PR04MB4685.eurprd04.prod.outlook.com ([fe80::f14a:c19b:b324:7d63%4]) with mapi id 15.20.1580.016; Tue, 29 Jan 2019 04:43:17 +0000 From: Meenakshi Aggarwal To: Meenakshi Aggarwal , "ard.biesheuvel@linaro.org" , "leif.lindholm@linaro.org" , "edk2-devel@lists.01.org" , "jun.nie@linaro.org" , "haojian.zhuang@linaro.org" Thread-Topic: [PATCH v2] SD/eMMC : Fix Command Argument for SD/eMMC R/W operation. Thread-Index: AQHUs72LHw56wKfsjUevWhp7SeSNk6XFsqIQ Date: Tue, 29 Jan 2019 04:43:17 +0000 Message-ID: References: <1547644896-7721-1-git-send-email-meenakshi.aggarwal@nxp.com> <1548338718-16247-1-git-send-email-meenakshi.aggarwal@nxp.com> In-Reply-To: <1548338718-16247-1-git-send-email-meenakshi.aggarwal@nxp.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=meenakshi.aggarwal@nxp.com; x-originating-ip: [92.120.0.3] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR04MB4031; 6:7R6q2X9yEqFUaq7XMIUGjJr+V+Lvqi5kM6qycve3ItYNgAHTCYXBJXn/pwoQNwzesHpcMGa6lgceUBGwMHtKCA59Vuu1Z5re5ImMDBcnD1GP7i07lqwnPSVLumor46jJ/qWgLTxafaiKunNEGwmSvkfhUOpzImzCLn6YIVluCVurljg96pRY55OwsWN7DY7X6dEU5rBIIA6Hi/xYB2iXFRTeBrfQYEOc67grg/Nme9BmyT5V0VD5Riydrb+C6m4tU6vN+OcvR0WSBkBvQ0zOkYEcHmlHFVXkIFzej+2y73o1LfTJdJiVB3Nz5VqHhsNLBmo8alCfvB6K0oa0F3Wi0whpHYztMJLa4vf3i9fb8s/Hm+sXUI6uy+Oubr3XbhJ+VoORPGPw3R/2xhewLEXjtJdSLZlZ8RshMDrD5aEM7Zxk1A2pLw8Zh+qyXPP/3lVyBBGbK4g3QpEpKenxRpTULA==; 5:cE7gegzACAPkup97UPLG72G0461lA5Px/XIVeHFeZerM7PQs+TurYi6Ju6V62yalM52EsJwIGRSeZwCLFbZndhWVb3xteutLqmIg22lb3oPe/RIv6Rxk6PlORJaEEFYuvrdTiDHHU1svISWg2Nj6TRWLjIy9Zl8yaw7bVUOLLlqr41Q7xYik8g7UrL9+0YaFqEzLXZHBbJRZCrTrnfHZmA==; 7:1mS2R9/hVrIhskEfikbZ8mmOi6w7UI2l4vGgclFTe/6SAX3wc8Wl1bCvvn4141LirxPIPnNbG9e+LPAH8bO43gA4rNo7C/n+oUkdPQndpbmRxmZH0Ip1DW9j6I69F/1/KdTVK/kTak0RcvTs6saM0A== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 5f339489-d8ed-44eb-be1b-08d685a449b2 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB4031; x-ms-traffictypediagnostic: VI1PR04MB4031: x-microsoft-antispam-prvs: x-forefront-prvs: 093290AD39 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(376002)(396003)(136003)(366004)(13464003)(199004)(189003)(33656002)(71200400001)(2501003)(14454004)(71190400001)(99286004)(8676002)(8936002)(105586002)(106356001)(44832011)(81156014)(81166006)(102836004)(26005)(14444005)(6436002)(53546011)(6506007)(229853002)(256004)(476003)(486006)(11346002)(446003)(6246003)(186003)(478600001)(316002)(7736002)(305945005)(25786009)(110136005)(68736007)(76176011)(7696005)(55016002)(97736004)(9686003)(53936002)(74316002)(2906002)(66066001)(86362001)(2201001)(6116002)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB4031; H:VI1PR04MB4685.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: W6vh++uEuCNAtS3A3FQC6N0DeEQVji4YxofXyKFCltsH17OEPYWiTgXmjoK65pXrFix7eQhnG6/F8cuF0QXBzW4Z8AtiGYIV/gcYAP9gigiZzLS5tRiUvcDgYXUP4WlPClyyZETr8UaOoXuLJJfD27Uppp2Svg0Hf32ks/NT82Yeru0AcRLZOSxCSoQjQePdaO1BLlQBZQ8DEPtCvWXjngWwA1JOmyFfN9gUYJfO1npc4i/Uf2lRD0uJ1nVAXm8mf4ZEWdCN224fA3aBTwXpS54l7rkC2yYU9+zJn4yZaY2FwkZeCnhDUbTiNkgIfVKDXj0+MQFRmM+7VJCEeTNTDWFUdu6/iCN+1B7WBtlE5izv4W3QxK2KYgkCjaZ4wQRZ0z9aPuVJnbRDxGM5DqEzvN0U6b13b0FxS9FLOGfXN14= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f339489-d8ed-44eb-be1b-08d685a449b2 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2019 04:43:17.5234 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4031 Subject: Re: [PATCH v2] SD/eMMC : Fix Command Argument for SD/eMMC R/W operation. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2019 04:43:23 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, Please share review comments. Thanks, Meenakshi > -----Original Message----- > From: Meenakshi Aggarwal > Sent: Thursday, January 24, 2019 7:35 PM > To: ard.biesheuvel@linaro.org; leif.lindholm@linaro.org; edk2- > devel@lists.01.org; jun.nie@linaro.org; haojian.zhuang@linaro.org > Cc: Meenakshi Aggarwal > Subject: [PATCH v2] SD/eMMC : Fix Command Argument for SD/eMMC R/W > operation. >=20 > Issue : SD read failure for high capacity cards e.g. 64 GB i Reason : Com= mand > argument value exceeds 32 bit for block number 0x3787FFF and cant be fit = into > 32 bit wide SD host controller register. >=20 > Fix : > AccessMode bits [29:30] of OCR is a valid definition to calculate data ad= dress for > eMMC cards. >=20 > For SD cards, data address is calculated on the basis of card capacity st= atus > bit[30] of OCR. >=20 > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Meenakshi Aggarwal > --- > EmbeddedPkg/Universal/MmcDxe/Mmc.h | 2 ++ > EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c | 21 ++++++++++++++++----- > 2 files changed, 18 insertions(+), 5 deletions(-) >=20 > diff --git a/EmbeddedPkg/Universal/MmcDxe/Mmc.h > b/EmbeddedPkg/Universal/MmcDxe/Mmc.h > index a77ba41..62de2c8 100644 > --- a/EmbeddedPkg/Universal/MmcDxe/Mmc.h > +++ b/EmbeddedPkg/Universal/MmcDxe/Mmc.h > @@ -70,6 +70,8 @@ > #define SD_HIGH_SPEED 50000000 > #define SWITCH_CMD_SUCCESS_MASK 0x0f000000 >=20 > +#define SD_CARD_CAPACITY 0x00000002 > + > #define BUSWIDTH_4 4 >=20 > typedef enum { > diff --git a/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c > b/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c > index a2b9232..1dea7d3 100644 > --- a/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c > +++ b/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c > @@ -148,12 +148,23 @@ MmcTransferBlock ( > MmcHostInstance =3D MMC_HOST_INSTANCE_FROM_BLOCK_IO_THIS (This); > MmcHost =3D MmcHostInstance->MmcHost; >=20 > - //Set command argument based on the card access mode (Byte mode or Blo= ck > mode) > - if ((MmcHostInstance->CardInfo.OCRData.AccessMode & > MMC_OCR_ACCESS_MASK) =3D=3D > - MMC_OCR_ACCESS_SECTOR) { > - CmdArg =3D Lba; > + if (MmcHostInstance->CardInfo.CardType !=3D EMMC_CARD) { > + //Set command argument based on the card capacity > + //if 0 : SDSC card > + //if 1 : SDXC/SDHC > + if (MmcHostInstance->CardInfo.OCRData.AccessMode & > SD_CARD_CAPACITY) { > + CmdArg =3D Lba; > + } else { > + CmdArg =3D Lba * This->Media->BlockSize; > + } > } else { > - CmdArg =3D Lba * This->Media->BlockSize; > + //Set command argument based on the card access mode (Byte mode or > Block mode) > + if ((MmcHostInstance->CardInfo.OCRData.AccessMode & > MMC_OCR_ACCESS_MASK) =3D=3D > + MMC_OCR_ACCESS_SECTOR) { > + CmdArg =3D Lba; > + } else { > + CmdArg =3D Lba * This->Media->BlockSize; > + } > } >=20 > Status =3D MmcHost->SendCommand (MmcHost, Cmd, CmdArg); > -- > 1.9.1