From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.6744.1642467909443334660 for ; Mon, 17 Jan 2022 17:05:09 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=NYpypdj+; spf=pass (domain: intel.com, ip: 192.55.52.136, 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=1642467909; x=1674003909; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=LJ7hEV7G1aY6UaZXyPrt7zNqaivuSZs9xz7ogsGVLpE=; b=NYpypdj+NEF1zUbMoCerNO74RBhBFAge6tKgVtJ+NP7zsTmoAIIomJx6 9ja6zdHYKmYd61DdA7TZDA2U+asav9FxfergZ7EBm00rHRgz8ag84bGtF 6uiFeygAehbQHZ9/U/slzOdgEbXaOLWFPe5qMJI2HHioCrUpt//jSTrBX oJYnU6zxllXtrD6n7jDQpwb/jwHDJ2nN49tyhMSq/Qqh76pNMvPmpzB9P x3AdoF8LcoNVph1AQ5FT+ju+nubbgOfr1i6aB1LhIHwWaVneTPlDR4fyq 4Good37/CtSG5Aj5ZEnSa35RXzH6Czr8JjL95xLHYkzq9uGgai1K7rI4q Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10230"; a="224692075" X-IronPort-AV: E=Sophos;i="5.88,296,1635231600"; d="scan'208";a="224692075" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2022 17:05:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,296,1635231600"; d="scan'208";a="530156232" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga007.fm.intel.com with ESMTP; 17 Jan 2022 17:05:05 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Mon, 17 Jan 2022 17:05:04 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Mon, 17 Jan 2022 17:05:04 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Mon, 17 Jan 2022 17:05:04 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TH5h3ttzVbei582wAlMiybvoEbnZnrOcSoBoCSfIvR/95xRejDvb2rK47D2k4a/AsgF5GcNP3DZ0drjTjuIxhG6GGOnGzYKb6uIimuq6PufyiVY/ZcHH5uwvPb2OkgN00p9She0DqGaURLjrLLstUsp+WZ15qJRJ4G2ibF0PQzi5PxjaVgoBtIWFeMA8Wo/3zQlGSoy5m16RjirTvf4w1aFrJ/HDzNjTxenjlLCclsgimxuHxU1+zrFFV+uATBPZY4Gk/xsMllwnKMk2to8EXcEzwryLQXGMMvpV2KGM4kF/4yZ73dK7lngtNReQjDPpNByUfVq4rs+vJtjRY2rmBg== 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=Z7jYhhYAckFqh1js42ViKXPMrK/XvwE0FWN2piPyiWw=; b=JbVLA2mBO2TQM794qeEoMP38aWpDooUB5+TR2WMOWrJXpkmnx0E9dAIDNhzlUp0MwLc7s8NcL/7y07oIgXiQ/lzJMNarPzxVQqgGyOjH35NHPqksbJVI8mPMTkcE7idkpE3cl/tKw8Ic5lfRpdbM0yQ4/lvLV2588gH+KD/SDykQIhfAcZM58Cz1Ue6T+mE9ydd+CFm6h2GxGYdS2L4LMO6fVRgwttzBGyq1nJ8kaIsCFej0bqGY8r+PTBNpexvpwyak8VN4ErZY69hyEttnhLlWpZ1ub2iJ9ePZRqvc9fUGXcvNpgww9xcJZJD1rViNh4NEZOCusiA+Uxp5AkULAw== 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 DM4PR11MB5278.namprd11.prod.outlook.com (2603:10b6:5:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.10; Tue, 18 Jan 2022 01:05:03 +0000 Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::b8f1:aa83:cbbf:6964]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::b8f1:aa83:cbbf:6964%6]) with mapi id 15.20.4888.014; Tue, 18 Jan 2022 01:05:02 +0000 From: "Wu, Hao A" To: "devel@edk2.groups.io" , "Rosli, Muhammad Aiman" Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg: Enabling OS boot from SD card through UEFI payload Thread-Topic: [edk2-devel] [PATCH v2] MdeModulePkg: Enabling OS boot from SD card through UEFI payload Thread-Index: AQHYC6Gjtrh5AlA/i0K7Ikl6hYzK7Kxn9TOA Date: Tue, 18 Jan 2022 01:05:02 +0000 Message-ID: References: <7fbe9337faa69eaacc20f225a5e97d163d97a4c9.1642423955.git.muhammad.aiman.rosli@intel.com> In-Reply-To: <7fbe9337faa69eaacc20f225a5e97d163d97a4c9.1642423955.git.muhammad.aiman.rosli@intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3b6657ad-f314-4f34-e31d-08d9da1e8ebd x-ms-traffictypediagnostic: DM4PR11MB5278:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CPmAzd2aea6LTTK+k6FgFQchRwefZPX8NZCtD7y0XF0E4lXNxGFUmmwpoC7RrlM0Y2l+HQSZY5EmAnWThstdP5fsmI6l6wNfsJI2vQawsN3BW5e+Rid7MwaJWKOAbmuHVdBgUNc8WC63440ZhQXZX4rHF3/weKgHovaQ9/bLMoiI8M6SBTP6Gp1wcnLqXBn1RC8GQpiuaQATvTrshV+MQGJVe+yrXTB95asrkVjCECWKtv0wUQLsrGrPPszOBBglmpWPrC1n9jb5KUx5havdqSSDlJXjZLxqpmJ6nSmxrMhdI9822wZvqX3dGbB1BmmiWAzb8P/zcVvKaNCDzPcaHlGziEFit6WUN0g46NsUuauSGlvV5MiVvGP49mQm7W1fp6W2x8nN/MpDY71qfFwSkTFzFc4hpAXGUVxCs4Y1x9lgZE6cEc2iRb1xfhAZwO9s0gdLDCUuj4ORUpDGcmOmKE0ZwWEy/jXS+McpP9MzYziaRPYbzYaeEEP0LN/xnH8xUOb1a1l/J9J/umiseu1/0uaMLd0kRcaabxKe3sTH/roJSCu+TR+kUy3ZdNriXFXnX7Af5q0BuByflF5c/3hHiaAL5wH8IPatBLwhb/epMVea45AWNZDcZiVubT7tDXVtZ1wDDne3f7zNzyj6gcPh6/zmFsTRAmB0VHgv97uYKBYTki6fyI/BwmTbB7vcLvCOvjcOgdEyVr0bnwAVW0dnhB+mnyLdlUHezSV/NKW9VeUx7ozvddctJo7i40vVXYMzM2i06RxPxnlIgFtTD3kv+aVFpHLKhEGgNFOZAVg4hodzBVn6P7vzVLUrZvb6O368U9PTauejpA2oFk5JaHhmFw== 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:(366004)(110136005)(8936002)(9686003)(71200400001)(508600001)(316002)(66946007)(66476007)(66556008)(76116006)(64756008)(8676002)(26005)(83380400001)(53546011)(966005)(6506007)(66446008)(7696005)(38100700002)(6636002)(33656002)(52536014)(86362001)(122000001)(38070700005)(55016003)(2906002)(82960400001)(5660300002)(186003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?cYdO6f/YYcBYeX7lzkCyYQf/XUZuUn0iR9ZJE1pLZppOSJelwQ2FNtdSzIjS?= =?us-ascii?Q?kxsOF8yuXpqGhsXlosPkDoMJmI3Hawhvv3Mw+sYWST1IFSxqstPPsHIUsj7s?= =?us-ascii?Q?hDSrF86aCQEM39UznRRVq81dAYv4bpxwN9dhI1qOxKBqnw6+X5+a81U8+LH7?= =?us-ascii?Q?O6wKRNucwXawCndjJfQW3Ld7wbdfx2eQm/+cdI1NT5pKpF6uFNaphWH6XKss?= =?us-ascii?Q?W0+hLGxTJKQ6kqNvTD6n3hBpQBy9Ot237eUKFiT9dax4HHLVZvJ3cIUBPQaB?= =?us-ascii?Q?W1/S1onCTcJX3LWQEfZdaxF5W1sPNnFxbsv+Y1YJ4mWGNK0IeRTpVAtYa2c/?= =?us-ascii?Q?VBhC3jJJPE560My/c/kKUzP8MmBidq4hIzbaLI5WrbOMLI24JHjnlEisIABc?= =?us-ascii?Q?aDbDGtT0mcjBOC40m5S04+8EwNybrhh8RNBZnkFJE5YmOSMuNhy4IsBIItmA?= =?us-ascii?Q?AEjIOXqlXGKEBsnbOK9tBiX1B1ErltYaiZejjrCAFz3QPog0S2535eSebIIr?= =?us-ascii?Q?IF3VtvsigPmY0jIwxu5MCt0tOxUVz0TMZRQKxiPD41VIg9b3zb9z7W5ykAom?= =?us-ascii?Q?8iPfpGxYrApInlPf2plkek0yTXWz5SpHfaF1kGGGEYWm0NGnWozsxKUUF6IV?= =?us-ascii?Q?ULgMgwvAnuOJTHE2sDiAqfvfBsG8cnEBonNkUz0gu+m8v/c9WeUJ2FRz+S3R?= =?us-ascii?Q?AdOjuCTgoTkoY+41LKfPhZtbAkS8hNv/zKP3sHcYraCW75iK2Bj2kh5B3gmc?= =?us-ascii?Q?7Y7vZ8rwrMCx/8TDHJIkVHwyrLSzXtWZSmGVOLd+a6vG1pWD3b2OkmXYaI8R?= =?us-ascii?Q?rsTg7Yt3stReHub8AdMfL1boT9t07ShNJCmWjKqO8wV9iTLhWW/afB7TrBjk?= =?us-ascii?Q?AgwBzmdX84T1kV8+TW1juWCT6sIzGItCeUiYHiJMIK1TrNOnaTkTK1R93rqF?= =?us-ascii?Q?Yf+siCYA4IYrFThPpuf/6l4I6GhyEouADp66Fly8S+f3nHgMoioA9hXv1IXo?= =?us-ascii?Q?xr5tNRTiAhTu66j8qlvXqZXm1JcsuRjik8/gXWBDrlYYxldM9DzlrW1mCP3i?= =?us-ascii?Q?MYRlA4NxVh3PCft3ia8tTtz3GKPttC6dIJHqK7uaoyWBaIFvKmA08JuVlPcO?= =?us-ascii?Q?wnNVJ/QjqA2bKmpNSzMnFM288RACW4oiqeFLu8OkfYd09kSaBEYUzqzUUmoZ?= =?us-ascii?Q?M4P2IOrPNNSrjoC8FyqiH75xQrjGmeu5xDk3kYsCDrYOCMMbvRO4LiHYaib1?= =?us-ascii?Q?CRwNDczIqAmxwKOkGx7BA9XuvI8sWBkLvIFrTZ6GkZ3CAaTQvewgVO0gNqc1?= =?us-ascii?Q?DTwF9/6gZZ9FfI0az5vp88PPnrup8jHWtBCCkPGXrjoKl8RFVOZgfW9FK7jv?= =?us-ascii?Q?KIoZInZH6ZRowMR5S2MV97qiaqXFnUw4dExglfNaq4Y3gC48a0vq1NOX0mvC?= =?us-ascii?Q?q4qAibdHFZsinZQr2+Ep+K5bCdMCdaC2lvKPl5wH+LS0uhwpVtFxNoTht84V?= =?us-ascii?Q?gSpjtvmQh8C//YNiIi8xQ63im/6AFnFaG+hTkpblKLoTNtVmLSj8oUDc1GbQ?= =?us-ascii?Q?mcyplm1c5HXEDERyzcCV4e2lekMLkZqMY056bVlcOZJExAOpAdg/xqciiCMk?= =?us-ascii?Q?c+wyX4JusKUKG7D3v+NcXS4=3D?= 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: 3b6657ad-f314-4f34-e31d-08d9da1e8ebd X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2022 01:05:02.7694 (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: NRMfle/WaaKejrwTu+Yi8sTgb+JvO21DkAiKPl532yZ+I3t9wy4lAFut52TDuGOSusJ/+eH70KAhkMppu5mY0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5278 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 Please refer to the inline comments below: > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Aiman > Rosli > Sent: Monday, January 17, 2022 8:56 PM > To: devel@edk2.groups.io > Cc: Rosli, Muhammad Aiman > Subject: [edk2-devel] [PATCH v2] MdeModulePkg: Enabling OS boot from SD > card through UEFI payload >=20 > This changes is by adding 50ms delay during voltage switching from 3.3V t= o > 1.8V, plus adding a goto Voltage33Retry for 3.3V checking and retrying. >=20 > Signed-off-by: Aiman Rosli > --- > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c | 23 > ++++++++++++++++--- > 1 file changed, 20 insertions(+), 3 deletions(-) >=20 > diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c > b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c > index 662f9f483c..527fe7dc20 100644 > --- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c > +++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c > @@ -1213,9 +1213,14 @@ SdCardIdentification ( > UINT32 PresentState; > UINT8 HostCtrl2; > UINTN Retry; > + BOOLEAN ForceVoltage33; > + > + ForceVoltage33 =3D FALSE; >=20 > PciIo =3D Private->PciIo; > PassThru =3D &Private->PassThru; > + > +Voltage33Retry: > // > // 1. Send Cmd0 to the device > // > @@ -1294,6 +1299,14 @@ SdCardIdentification ( > return EFI_UNSUPPORTED; > } >=20 > + // > + // 1.8V had failed in the previous run, forcing a retry with 3.3V > + instead // if (ForceVoltage33 =3D=3D TRUE) { > + S18r =3D FALSE; > + ForceVoltage33 =3D FALSE; Like I mentioned in https://github.com/tianocore/edk2/pull/2413#discussion_= r785611042 I do not think "ForceVoltage33 =3D FALSE" is necessary, could you help to d= ouble check? > + } > + > // > // 5. Repeatly send Acmd41 with supply voltage window to the device. > // Note here we only support the cards complied with SD physical > @@ -1362,13 +1375,17 @@ SdCardIdentification ( > goto Error; > } >=20 > - gBS->Stall (1000); > + // Workaround to add a delay of 50 ms in order for clock to stabil= ize > before turning on the SD card again. > + gBS->Stall (50000); Sorry for a question. As I mentioned in: https://github.com/tianocore/edk2/pull/2413#discussion_r785610179 https://github.com/tianocore/edk2/pull/2413#discussion_r785610742 Can this 50 milliseconds delay be put in the below 1.8V switch failure hand= ling logic? Enlarging the delay (from 1ms to 50ms) in the normal initialization flow wi= ll bring performance impact. >=20 > SdMmcHcRwMmio (PciIo, Slot, SD_MMC_HC_PRESENT_STATE, TRUE, > sizeof (PresentState), &PresentState); > if (((PresentState >> 20) & 0xF) !=3D 0xF) { > DEBUG ((DEBUG_ERROR, "SdCardIdentification: SwitchVoltage fails = with > PresentState =3D 0x%x, It should be 0xF\n", PresentState)); > - Status =3D EFI_DEVICE_ERROR; > - goto Error; > + Status =3D SdMmcHcReset (Private, Slot); > + Status =3D SdMmcHcInitHost (Private, Slot); Could you help to check my comment in: https://github.com/tianocore/edk2/pull/2413#discussion_r785610742 to 1) add comments and 2) refine the error handling for the "reset and rein= itialize the slot before the 3.3V retry" Best Regards, Hao Wu > + ForceVoltage33 =3D TRUE; > + DEBUG ((DEBUG_ERROR, "SdCardIdentification: Switching to 1.8V ha= d > failed in the previous run, forcing a retry with 3.3V instead\n")); > + goto Voltage33Retry; > } > } >=20 > -- > 2.34.1.windows.1 >=20 >=20 >=20 >=20 >=20