From nobody Wed May 15 17:57:28 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+49535+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+49535+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1572239289; cv=none; d=zoho.com; s=zohoarc; b=KiSKMiTeFxzKoo24NiTiKzHL0cfBE1e6hA8uxaORK/IpLJJ6YKl7yCDXmpSrwfc31t9024J76t31OylqZav+EGuqdStBzC7TRZSWPPaPXsmf7st6R1ghIiikhwRg3VqwgBqDAwzOP9J1rHIkb7z3d1AqhtshozPgvBkAJ3fUI9M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1572239289; h=Content-Transfer-Encoding:Cc:Date:From:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=FTAxW2Daryhj0FB4cK37xDEw9GrXtG7qGvZapYwSW7E=; b=gp+TDzhV1Ynh3VQb43LpsclmFxQU6xdKpFFjtX0tmwvBq3RyC02GC8BFiuEVqpk5RjKvaeawIlLanKnhvebEsKuwmJq1/8dK1S9pGjJYZMCdQkHm1n7wZWy7+wNTeTa2XTQAD/u4e0PHwTUh8ZobFoSjZ+9ZymrNEhTVYksleG0= 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+49535+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 1572239289486492.141066811218; Sun, 27 Oct 2019 22:08:09 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id XibcYY1788612xWYkLoNuvOD; Sun, 27 Oct 2019 22:08:08 -0700 X-Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.2502.1572239287973950744 for ; Sun, 27 Oct 2019 22:08:08 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Oct 2019 22:08:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,238,1569308400"; d="scan'208";a="193150928" X-Received: from chumaggi-mobl1.gar.corp.intel.com ([10.5.246.26]) by orsmga008.jf.intel.com with ESMTP; 27 Oct 2019 22:08:05 -0700 From: "Maggie Chu" To: devel@edk2.groups.io Cc: Hao A Wu , Jian J Wang , Ray Ni , Star Zeng , Eric Dong Subject: [edk2-devel] [PATCH] MdeModulePkg/NvmExpressPei: Fix Opal S3 unlock issue Date: Mon, 28 Oct 2019 13:08:02 +0800 Message-Id: <20191028050802.856-1-maggie.chu@intel.com> MIME-Version: 1.0 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,maggie.chu@intel.com X-Gm-Message-State: GhTWX2gRXP0BOEg4oE8ooZkEx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1572239288; bh=VG9Qffj5litBNdRIAFPOyH3jTPahN7V92gnv0XHrDgI=; h=Cc:Date:From:Reply-To:Subject:To; b=iZG2iZVYFmwQRm9rFeS0G55S2VXlhsVWzAScuhP0yzkQL50seBtlbGYIdW3WmOBZkEy 66O2n2YklX/q9GZo+hugaGMFKF+JA7PX2f4elXBE1ZEYdasatNG9xDFmXINdTuI+SgXX5 0AWYnDN8bQ6ouShffUT2YdQCvjOq/bvV8K8= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" https://bugzilla.tianocore.org/show_bug.cgi?id=3D2312 This patch is for fixing unexpected system hang during S3 unlock process. FatPei driver maintained and updated internal BlockIo devices list when there is new BlockIo PPI has installed, and it relied on BlockIo PPI s= ervice to get data from devices. Because BlockIo Ppi leverage NvmExpressPei Ppi to= transit Nvm command to device, we should make sure NvmePassThruPpi installed before= BlockIo PPI. Signed-off-by: Maggie Chu Cc: Hao A Wu Cc: Jian J Wang Cc: Ray Ni Cc: Star Zeng Cc: Eric Dong Reviewed-by: Hao A Wu --- MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.c | 43 ++++++++++++------= ---- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.c b/MdeModule= Pkg/Bus/Pci/NvmExpressPei/NvmExpressPei.c index 987eed420e..a8cb7f3a67 100644 --- a/MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.c +++ b/MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.c @@ -376,6 +376,29 @@ NvmExpressPeimEntry ( continue; } =20 + // + // Nvm Express Pass Thru PPI + // + Private->PassThruMode.Attributes =3D EFI_NVM_EXPRESS_PASS_T= HRU_ATTRIBUTES_PHYSICAL | + EFI_NVM_EXPRESS_PASS_THR= U_ATTRIBUTES_LOGICAL | + EFI_NVM_EXPRESS_PASS_THR= U_ATTRIBUTES_CMD_SET_NVM; + Private->PassThruMode.IoAlign =3D sizeof (UINTN); + Private->PassThruMode.NvmeVersion =3D EDKII_PEI_NVM_EXPRESS_= PASS_THRU_PPI_REVISION; + Private->NvmePassThruPpi.Mode =3D &Private->PassThruMode; + Private->NvmePassThruPpi.GetDevicePath =3D NvmePassThruGetDeviceP= ath; + Private->NvmePassThruPpi.GetNextNameSpace =3D NvmePassThruGetNextNam= eSpace; + Private->NvmePassThruPpi.PassThru =3D NvmePassThru; + CopyMem ( + &Private->NvmePassThruPpiList, + &mNvmePassThruPpiListTemplate, + sizeof (EFI_PEI_PPI_DESCRIPTOR) + ); + Private->NvmePassThruPpiList.Ppi =3D &Private->NvmePassThru= Ppi; + PeiServicesInstallPpi (&Private->NvmePassThruPpiList); + + // + // Block Io PPI + // Private->BlkIoPpi.GetNumberOfBlockDevices =3D NvmeBlockIoPeimGetDevic= eNo; Private->BlkIoPpi.GetBlockDeviceMediaInfo =3D NvmeBlockIoPeimGetMedia= Info; Private->BlkIoPpi.ReadBlocks =3D NvmeBlockIoPeimReadBloc= ks; @@ -398,26 +421,6 @@ NvmExpressPeimEntry ( Private->BlkIo2PpiList.Ppi =3D &Private->BlkIo2Ppi; PeiServicesInstallPpi (&Private->BlkIoPpiList); =20 - // - // Nvm Express Pass Thru PPI - // - Private->PassThruMode.Attributes =3D EFI_NVM_EXPRESS_PASS_T= HRU_ATTRIBUTES_PHYSICAL | - EFI_NVM_EXPRESS_PASS_THR= U_ATTRIBUTES_LOGICAL | - EFI_NVM_EXPRESS_PASS_THR= U_ATTRIBUTES_CMD_SET_NVM; - Private->PassThruMode.IoAlign =3D sizeof (UINTN); - Private->PassThruMode.NvmeVersion =3D EDKII_PEI_NVM_EXPRESS_= PASS_THRU_PPI_REVISION; - Private->NvmePassThruPpi.Mode =3D &Private->PassThruMode; - Private->NvmePassThruPpi.GetDevicePath =3D NvmePassThruGetDeviceP= ath; - Private->NvmePassThruPpi.GetNextNameSpace =3D NvmePassThruGetNextNam= eSpace; - Private->NvmePassThruPpi.PassThru =3D NvmePassThru; - CopyMem ( - &Private->NvmePassThruPpiList, - &mNvmePassThruPpiListTemplate, - sizeof (EFI_PEI_PPI_DESCRIPTOR) - ); - Private->NvmePassThruPpiList.Ppi =3D &Private->NvmePassThru= Ppi; - PeiServicesInstallPpi (&Private->NvmePassThruPpiList); - // // Check if the NVME controller supports the Security Receive/Send com= mands // --=20 2.16.2.windows.1 -=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 (#49535): https://edk2.groups.io/g/devel/message/49535 Mute This Topic: https://groups.io/mt/38841396/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-