From nobody Thu Mar 28 19:27:18 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+48114+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+48114+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1569508099; cv=none; d=zoho.com; s=zohoarc; b=ANb+X5IkAeCE7WmadLoBXDrMlLXSYraP6be7kQM3UC/j7dSTG7Ynsye9ri23UbxOSU3IFJ3FN0gVzN59dJB8l8EF5M0s4vM315mMhI0EgX+gkVv0D26ydBqgkzsdkRbLRlAecfA5KOoYrgOeAVDtHqR4ZWhxmVoRsT5FBBMIdsg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569508099; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=bOjthAChKZalCmUatIAyvMsCJjdMD+G+m+AbSKvVoEs=; b=CrPuO2gW/3LnjCN5nKsivQF3xBrt2QDMxeGiW0C+4Oty7il05l6TKf/zD+LctYBUveOHMEFEBIS79Z9ysxVA3++gthmBD/0ui/n/Ec/lwnF4yySsVcAqChyivg/E5iIficmJbWySkB0N6PDGdEzpSjjZypydzewJ1awLZhDLSpk= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+48114+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1569508099585289.9612799671813; Thu, 26 Sep 2019 07:28:19 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id aaaaYY1788612xaaaaaaaaaa; Thu, 26 Sep 2019 07:28:19 -0700 X-Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by groups.io with SMTP; Thu, 26 Sep 2019 07:28:18 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Sep 2019 07:28:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,552,1559545200"; d="scan'208";a="364746401" X-Received: from gklab-27-32.ger.corp.intel.com ([10.102.28.45]) by orsmga005.jf.intel.com with ESMTP; 26 Sep 2019 07:28:17 -0700 From: "Albecki, Mateusz" To: devel@edk2.groups.io Cc: "Albecki, Mateusz" , Hao A Wu , Marcin Wojtas Subject: [edk2-devel] [PATCHv2 1/3] MdeModulePkg/SdMmcPciHcDxe: Remove clock stop from HS200 switch Date: Thu, 26 Sep 2019 16:27:42 +0200 Message-Id: <20190926142744.3356-2-mateusz.albecki@intel.com> In-Reply-To: <20190926142744.3356-1-mateusz.albecki@intel.com> References: <20190926142744.3356-1-mateusz.albecki@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mateusz.albecki@intel.com X-Gm-Message-State: aaaaaaaaaaaaaaaaaaaaaaaax1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1569508099; bh=wBKO0tSVSLR9bUQqKgmyo3jJHITwlPdunJYtEwY6t2g=; h=Cc:Date:From:Reply-To:Subject:To; b=q5PofrXtUB2exl/vI2h0FDfFN7tUrJ6WrjbKFa5S9Si8VCBbcxXs57WTLZzuHt0t+3x pTVwFaoB4StXHnYElBj7r+i4S8907V8zEBU0964jNNoC2q3o2vYxhqR+REgWoKeah30yp C6+BpcKa8evW7us3ko+aU3So2cxZjKNU8N8= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2218 Stopping the SD clock before switching host controller bus timing is only neccessary if preset value enable is set in host controller. Code that performs switch to HS200 doesn't check this condition right now and we also don't do the SD clock stop before any other bus timing switch in host controller. Since the driver is generally not ready to support host controller with preset value enable set we removed this code. Signed-off-by: Mateusz Albecki Cc: Hao A Wu Cc: Marcin Wojtas Reviewed-by: Hao A Wu Tested-by: Hao A Wu --- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c | 29 ---------------------= ---- 1 file changed, 29 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c b/MdeModulePkg= /Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c index 3f4a8e5413..bd70490286 100644 --- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c +++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c @@ -837,7 +837,6 @@ EmmcSwitchToHS200 ( ) { EFI_STATUS Status; - UINT16 ClockCtrl; SD_MMC_HC_PRIVATE_DATA *Private; =20 Private =3D SD_MMC_HC_PRIVATE_FROM_THIS (PassThru); @@ -851,40 +850,12 @@ EmmcSwitchToHS200 ( if (EFI_ERROR (Status)) { return Status; } - // - // Stop bus clock at first - // - Status =3D SdMmcHcStopClock (PciIo, Slot); - if (EFI_ERROR (Status)) { - return Status; - } =20 Status =3D SdMmcHcUhsSignaling (Private->ControllerHandle, PciIo, Slot, = BusMode->BusTiming); if (EFI_ERROR (Status)) { return Status; } =20 - // - // Wait Internal Clock Stable in the Clock Control register to be 1 befo= re set SD Clock Enable bit - // - Status =3D SdMmcHcWaitMmioSet ( - PciIo, - Slot, - SD_MMC_HC_CLOCK_CTRL, - sizeof (ClockCtrl), - BIT1, - BIT1, - SD_MMC_HC_GENERIC_TIMEOUT - ); - if (EFI_ERROR (Status)) { - return Status; - } - // - // Set SD Clock Enable in the Clock Control register to 1 - // - ClockCtrl =3D BIT2; - Status =3D SdMmcHcOrMmio (PciIo, Slot, SD_MMC_HC_CLOCK_CTRL, sizeof (Clo= ckCtrl), &ClockCtrl); - Status =3D EmmcSwitchBusTiming (PciIo, PassThru, Slot, Rca, BusMode->Dri= verStrength, BusMode->BusTiming, BusMode->ClockFreq); if (EFI_ERROR (Status)) { return Status; --=20 2.14.1.windows.1 -------------------------------------------------------------------- Intel Technology Poland sp. z o.o. ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydz= ial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-31= 6 | Kapital zakladowy 200.000 PLN. Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata= i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wi= adomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiek= olwiek przegladanie lub rozpowszechnianie jest zabronione. This e-mail and any attachments may contain confidential material for the s= ole use of the intended recipient(s). If you are not the intended recipient= , please contact the sender and delete all copies; any review or distributi= on by others is strictly prohibited. -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#48114): https://edk2.groups.io/g/devel/message/48114 Mute This Topic: https://groups.io/mt/34299252/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Thu Mar 28 19:27:18 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+48115+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+48115+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1569508102; cv=none; d=zoho.com; s=zohoarc; b=GWFSijiD7Mbc3lJi+pSGsiYBDMQlqzL1MDl5FkSz119UPkbqEh27i92OW5DNBcpp3xl3jCs6cD8eF8tsGn+6zIa6hZC6Yeqh7+bdyiPy0GuT/7Lkn44G35CFk9Qw/rZj6D1ZorY9HVol412Qir6/6v0dY/eehzsxZySODjBjgZw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569508102; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=OMyFoDctLilp5UL35FMRV1yyqfQqXiO9Kq/EdxpuyFA=; b=Er2Uy55Yi0nCtNdTqaHEI3XOSW0HtFngWJNHpaM2RsIpkaUyNQsxI/w+doXRNhpwc1Ji+WMRkeH857OXFO9SEJ4uJnA3wobXLRGLMEtENHS77kys9h/75ugJP6SbXun20o/kDjF5aBIlQBhF1QyUc4g0zgqJYpBofFxfchUjjsM= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+48115+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1569508102077797.6620034374243; Thu, 26 Sep 2019 07:28:22 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id aaaaYY1788612xaaaaaaaaaa; Thu, 26 Sep 2019 07:28:21 -0700 X-Received: from mga04.intel.com (mga04.intel.com []) by groups.io with SMTP; Thu, 26 Sep 2019 07:28:21 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Sep 2019 07:28:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,552,1559545200"; d="scan'208";a="364746411" X-Received: from gklab-27-32.ger.corp.intel.com ([10.102.28.45]) by orsmga005.jf.intel.com with ESMTP; 26 Sep 2019 07:28:19 -0700 From: "Albecki, Mateusz" To: devel@edk2.groups.io Cc: "Albecki, Mateusz" , Hao A Wu , Marcin Wojtas Subject: [edk2-devel] [PATCHv2 2/3] MdeModulePkg/SdMmcPciHcDxe: Fix bus timing switch sequence Date: Thu, 26 Sep 2019 16:27:43 +0200 Message-Id: <20190926142744.3356-3-mateusz.albecki@intel.com> In-Reply-To: <20190926142744.3356-1-mateusz.albecki@intel.com> References: <20190926142744.3356-1-mateusz.albecki@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mateusz.albecki@intel.com X-Gm-Message-State: aaaaaaaaaaaaaaaaaaaaaaaax1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1569508101; bh=XFsxe2utlBAEe+J0ef8R0WogaTT5+ER2/ndis5epsso=; h=Cc:Date:From:Reply-To:Subject:To; b=pf+8/1IV9Nm1fkBA5N/6IStKe/ynVXk1Z0lhd5M5FOojkFdYFpPNt3vBUKvYNpzr9w5 Bg0AIyhBITIrSVJ2PlqH+4UUvm1mkitiPsQIzH1cRkL1AXae3LV4Uz6BrwgnQm7KZVl2f x0V6D6/ZoQT1maLinaXQj5ABdCSHsZ9Q3AY= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2218 SD specification recommends switching card bus timing before switching bus timing in controller. Emmc driver used to do this switch other way around. This commit adds controller timing switch in EmmcSwitchBusTiming function to enforce this order and removes all controller timing programing from EmmcSwitchToXXX functions. Signed-off-by: Mateusz Albecki Cc: Hao A Wu Cc: Marcin Wojtas Reviewed-by: Hao A Wu Tested-by: Hao A Wu --- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c | 70 +++++++++------------= ---- 1 file changed, 26 insertions(+), 44 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c b/MdeModulePkg= /Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c index bd70490286..3598a8538a 100644 --- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c +++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c @@ -671,6 +671,7 @@ EmmcSwitchBusTiming ( UINT8 CmdSet; UINT32 DevStatus; SD_MMC_HC_PRIVATE_DATA *Private; + UINT8 HostCtrl1; =20 Private =3D SD_MMC_HC_PRIVATE_FROM_THIS (PassThru); // @@ -704,6 +705,25 @@ EmmcSwitchBusTiming ( return Status; } =20 + if (BusTiming =3D=3D SdMmcMmcHsSdr || BusTiming =3D=3D SdMmcMmcHsDdr) { + HostCtrl1 =3D BIT2; + Status =3D SdMmcHcOrMmio (PciIo, Slot, SD_MMC_HC_HOST_CTRL1, sizeof (H= ostCtrl1), &HostCtrl1); + if (EFI_ERROR (Status)) { + return Status; + } + } else { + HostCtrl1 =3D (UINT8)~BIT2; + Status =3D SdMmcHcAndMmio (PciIo, Slot, SD_MMC_HC_HOST_CTRL1, sizeof (= HostCtrl1), &HostCtrl1); + if (EFI_ERROR (Status)) { + return Status; + } + } + + Status =3D SdMmcHcUhsSignaling (Private->ControllerHandle, PciIo, Slot, = BusTiming); + if (EFI_ERROR (Status)) { + return Status; + } + // // Convert the clock freq unit from MHz to KHz. // @@ -771,12 +791,8 @@ EmmcSwitchToHighSpeed ( IN SD_MMC_BUS_SETTINGS *BusMode ) { - EFI_STATUS Status; - UINT8 HostCtrl1; - SD_MMC_HC_PRIVATE_DATA *Private; - BOOLEAN IsDdr; - - Private =3D SD_MMC_HC_PRIVATE_FROM_THIS (PassThru); + EFI_STATUS Status; + BOOLEAN IsDdr; =20 if ((BusMode->BusTiming !=3D SdMmcMmcHsSdr && BusMode->BusTiming !=3D Sd= MmcMmcHsDdr) || BusMode->ClockFreq > 52) { @@ -794,20 +810,6 @@ EmmcSwitchToHighSpeed ( return Status; } =20 - // - // Set to High Speed timing - // - HostCtrl1 =3D BIT2; - Status =3D SdMmcHcOrMmio (PciIo, Slot, SD_MMC_HC_HOST_CTRL1, sizeof (Hos= tCtrl1), &HostCtrl1); - if (EFI_ERROR (Status)) { - return Status; - } - - Status =3D SdMmcHcUhsSignaling (Private->ControllerHandle, PciIo, Slot, = BusMode->BusTiming); - if (EFI_ERROR (Status)) { - return Status; - } - return EmmcSwitchBusTiming (PciIo, PassThru, Slot, Rca, BusMode->DriverS= trength, BusMode->BusTiming, BusMode->ClockFreq); } =20 @@ -836,10 +838,7 @@ EmmcSwitchToHS200 ( IN SD_MMC_BUS_SETTINGS *BusMode ) { - EFI_STATUS Status; - SD_MMC_HC_PRIVATE_DATA *Private; - - Private =3D SD_MMC_HC_PRIVATE_FROM_THIS (PassThru); + EFI_STATUS Status; =20 if (BusMode->BusTiming !=3D SdMmcMmcHs200 || (BusMode->BusWidth !=3D 4 && BusMode->BusWidth !=3D 8)) { @@ -851,11 +850,6 @@ EmmcSwitchToHS200 ( return Status; } =20 - Status =3D SdMmcHcUhsSignaling (Private->ControllerHandle, PciIo, Slot, = BusMode->BusTiming); - if (EFI_ERROR (Status)) { - return Status; - } - Status =3D EmmcSwitchBusTiming (PciIo, PassThru, Slot, Rca, BusMode->Dri= verStrength, BusMode->BusTiming, BusMode->ClockFreq); if (EFI_ERROR (Status)) { return Status; @@ -891,17 +885,15 @@ EmmcSwitchToHS400 ( IN SD_MMC_BUS_SETTINGS *BusMode ) { - EFI_STATUS Status; - SD_MMC_HC_PRIVATE_DATA *Private; - SD_MMC_BUS_SETTINGS Hs200BusMode; - UINT32 HsFreq; + EFI_STATUS Status; + SD_MMC_BUS_SETTINGS Hs200BusMode; + UINT32 HsFreq; =20 if (BusMode->BusTiming !=3D SdMmcMmcHs400 || BusMode->BusWidth !=3D 8) { return EFI_INVALID_PARAMETER; } =20 - Private =3D SD_MMC_HC_PRIVATE_FROM_THIS (PassThru); Hs200BusMode.BusTiming =3D SdMmcMmcHs200; Hs200BusMode.BusWidth =3D BusMode->BusWidth; Hs200BusMode.ClockFreq =3D BusMode->ClockFreq; @@ -916,11 +908,6 @@ EmmcSwitchToHS400 ( // Set to High Speed timing and set the clock frequency to a value less = than or equal to 52MHz. // This step is necessary to be able to switch Bus into 8 bit DDR mode w= hich is unsupported in HS200. // - Status =3D SdMmcHcUhsSignaling (Private->ControllerHandle, PciIo, Slot, = SdMmcMmcHsSdr); - if (EFI_ERROR (Status)) { - return Status; - } - HsFreq =3D BusMode->ClockFreq < 52 ? BusMode->ClockFreq : 52; Status =3D EmmcSwitchBusTiming (PciIo, PassThru, Slot, Rca, BusMode->Dri= verStrength, SdMmcMmcHsSdr, HsFreq); if (EFI_ERROR (Status)) { @@ -932,11 +919,6 @@ EmmcSwitchToHS400 ( return Status; } =20 - Status =3D SdMmcHcUhsSignaling (Private->ControllerHandle, PciIo, Slot, = BusMode->BusTiming); - if (EFI_ERROR (Status)) { - return Status; - } - return EmmcSwitchBusTiming (PciIo, PassThru, Slot, Rca, BusMode->DriverS= trength, BusMode->BusTiming, BusMode->ClockFreq); } =20 --=20 2.14.1.windows.1 -------------------------------------------------------------------- Intel Technology Poland sp. z o.o. ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydz= ial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-31= 6 | Kapital zakladowy 200.000 PLN. Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata= i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wi= adomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiek= olwiek przegladanie lub rozpowszechnianie jest zabronione. This e-mail and any attachments may contain confidential material for the s= ole use of the intended recipient(s). If you are not the intended recipient= , please contact the sender and delete all copies; any review or distributi= on by others is strictly prohibited. -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#48115): https://edk2.groups.io/g/devel/message/48115 Mute This Topic: https://groups.io/mt/34299254/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Thu Mar 28 19:27:18 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+48116+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+48116+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1569508121; cv=none; d=zoho.com; s=zohoarc; b=jnrnwu2wv+hAECpQIlb0TMrH5y9pO64SxHf/dc4dRe4UlxFF+1ruiuJ0fNCfwQMgetiHE+cTUEExgyQ1quimAxh7fvb0bkS42HrccXU/4qKQMKxqXRE8VAbVUPgjgizDGkH9bU8J949KVW7th/e3JtZcxK0OsrxkDBe4zAw7zEo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569508121; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=si/N33ovTiEq9O/2PLOBXkvsfcqbXKfj3UkMTp8WsP8=; b=DrNSz140ZCayGZu6h4QJFe3G1/EskSgIGnCE7/L3xfFKnCBSzvrEkYfD+0etAnIQS7EU5i3/+qO37WQFfP/yT+fIm8SIeEi7mofdoIi6E7EyWsgNjeroGLHdVK8u2gWHAnPzLxFycKTp3kD68Pct1tPPXhjFc8oZwUKmYIzws2A= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+48116+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 156950812175730.54594185722101; Thu, 26 Sep 2019 07:28:41 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id aaaaYY1788612xaaaaaaaaaa; Thu, 26 Sep 2019 07:28:41 -0700 X-Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by groups.io with SMTP; Thu, 26 Sep 2019 07:28:41 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Sep 2019 07:28:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,552,1559545200"; d="scan'208";a="364746480" X-Received: from gklab-27-32.ger.corp.intel.com ([10.102.28.45]) by orsmga005.jf.intel.com with ESMTP; 26 Sep 2019 07:28:36 -0700 From: "Albecki, Mateusz" To: devel@edk2.groups.io Cc: "Albecki, Mateusz" , Hao A Wu , Marcin Wojtas Subject: [edk2-devel] [PATCHv2 3/3] MdeModulePkg/SdMmcPciHcDxe: Fix SdMmcMmcLegacy bus timing handling Date: Thu, 26 Sep 2019 16:27:44 +0200 Message-Id: <20190926142744.3356-4-mateusz.albecki@intel.com> In-Reply-To: <20190926142744.3356-1-mateusz.albecki@intel.com> References: <20190926142744.3356-1-mateusz.albecki@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mateusz.albecki@intel.com X-Gm-Message-State: aaaaaaaaaaaaaaaaaaaaaaaax1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1569508121; bh=HwiDBW34O0SmP5yE9Oda5eVVcIDxXhtTAw6R6++KwL8=; h=Cc:Date:From:Reply-To:Subject:To; b=WkKGVabzubiqYoVzgZbIKravIuq7Bt3S6r/vrzb7Ng/hogXgzCBRRw7PqI1/fLvd5kH IHhxhNjOG2YomOn9BUbGkRcySbMCHjl9t2AdniFQvR+lqWz4wRfBc/cb6MLKeEpdDsWQQ qXOiTkHrdaCuwd6N08Kwr/w1Rm3mKKfeJbU= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2218 There is a bug in current driver code that makes it impossible for it to work with devices that only work in legacy speed mode since the function EmmcSwitchToHighSpeed will return with EFI_INVALID_ARGUMENT for such bus mode. Since the logic in that function will work well for SdMmcMmcLegacy this patch just allows to call this function with SdMmcMmcLegacy bus mode. Signed-off-by: Mateusz Albecki Cc: Hao A Wu Cc: Marcin Wojtas Reviewed-by: Hao A Wu Tested-by: Hao A Wu --- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c b/MdeModulePkg= /Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c index 3598a8538a..082904ccc5 100644 --- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c +++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/EmmcDevice.c @@ -794,7 +794,7 @@ EmmcSwitchToHighSpeed ( EFI_STATUS Status; BOOLEAN IsDdr; =20 - if ((BusMode->BusTiming !=3D SdMmcMmcHsSdr && BusMode->BusTiming !=3D Sd= MmcMmcHsDdr) || + if ((BusMode->BusTiming !=3D SdMmcMmcHsSdr && BusMode->BusTiming !=3D Sd= MmcMmcHsDdr && BusMode->BusTiming !=3D SdMmcMmcLegacy) || BusMode->ClockFreq > 52) { return EFI_INVALID_PARAMETER; } @@ -1244,6 +1244,12 @@ EmmcSetBusMode ( } else if (BusMode.BusTiming =3D=3D SdMmcMmcHs200) { Status =3D EmmcSwitchToHS200 (PciIo, PassThru, Slot, Rca, &BusMode); } else { + // + // Note that EmmcSwitchToHighSpeed is also called for SdMmcMmcLegacy + // bus timing. This is because even though we might not want to + // change the timing itself we still want to allow customization of + // bus parameters such as clock frequency and bus width. + // Status =3D EmmcSwitchToHighSpeed (PciIo, PassThru, Slot, Rca, &BusMode= ); } =20 --=20 2.14.1.windows.1 -------------------------------------------------------------------- Intel Technology Poland sp. z o.o. ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydz= ial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-31= 6 | Kapital zakladowy 200.000 PLN. Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata= i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wi= adomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiek= olwiek przegladanie lub rozpowszechnianie jest zabronione. This e-mail and any attachments may contain confidential material for the s= ole use of the intended recipient(s). If you are not the intended recipient= , please contact the sender and delete all copies; any review or distributi= on by others is strictly prohibited. -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#48116): https://edk2.groups.io/g/devel/message/48116 Mute This Topic: https://groups.io/mt/34299257/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-