From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.120; helo=mga04.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6C3C32238B5BF for ; Thu, 1 Feb 2018 22:39:55 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Feb 2018 22:45:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,447,1511856000"; d="scan'208";a="14900475" Received: from ray-dev.ccr.corp.intel.com ([10.239.9.19]) by fmsmga008.fm.intel.com with ESMTP; 01 Feb 2018 22:45:32 -0800 From: Ruiyu Ni To: edk2-devel@lists.01.org Date: Fri, 2 Feb 2018 14:45:20 +0800 Message-Id: <20180202064530.407028-1-ruiyu.ni@intel.com> X-Mailer: git-send-email 2.15.1.windows.2 Subject: [PATCH 00/10] Formalize the reset system core design X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2018 06:39:55 -0000 The patches add/update two core modules that perform the reset action ResetSystemPei and ResetSystemRuntimeDxe With the two core modules, every time a reset action is performed in either PEI phase or DXE phase, the accordingly registerred reset filter/notification/handler will be triggered. Reset filters are processed first so the final reset type and reset data can be determined. Reset Notifications are processed second so all components that have registered for a Reset Notification can perform any required clean up actions. Reset handlers are processed third. If there are no registered reset handlers or none of them resets the platform, then the default reset action based on the ResetSystemLib is performed. https://github.com/tianocore/edk2-staging/commits/ResetSystemFinal Bret Barkelew (1): MdeModulePkg/ResetSystemPei: Add reset notifications in PEI Michael D Kinney (6): MdePkg/PeiServicesLib: Add PeiServicesResetSystem2() MdeModulePkg/PeiMain: Always attempt to use Reset2 PPI first MdeModulePkg/PeiMain: Cleanup whitespace in Reset.c MdeModulePkg/ResetSystemRuntimeDxe: Add platform filter and handler MdeModulePkg: Add ResetSystemLib instances that call core services MdeModulePkg: Add ResetUtility librray class and BASE instance Ruiyu Ni (3): MdeModulePkg/ResetSystemRuntimeDxe: Add more debug message MdePkg/UefiRuntimeLib: Support more module types. MdeModulePkg: Add ResetSystemPei PEIM MdeModulePkg/Core/Pei/Reset/Reset.c | 67 ++-- MdeModulePkg/Include/Library/ResetUtilityLib.h | 111 ++++++ .../Include/Ppi/PlatformSpecificResetFilter.h | 31 ++ .../Include/Ppi/PlatformSpecificResetHandler.h | 29 ++ .../Ppi/PlatformSpecificResetNotification.h | 31 ++ .../Include/Protocol/PlatformSpecificResetFilter.h | 31 ++ .../Protocol/PlatformSpecificResetHandler.h | 29 ++ .../Library/DxeResetSystemLib/DxeResetSystemLib.c | 100 ++++++ .../DxeResetSystemLib/DxeResetSystemLib.inf | 40 +++ .../DxeResetSystemLib/DxeResetSystemLib.uni | 21 ++ .../Library/PeiResetSystemLib/PeiResetSystemLib.c | 100 ++++++ .../PeiResetSystemLib/PeiResetSystemLib.inf | 40 +++ .../PeiResetSystemLib/PeiResetSystemLib.uni | 21 ++ .../Library/ResetUtilityLib/ResetUtility.c | 221 ++++++++++++ .../Library/ResetUtilityLib/ResetUtilityLib.inf | 43 +++ MdeModulePkg/MdeModulePkg.dec | 17 + MdeModulePkg/MdeModulePkg.dsc | 7 + .../Universal/ResetSystemPei/ResetSystem.c | 371 +++++++++++++++++++++ .../Universal/ResetSystemPei/ResetSystem.h | 130 ++++++++ .../ResetSystemPei.inf} | 45 ++- .../Universal/ResetSystemPei/ResetSystemPei.uni | 20 ++ .../ResetSystemPei/ResetSystemPeiExtra.uni | 20 ++ .../Universal/ResetSystemRuntimeDxe/ResetSystem.c | 91 ++++- .../Universal/ResetSystemRuntimeDxe/ResetSystem.h | 7 + .../ResetSystemRuntimeDxe.inf | 7 +- MdePkg/Include/Library/PeiServicesLib.h | 24 ++ MdePkg/Library/PeiServicesLib/PeiServicesLib.c | 26 ++ MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf | 4 +- 28 files changed, 1615 insertions(+), 69 deletions(-) create mode 100644 MdeModulePkg/Include/Library/ResetUtilityLib.h create mode 100644 MdeModulePkg/Include/Ppi/PlatformSpecificResetFilter.h create mode 100644 MdeModulePkg/Include/Ppi/PlatformSpecificResetHandler.h create mode 100644 MdeModulePkg/Include/Ppi/PlatformSpecificResetNotification.h create mode 100644 MdeModulePkg/Include/Protocol/PlatformSpecificResetFilter.h create mode 100644 MdeModulePkg/Include/Protocol/PlatformSpecificResetHandler.h create mode 100644 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c create mode 100644 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf create mode 100644 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.uni create mode 100644 MdeModulePkg/Library/PeiResetSystemLib/PeiResetSystemLib.c create mode 100644 MdeModulePkg/Library/PeiResetSystemLib/PeiResetSystemLib.inf create mode 100644 MdeModulePkg/Library/PeiResetSystemLib/PeiResetSystemLib.uni create mode 100644 MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c create mode 100644 MdeModulePkg/Library/ResetUtilityLib/ResetUtilityLib.inf create mode 100644 MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c create mode 100644 MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h copy MdeModulePkg/Universal/{ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf => ResetSystemPei/ResetSystemPei.inf} (50%) create mode 100644 MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.uni create mode 100644 MdeModulePkg/Universal/ResetSystemPei/ResetSystemPeiExtra.uni -- 2.15.1.windows.2