From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.124]) by mx.groups.io with SMTP id smtpd.web10.46950.1670331184032569965 for ; Tue, 06 Dec 2022 04:53:04 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@towerbridgetechnology.onmicrosoft.com header.s=selector2-towerbridgetechnology-onmicrosoft-com header.b=Do9ExVPP; spf=pass (domain: bayhubtech.com, ip: 40.107.237.124, mailfrom: chevron.li@bayhubtech.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gGe2RtTlV9L0Xuwc8WMWirkD+ZHvu6gzw8QrMLDlfuMTlLRHk85e1sYXR3tr1nA8YaUFb7r1mti5xGqHI7MH+m5zbR8dmNjuK1RQQAkb9C5zu7a5AbEAvCMur6rxraLl9NluEfQvlADKvQW9PPD8RpJ2GhosXGN/Hv1BkvA3BpLjiylSMe8tCdowAKqvpM61Zh4sGWJjh2RBhknKBJTSnRfxi8eQcVx8yz6Ztph54PiXnPu7J64xzg6s1Nw/R7wq9cVGPipOzw9jKrj5i9IOJxnHv5650puHHzrAm3oNeLlrd+l7BXE22BqJJLojtYg1JrP3RxCRk/Gvj5wnrScnsw== 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=BCRCdHjXHJvamNB1bHOLqYgEAI7yLIQ9bGq9/PhC94w=; b=UEjcmvc7hrKxrrnsBIpbil7cZuZu3LltLJSEYi7VE0/BjsNe5TG3Po+UmcQVHWesrvDRqdjAD2RA9wTvE4zp8rL/NRDNdHT+ZX/bgrs2heC6Xn/x1N8ihuN03YN94QNMdN0GRg+7Jnq3Bc5B833ntA6VngJl49WBIEyLa040vtPxrP1kEJXHgtMLTrOiz8Mfff5TL3hvbq+lDOPsIF6C/s3aZJpVBcrgJOlI5H6W7i3UuR+HeHljcNtZdkxoemyumySODK3CSM2LjML/MTmkw9UYc2vYmT/np2Mo2uI2B2x6qOq8pY3gi0hLlvx8Wr4c6hZHEamG/OqV8H0VKWB0Tw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bayhubtech.com; dmarc=pass action=none header.from=bayhubtech.com; dkim=pass header.d=bayhubtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=towerbridgetechnology.onmicrosoft.com; s=selector2-towerbridgetechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BCRCdHjXHJvamNB1bHOLqYgEAI7yLIQ9bGq9/PhC94w=; b=Do9ExVPPblv7hVBogoQkhgj8qDodn3ZrROjkSqZkknBvb1417R725JyD4w4cperSJtkVQNv7juqM4MY/EJDXMaWCWAfq7v6yFi7ptcc4Z7s/gn25F6pO70hnTOZQ+ATYSOJv4WRa5zn3UQFn4wxaPP/nE239ez7e0l43zdyw//E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bayhubtech.com; Received: from DM4PR16MB5004.namprd16.prod.outlook.com (2603:10b6:8:43::15) by SJ0PR16MB4724.namprd16.prod.outlook.com (2603:10b6:a03:42c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.13; Tue, 6 Dec 2022 12:53:00 +0000 Received: from DM4PR16MB5004.namprd16.prod.outlook.com ([fe80::41d0:e051:35b0:8efe]) by DM4PR16MB5004.namprd16.prod.outlook.com ([fe80::41d0:e051:35b0:8efe%9]) with mapi id 15.20.5880.014; Tue, 6 Dec 2022 12:53:00 +0000 From: Chevron Li To: devel@edk2.groups.io Cc: hao.a.wu@intel.com, ray.ni@intel.com, jian.j.wang@intel.com, gaoliming@byosoft.com.cn, shirley.her@bayhubtech.com, shaper.liu@bayhubtech.com, xiaoguang.yu@bayhubtech.com, "Chevron Li (WH)" Subject: [edk2-platform][PATCH V2 1/1] MdeModulePkg: SdMmcPciHcDxe: Fix issue that SD1.0 cards can't be recognized Date: Tue, 6 Dec 2022 04:52:46 -0800 Message-Id: <20221206125246.1024-1-chevron.li@bayhubtech.com> X-Mailer: git-send-email 2.25.1 X-ClientProxiedBy: PS1PR01CA0021.apcprd01.prod.exchangelabs.com (2603:1096:300:75::33) To DM4PR16MB5004.namprd16.prod.outlook.com (2603:10b6:8:43::15) Return-Path: chevron.li@bayhubtech.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR16MB5004:EE_|SJ0PR16MB4724:EE_ X-MS-Office365-Filtering-Correlation-Id: 616d734d-4ba1-4da0-c801-08dad788ce67 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: k+B97Z08Q24jfWLZ4coQ35Aab37quCXENFT6yZbtATCDr/Rr4D6B9lIGpZBIYh2w+djRbYu819sDQa5HQFGYKhwKTWSwcadIaXUBDN8UiGBcgrKuh5sOb2e+YeMEfaWGVqpSEDfqik7kkP/2pjJADJrCtzhMlBla+Z3jjZp730mOI3wlIMTuiYQKitRt3+9vqyA7Lq7434yWo8uXMzLEJ6ccH1y7HkEsDInO2nIMkJ8JLqzeVK3tUXYtgpOhVC80e9aS8VHGkn12qBYN1oChbBYeYVyVUQwNPV1aoKkj4lNTFAuZ6QKAAadK6oX1USrrAqQ3okLXyydxHQpx9EY9sQ2/S/zwt4hhwQbSPeGeA5/Bh3q235DdK+IKMNJbJ1OQ6yOGEw3ZN0l/yAt+yj349/uFbiMkULBNRhCCtrcsOf556BQJqRHIELzhvGoN4Wkph5m4NVacP5VtOF3px+ecxhJSt5xwRJTbVFR5+ZWJalnCC7q120Ej5SkqTK1sxDsULkR3U9My2euXHiemfwPSF/kOp0jI2pIhgOGZPkoHkBS9XLBdj1Jco08ckoOu0RBINEnfg343KPafTMs8+FS//5d2AUlj4t7s4BP35N6mGdqXhOs/GNO/U1Ue4eES5xgMwdSR2kaFjVf8yP2LGMKT9w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR16MB5004.namprd16.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(6029001)(136003)(396003)(366004)(39830400003)(376002)(346002)(451199015)(1076003)(52116002)(2616005)(83380400001)(6486002)(6506007)(478600001)(6512007)(186003)(6666004)(36756003)(86362001)(38100700002)(8936002)(5660300002)(66946007)(44832011)(6916009)(41300700001)(316002)(107886003)(4326008)(2906002)(8676002)(66476007)(66556008);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fptN868ArBDy+eJy9LkNErq4/FGNC/QrtdE9Xmm/K8T4NvkUfMluxkrJdv5Y?= =?us-ascii?Q?MhlUOJFrfMEb4xDH+ffR7f2LWRylDvfabAqvDZOD5t4FhYTyl4HWKRVTdvBW?= =?us-ascii?Q?BbWzrJSrXLT2e5YWVlLWos5+tR4ZBX3w6Tn7TPlW72Z2hyH/0XxCEy19oslF?= =?us-ascii?Q?uO0Jbahut7Qrnvs5rixGJcCgBnm5NPwtiCVYFDUFN8hvhu7/YBcQ9An0exFx?= =?us-ascii?Q?WXkWzNMZiD2DBn4fHvAlv8JuEnGwwcfc+7msgQ9jQXtqessZWs0/f8vSuzy8?= =?us-ascii?Q?gSmFL2UBiDlIPmn2iE4qmTsomBh0BMBiFrpg0dZsWXcBeUamP7PkM8SpOwz2?= =?us-ascii?Q?E1zYHOMgERyrqM4LtMsYTHyfbA7sUUQUBtgtTixaz/Nv1MnCfaMr7G7XHCaq?= =?us-ascii?Q?PHvIx3P8C/By42obs3stKlcwNFI/MGa+ADtbK7d9BOOp3aHkss/8XURefZ+s?= =?us-ascii?Q?hsLCX851Qz1hKyYyCDICTXtyNeGfMgfwDqLA3KoMo9dgyRx9eQkCD82WujHa?= =?us-ascii?Q?gAiXDfscfQqAv3Day6ZM1hZdH4KrmcQSk7LyQyt1DM8N0ypYuF/Ruxf7r6et?= =?us-ascii?Q?Iyqrz4V033CYgx/O2sM3FWjIbHEdWlk77VTbNc4TrQ0RhqHaVImGRIkoWXdc?= =?us-ascii?Q?3Dj/u/sSH4dblXRS9LWT9FPtiu8lSt6UZFc+MAn+zoIiO9mDLBizCBiKfGOR?= =?us-ascii?Q?MslAQyke4wf1CKUfviMJg2f760UtoEs/6Pygfy+gFJexfrKbwBsqSJ9MzZ6X?= =?us-ascii?Q?//bySODZFlC967ib9Q3MezxrczMu/aGJPlrqoZIeWdjWimv9k5Wo4P4ggZml?= =?us-ascii?Q?BVS2meRlCzYmF3g/u+3dbOeJzXZ+gfh1K8e6QE6UGo0VGWcY4AR48Kee/xny?= =?us-ascii?Q?xL1/79f0yu50Mu+d72z1dBuOtYenIwXD6AMCq9E24f1izrnSKqkjg+3Hlg8h?= =?us-ascii?Q?0QlNjC+FHlV3luLcFaYrroWdaEAGtldGtARXXXfL0T8X3s4wJ8sZeqCrOMnX?= =?us-ascii?Q?mqagRan696Eao7QDNX/mZnGZAVOqOZ6xRjhhzYCrqlzqjOVrmCipi4pCm1yS?= =?us-ascii?Q?IzFmxRpczVuZYTeTwxrgHUrVPwGTrf6iPmGbA3dJWiDE6GMO/L0zJ1kOP7/9?= =?us-ascii?Q?8CnLf8s8p2DplwsRPcCRtxAyMwLNUT15IBEfWhJkOQI7BQ9qaiNeWI9BDfWn?= =?us-ascii?Q?7WunNDGRAQwjLF9s1z0Po6jxvmqcQgnasFPkaF3Mv2IIFrigoITjvCtkSPop?= =?us-ascii?Q?gYvtxEAjVrHdUbSGeqOcFtdL+QQjcKFGLZ0/I1Hn74LaORKwWEkCu42AwM0O?= =?us-ascii?Q?DJL0PXwNXkWk0Va+PHIW/h0DcBLKE/Ww+5MST2hO+dpTf3fy0h7FTNR6P6ak?= =?us-ascii?Q?8mhsnb8yxCsn/EveNO/r5DlSfp/8ENFNWYmWSdC0EiCvzoEJEiHQ5cgp9N52?= =?us-ascii?Q?CTZg/X689sGzqVC6mnFPhiLxJGE/633BVjxmP69mQL3S4xGrINEftzomiLni?= =?us-ascii?Q?H1+eQRtd4DxulrB/10sTnmed0ucidAkU+AZl0CcZeHypVRdSQAb+llcolkXx?= =?us-ascii?Q?9NmlbD0VW32ErFiWQizeX55WCxYgcD+dvATlXPPOIjdz9INEOFfvKErjoK2D?= =?us-ascii?Q?ibrEhcvBq1tyfFiqHU+1FvReLzdRx7Qghc6rn5YtKu7bkrR/utf092XSeXhH?= =?us-ascii?Q?eb9Lsg=3D=3D?= X-OriginatorOrg: bayhubtech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 616d734d-4ba1-4da0-c801-08dad788ce67 X-MS-Exchange-CrossTenant-AuthSource: DM4PR16MB5004.namprd16.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2022 12:53:00.7122 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0a7aae2b-8f2e-44df-ba2f-42de7f93c642 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +AF7OhbziBuqKAMgXbpPFfzNeldsYOBy4KcB9SUtU6ARdPsWn5gpTV6gwQWXlw1K/YvCmq6q40p3cTTHyrxDDC9zykRxZuBr0KJXLB+b3BA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR16MB4724 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain From: "Chevron Li (WH)" =0D SD1.0 cards don't support CMD8 and CMD6=0D CMD8 result can be used to distinguish the card is SD1.0 or not.=0D CMD8 result can be used to decide following CMD6 is sent or skip.=0D =0D Cc: Hao A Wu =0D Cc: Ray Ni =0D Cc: Jian J Wang =0D Cc: Liming Gao =0D Signed-off-by: Chevron Li =0D ---=0D Changes in V2:=0D 1.Update description comment for input parameter 'SdVersion1'.=0D 2.Add variables initialize operation to avoid unexpected value.=0D 3.Use TRUE replace with 1 to assign value for BOOLEAN variable.=0D ---=0D MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c | 34 +++++++++++++------=0D 1 file changed, 24 insertions(+), 10 deletions(-)=0D =0D diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c b/MdeModulePkg/B= us/Pci/SdMmcPciHcDxe/SdDevice.c=0D index f5a3607e47..262f675ea2 100644=0D --- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c=0D +++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c=0D @@ -1074,6 +1074,7 @@ SdGetTargetBusMode (=0D @param[in] Slot The slot number of the SD card to send the com= mand to.=0D @param[in] Rca The relative device address to be assigned.=0D @param[in] S18A The boolean to show if it's a UHS-I SD card.=0D + @param[in] SdVersion1 The boolean to show if it's a Version 1 SD car= d.=0D =0D @retval EFI_SUCCESS The operation is done correctly.=0D @retval Others The operation fails.=0D @@ -1085,7 +1086,8 @@ SdCardSetBusMode (=0D IN EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru,=0D IN UINT8 Slot,=0D IN UINT16 Rca,=0D - IN BOOLEAN S18A=0D + IN BOOLEAN S18A,=0D + IN BOOLEAN SdVersion1=0D )=0D {=0D EFI_STATUS Status;=0D @@ -1095,6 +1097,8 @@ SdCardSetBusMode (=0D SD_MMC_HC_PRIVATE_DATA *Private;=0D SD_MMC_BUS_SETTINGS BusMode;=0D =0D + ZeroMem (SwitchResp, 64 * sizeof (SwitchResp));=0D +=0D Private =3D SD_MMC_HC_PRIVATE_FROM_THIS (PassThru);=0D =0D Capability =3D &Private->Capability[Slot];=0D @@ -1117,10 +1121,13 @@ SdCardSetBusMode (=0D =0D //=0D // Get the supported bus speed from SWITCH cmd return data group #1.=0D + // SdVersion1 don't support the SWITCH cmd=0D //=0D - Status =3D SdCardSwitch (PassThru, Slot, 0xFF, 0xF, SdDriverStrengthIgno= re, 0xF, FALSE, SwitchResp);=0D - if (EFI_ERROR (Status)) {=0D - return Status;=0D + if(SdVersion1 =3D=3D FALSE) {=0D + Status =3D SdCardSwitch (PassThru, Slot, 0xFF, 0xF, SdDriverStrengthIg= nore, 0xF, FALSE, SwitchResp);=0D + if (EFI_ERROR (Status)) {=0D + return Status;=0D + }=0D }=0D =0D SdGetTargetBusMode (Private, Slot, SwitchResp, S18A, &BusMode);=0D @@ -1141,9 +1148,14 @@ SdCardSetBusMode (=0D }=0D }=0D =0D - Status =3D SdCardSwitch (PassThru, Slot, BusMode.BusTiming, 0xF, BusMode= .DriverStrength.Sd, 0xF, TRUE, SwitchResp);=0D - if (EFI_ERROR (Status)) {=0D - return Status;=0D + //=0D + // SdVersion1 don't support the SWITCH cmd=0D + //=0D + if(SdVersion1 =3D=3D FALSE){=0D + Status =3D SdCardSwitch (PassThru, Slot, BusMode.BusTiming, 0xF, BusMo= de.DriverStrength.Sd, 0xF, TRUE, SwitchResp);=0D + if (EFI_ERROR (Status)) {=0D + return Status;=0D + }=0D }=0D =0D Status =3D SdMmcSetDriverStrength (Private->PciIo, Slot, BusMode.DriverS= trength.Sd);=0D @@ -1214,8 +1226,10 @@ SdCardIdentification (=0D UINT8 HostCtrl2;=0D UINTN Retry;=0D BOOLEAN ForceVoltage33;=0D + BOOLEAN SdVersion1;=0D =0D ForceVoltage33 =3D FALSE;=0D + SdVersion1 =3D FALSE;=0D =0D PciIo =3D Private->PciIo;=0D PassThru =3D &Private->PassThru;=0D @@ -1231,12 +1245,12 @@ Voltage33Retry:=0D }=0D =0D //=0D - // 2. Send Cmd8 to the device=0D + // 2. Send Cmd8 to the device, the command will fail for SdVersion1;=0D //=0D Status =3D SdCardVoltageCheck (PassThru, Slot, 0x1, 0xFF);=0D if (EFI_ERROR (Status)) {=0D + SdVersion1 =3D TRUE;=0D DEBUG ((DEBUG_INFO, "SdCardIdentification: Executing Cmd8 fails with %= r\n", Status));=0D - return Status;=0D }=0D =0D //=0D @@ -1426,7 +1440,7 @@ Voltage33Retry:=0D DEBUG ((DEBUG_INFO, "SdCardIdentification: Found a SD device at slot [%d= ]\n", Slot));=0D Private->Slot[Slot].CardType =3D SdCardType;=0D =0D - Status =3D SdCardSetBusMode (PciIo, PassThru, Slot, Rca, ((Ocr & BIT24) = !=3D 0));=0D + Status =3D SdCardSetBusMode (PciIo, PassThru, Slot, Rca, ((Ocr & BIT24) = !=3D 0), SdVersion1);=0D =0D return Status;=0D =0D =0D base-commit: 7bee2498910a9034faaf90802c49188afb7582dc=0D -- =0D 2.18.0.windows.1=0D =0D