From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.4383.1670469261911284687 for ; Wed, 07 Dec 2022 19:14:22 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=REKTkw7i; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: hao.a.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1670469261; x=1702005261; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=psczNA0SWM2/q5VrE2P12IPOYfh2I8BnszeafzOnRLg=; b=REKTkw7iQzy+6zeNuongTbDNQIFWFxwVt3Qqi/zKf7xGTbGWd3tZgtvR UpYcrs00qvL8gNW6oG++U6jlCv4pUXtfFXqBqhFqscWNOTtGwgQtL/ynP i3Gr8KKgyfJhl0Mos2BQRJ3uYS9MUXJWx7RPR8S/Y/lD9TI4m4VqGydPv yT7t739KUlQXx93JCrlAG1vomrm3DT8pC1WTc8qR3MemSUWQLMAMq1DB2 sYrODZWVsT1CFsMYI8AU0u1bv3cQSdvYZ2kUQigH1AVvhR2CQKTD+/jaD AmQaEg5ZP0Iiv6g5TMDL+DzalJRKmqIflVTMRil2trJZW3bfU2hNCEDlm g==; X-IronPort-AV: E=McAfee;i="6500,9779,10554"; a="381352463" X-IronPort-AV: E=Sophos;i="5.96,226,1665471600"; d="scan'208";a="381352463" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Dec 2022 19:14:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10554"; a="710297557" X-IronPort-AV: E=Sophos;i="5.96,226,1665471600"; d="scan'208";a="710297557" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga008.fm.intel.com with ESMTP; 07 Dec 2022 19:14:20 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 7 Dec 2022 19:14:20 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 7 Dec 2022 19:14:20 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Wed, 7 Dec 2022 19:14:20 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Wed, 7 Dec 2022 19:14:20 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lXXNmGT+mi2wdToCgsMHZ12HO8ueF6pHGr9R+wNWe4Ehbc2a3HqIByYn1KBq+n8o6sM2KQuEs1IGBJPE3DKS03Ixuj3tUt5ZK5at8/dSuCX2OaKTTFXsZTYjO11VXruNE82wM1p/aq5YSEaddSN1GKyVfq0hUFjOZQst8VfOnpcvVHuysRxcG+fTsHmM8aYPLY+Yx5W5IbHvMbF1eRhD3T3o0i5knbZuM1BvrDKsRAbUKaCj8f4HwX9C+RFEhl3smnPNk1QUNJyYfnzg6CQKMG644DjjFCqXJCmM4FO2vQmxg6f21jzyuxrXYhq04seYej+wOjcT+F+BrOHHSIoBwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SonGabzSLW0LoC2Hs6538Jb1qFm4VS3dS6cVnSqZ4X8=; b=BmtJTmYDB+xogqAMiUmvzqpVTH3O6wpGDcRC6KotBAmLdUcfutbxnT3LlNhhJw2A1SACLWFSdRmPdSeXtb1J5iMoBAkzg5TDgBlaWwEeCecLu0ZrSZ58SAZ4EFWKgOxZQ2fPK7BkRDVj60GhJCOPz1lE4r/fDalht2ujrbfJncd5SH9kne1IsaKBgaibF0YhEoyIiXeBH/rtrhUklWCcLugvjNW+Ewqj4msVx07Q+etCJDSItt6Ym5MbtBDWhg8I/JmxeF7Y1mynLHWLkl0PCWF5JDd0kVCh1BYatfm1rUxueNkJ40t8muV4KrzpNNo0fgydfoqxs7JEdPYskSc/4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by CO1PR11MB5043.namprd11.prod.outlook.com (2603:10b6:303:96::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14; Thu, 8 Dec 2022 03:14:12 +0000 Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::6129:7158:18dd:761c]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::6129:7158:18dd:761c%3]) with mapi id 15.20.5880.014; Thu, 8 Dec 2022 03:14:11 +0000 From: "Wu, Hao A" To: Chevron Li , "devel@edk2.groups.io" CC: "Ni, Ray" , "Wang, Jian J" , "Gao, Liming" , "shirley.her@bayhubtech.com" , "shaper.liu@bayhubtech.com" , "xiaoguang.yu@bayhubtech.com" Subject: Re: [edk2-platform][PATCH V3 1/1] MdeModulePkg: SdMmcPciHcDxe: Fix issue that SD1.0 cards can't be recognized Thread-Topic: [edk2-platform][PATCH V3 1/1] MdeModulePkg: SdMmcPciHcDxe: Fix issue that SD1.0 cards can't be recognized Thread-Index: AQHZCixXj8yhAoOp2EKirlNWOv0qaq5jUZFg Date: Thu, 8 Dec 2022 03:14:11 +0000 Message-ID: References: <20221207110839.1185-1-chevron.li@bayhubtech.com> In-Reply-To: <20221207110839.1185-1-chevron.li@bayhubtech.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB4025:EE_|CO1PR11MB5043:EE_ x-ms-office365-filtering-correlation-id: fe2bae43-0b4f-4e4f-f703-08dad8ca4744 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: L427jQ0n70OA1mmlWLa+jmsli7qzwCvXrWci5uPhqj3wiWveloZ/97d+0tLpBUZ6/sc66SjBdrHSHqqCYYmD/IsVEwozgSAF8dccxvOAMSp7Axcb6KLUAfBNNE3eujgRZu7gStyvn5+wBLSDsmu7jt0jnFN0ylObQJz5kBi8mVtDL4ZbnlL0mfH7feiQpZ8g7JK4uuWTnDgaMT6zj9FGVVcA/41hNsaVw+OVdYXHr/6+HsXWnh5Rcny2X+qCuxqdvRFPOZMOEbMvjWYOhCWEf/SnsLOvKMJsHNghM0zIETf1DkzkVcON/oj5IhNy74T4oOmdGSVpXkTwTTfC881QKyfzBmyBiZMAxBcaXgNaTqXKaMnh54EEuINMoDWzG0BWDuiwX+51vskNGEkS/pK03lDU61qNBmrxvnVczzMkf+sjZTouoQ6UfGyu8W9WwMLz2AZooVkShXN3KBmKxt82YOeWxnwJpW5gAkw8JKZ+MTdItsAZcQG9xn3JU5XkGmo+PF4XUZE7oRqObuw546URommK/4i/sZjBOIV5rQTteqiAI1RgQrkDbjzMp/T0f4OyQ3A9oIrv6hUqQ3H0Xk5ZttY2KzOZNtr7exTSE4Cp1zoDNKhM+tsNabmnV5OEoPP0gapeTmSxdhWyTl0mCcrDdC/XkgPm4pMHdHVFOCZYP44EmYtNZjVZwkV6IoFh73vC82eufe83E0t2+DHR84QmFg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4025.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(6029001)(39860400002)(136003)(366004)(346002)(376002)(396003)(451199015)(6506007)(38100700002)(7696005)(86362001)(38070700005)(71200400001)(55016003)(33656002)(478600001)(53546011)(8936002)(26005)(4326008)(52536014)(9686003)(41300700001)(5660300002)(66946007)(2906002)(64756008)(110136005)(66446008)(8676002)(66556008)(54906003)(316002)(66476007)(76116006)(82960400001)(83380400001)(122000001)(186003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?xuqSftOU9w97GQDoRuA+ogZ4wv4B95crFm7J7eJD84CmAQBtbNklrF/Dn0hP?= =?us-ascii?Q?F9Rk53Yh7tz+roc2A4PRiPFO+W7bG4ITDgD2z7SRgWRBBXfkevZnB46jk2xn?= =?us-ascii?Q?zrrNb7Uj0vZAZte9+GgsgxboPOs5y+TupX7O2KHcED622Ba7suGwrxZSX+Mw?= =?us-ascii?Q?NyORm5tFgSIgFJahurgnUHNTuGEEAolJQHWZlzDd1aPpVk17ipSLWT5p2s6B?= =?us-ascii?Q?yGxirIohrKtowvkX2UtAaibVHt6atT6FtABIVWD1AACFt/NQqwu0qYgrn9tr?= =?us-ascii?Q?zNIABNW89WHenPuoauRmbrsz710HbiZdpg5Y2iw2nIn9tZlWgTnrBtBrbqgM?= =?us-ascii?Q?R3hZyFfKQnYUCXdLT6ozexcoJtlgsNC9R8ioTaD5llzJ3WKyBu58xNtckmRv?= =?us-ascii?Q?OfKkyGWmXpot2SeoyMy1PcgE8Wy3LKOdgAz5skLOhijQCZTMQLeZnxNchwVA?= =?us-ascii?Q?Fj91ZTRkKwvEKodsBrGuPyn6HY2+Djoy/u9YG151pNkgW9wwul/W1AkmAcQm?= =?us-ascii?Q?ovHkreRxu65WO9ohBntPn0FbIU/Tbmf3A3bbPxXmh9esTmmNRAUuQ7xD6bdn?= =?us-ascii?Q?osrOd2rAcmZCy6SDxUCoEISx9F0DU6TqiKdPi0lbClntubFwwI9bEhdhUr3w?= =?us-ascii?Q?Jtb9nWrHwYknauWpswijEt9nLC2KUb9wNd/6cLvDhfbj0HxjqG26CUYRlHMb?= =?us-ascii?Q?TA3Trdy5xTR5DfkHr/YFW+FaR+0RFM1fNEZKIK4mT+XiE5C83kntClp6iL8W?= =?us-ascii?Q?unO96N/ottWeov3TV42iHIwEbpgBLHYHUpxRP7V3PcU/LdHh1pXgu9v0GZYq?= =?us-ascii?Q?DEWpXME94db1Ro43zevlAzEXJ8uEhpiqs/8LxJVjw5t0tS5dAWxFtn+bHuwf?= =?us-ascii?Q?cCBciD1qhHOIPiwuN2I9JGmtsTt5czLR4y1oH5W9fkUNm83SwddQDOJ5BBaa?= =?us-ascii?Q?IL5mD3FZGlGRCx5pie5/gTCEaq68zW6LWExfeok32rdZQpznjjqjuJe8z4uB?= =?us-ascii?Q?7PE19gyB3weNNnejQk8O86GYaB+TVkQrIVU0L20ZLBPyfaRYYjcETjiL1/ZJ?= =?us-ascii?Q?aE/rcWRAEaOZy+P346YUhud2z7B/AZEERSn4OqlnR8qoafWXcaN1MLiUItjM?= =?us-ascii?Q?JoY+0LqVDRhVMTLvvJK2zUqFTQII8EuYNNYSF7VxWONNn8jAzrBjpEuwMHop?= =?us-ascii?Q?bwsnUO00HtWBDakn7Z9EmaMc5sSSf2HFJu+Sbw4d/zILjKPL9ydAN6YX4swy?= =?us-ascii?Q?M6LGAJBZopAnvWeAMI3pNlyN3Sookleg4YWQyY2AzDKVer9TLF0nSLxk0cQw?= =?us-ascii?Q?keqyoGwT/y4IVS9GeDuXCptw2etO7+5/78dTITQmprh7aV3/0rI033w1hEnx?= =?us-ascii?Q?I55D3pIiO4oay+J8AcCYnowYaj2oS0Rgjhef+aDWE1AVLWRQkCaHGscBvKkh?= =?us-ascii?Q?ETJJMOYBvWvsJ0NcFRNihjIAlLaOnXKyHFlPT8OTcmMRE/sXl3+IRoP71coP?= =?us-ascii?Q?S757cyY/UnCdoJVnP64bA0HDNGE8Qb4oeg8tS5mFC+3TtjMPF0+DiVbmiArN?= =?us-ascii?Q?AYgEVsCUplQgTx7eI6ZKH4WSBMtiGXjh7smnnuMG?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe2bae43-0b4f-4e4f-f703-08dad8ca4744 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2022 03:14:11.6573 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RrUsdK6cWLkMrk0Nu7cWm/t/c5hwvR0m31cxBf5PJdqW8mPGFUbp+uHCC+Iwt66rr45GNXme5pZL/kzENC49VA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5043 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Hao A Wu Will wait a couple of days before merging to see if comments from other rev= iewers. Best Regards, Hao Wu > -----Original Message----- > From: Chevron Li > Sent: Wednesday, December 7, 2022 7:09 PM > To: devel@edk2.groups.io > Cc: Wu, Hao A ; Ni, Ray ; Wang, > Jian J ; Gao, Liming ; > shirley.her@bayhubtech.com; shaper.liu@bayhubtech.com; > xiaoguang.yu@bayhubtech.com; Chevron Li (WH) > > Subject: [edk2-platform][PATCH V3 1/1] MdeModulePkg: SdMmcPciHcDxe: > Fix issue that SD1.0 cards can't be recognized >=20 > From: "Chevron Li (WH)" >=20 > SD1.0 cards don't support CMD8 and CMD6 > CMD8 result can be used to distinguish the card is SD1.0 or not. > CMD8 result can be used to decide following CMD6 is sent or skip. >=20 > Cc: Hao A Wu > Cc: Ray Ni > Cc: Jian J Wang > Cc: Liming Gao > Signed-off-by: Chevron Li > --- > Changes in V2: > 1.Update description comment for input parameter 'SdVersion1'. > 2.Add variables initialize operation to avoid unexpected value. > 3.Use TRUE replace with 1 to assign value for BOOLEAN variable. >=20 > Changes in V3: > 1.Update code format for CL test fail. > 2.Fix memory out of bounds when initialize SwitchResp. > --- > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c | 34 +++++++++++++-- > ---- > 1 file changed, 24 insertions(+), 10 deletions(-) >=20 > diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c > b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c > index f5a3607e47..8bf452e9d0 100644 > --- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c > +++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c > @@ -1074,6 +1074,7 @@ SdGetTargetBusMode ( > @param[in] Slot The slot number of the SD card to send the > command to. >=20 > @param[in] Rca The relative device address to be assigned. >=20 > @param[in] S18A The boolean to show if it's a UHS-I SD card. >=20 > + @param[in] SdVersion1 The boolean to show if it's a Version 1 SD c= ard. >=20 >=20 >=20 > @retval EFI_SUCCESS The operation is done correctly. >=20 > @retval Others The operation fails. >=20 > @@ -1085,7 +1086,8 @@ SdCardSetBusMode ( > IN EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru, >=20 > IN UINT8 Slot, >=20 > IN UINT16 Rca, >=20 > - IN BOOLEAN S18A >=20 > + IN BOOLEAN S18A, >=20 > + IN BOOLEAN SdVersion1 >=20 > ) >=20 > { >=20 > EFI_STATUS Status; >=20 > @@ -1095,6 +1097,8 @@ SdCardSetBusMode ( > SD_MMC_HC_PRIVATE_DATA *Private; >=20 > SD_MMC_BUS_SETTINGS BusMode; >=20 >=20 >=20 > + ZeroMem (SwitchResp, 64 * sizeof (UINT8)); >=20 > + >=20 > Private =3D SD_MMC_HC_PRIVATE_FROM_THIS (PassThru); >=20 >=20 >=20 > Capability =3D &Private->Capability[Slot]; >=20 > @@ -1117,10 +1121,13 @@ SdCardSetBusMode ( >=20 >=20 > // >=20 > // Get the supported bus speed from SWITCH cmd return data group #1. >=20 > + // SdVersion1 don't support the SWITCH cmd >=20 > // >=20 > - Status =3D SdCardSwitch (PassThru, Slot, 0xFF, 0xF, SdDriverStrengthIg= nore, > 0xF, FALSE, SwitchResp); >=20 > - if (EFI_ERROR (Status)) { >=20 > - return Status; >=20 > + if (!SdVersion1) { >=20 > + Status =3D SdCardSwitch (PassThru, Slot, 0xFF, 0xF, SdDriverStrength= Ignore, > 0xF, FALSE, SwitchResp); >=20 > + if (EFI_ERROR (Status)) { >=20 > + return Status; >=20 > + } >=20 > } >=20 >=20 >=20 > SdGetTargetBusMode (Private, Slot, SwitchResp, S18A, &BusMode); >=20 > @@ -1141,9 +1148,14 @@ SdCardSetBusMode ( > } >=20 > } >=20 >=20 >=20 > - Status =3D SdCardSwitch (PassThru, Slot, BusMode.BusTiming, 0xF, > BusMode.DriverStrength.Sd, 0xF, TRUE, SwitchResp); >=20 > - if (EFI_ERROR (Status)) { >=20 > - return Status; >=20 > + // >=20 > + // SdVersion1 don't support the SWITCH cmd >=20 > + // >=20 > + if (!SdVersion1) { >=20 > + Status =3D SdCardSwitch (PassThru, Slot, BusMode.BusTiming, 0xF, > BusMode.DriverStrength.Sd, 0xF, TRUE, SwitchResp); >=20 > + if (EFI_ERROR (Status)) { >=20 > + return Status; >=20 > + } >=20 > } >=20 >=20 >=20 > Status =3D SdMmcSetDriverStrength (Private->PciIo, Slot, > BusMode.DriverStrength.Sd); >=20 > @@ -1214,8 +1226,10 @@ SdCardIdentification ( > UINT8 HostCtrl2; >=20 > UINTN Retry; >=20 > BOOLEAN ForceVoltage33; >=20 > + BOOLEAN SdVersion1; >=20 >=20 >=20 > ForceVoltage33 =3D FALSE; >=20 > + SdVersion1 =3D FALSE; >=20 >=20 >=20 > PciIo =3D Private->PciIo; >=20 > PassThru =3D &Private->PassThru; >=20 > @@ -1231,12 +1245,12 @@ Voltage33Retry: > } >=20 >=20 >=20 > // >=20 > - // 2. Send Cmd8 to the device >=20 > + // 2. Send Cmd8 to the device, the command will fail for SdVersion1 >=20 > // >=20 > Status =3D SdCardVoltageCheck (PassThru, Slot, 0x1, 0xFF); >=20 > if (EFI_ERROR (Status)) { >=20 > + SdVersion1 =3D TRUE; >=20 > DEBUG ((DEBUG_INFO, "SdCardIdentification: Executing Cmd8 fails > with %r\n", Status)); >=20 > - return Status; >=20 > } >=20 >=20 >=20 > // >=20 > @@ -1426,7 +1440,7 @@ Voltage33Retry: > DEBUG ((DEBUG_INFO, "SdCardIdentification: Found a SD device at slot > [%d]\n", Slot)); >=20 > Private->Slot[Slot].CardType =3D SdCardType; >=20 >=20 >=20 > - Status =3D SdCardSetBusMode (PciIo, PassThru, Slot, Rca, ((Ocr & BIT24= ) !=3D > 0)); >=20 > + Status =3D SdCardSetBusMode (PciIo, PassThru, Slot, Rca, ((Ocr & BIT24= ) !=3D 0), > SdVersion1); >=20 >=20 >=20 > return Status; >=20 >=20 >=20 >=20 > base-commit: 7bee2498910a9034faaf90802c49188afb7582dc > -- > 2.18.0.windows.1