From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: wei6.xu@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Wed, 05 Jun 2019 08:42:19 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jun 2019 08:42:18 -0700 X-ExtLoop1: 1 Received: from shwdeopenpsi174.ccr.corp.intel.com ([10.239.157.33]) by orsmga005.jf.intel.com with ESMTP; 05 Jun 2019 08:42:17 -0700 From: "Xu, Wei6" To: devel@edk2.groups.io Cc: Jian J Wang , Hao A Wu , Michael D Kinney , Liming Gao , Chao B Zhang Subject: [edk2-devel][Patch v2 0/7] Implement Capsule On Disk. Date: Wed, 5 Jun 2019 23:41:56 +0800 Message-Id: <20190605154203.11012-1-wei6.xu@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 V2: Fix Ecc check failure. V1: BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1852 This patch set implements Capsule On Disk. Depends on whether platform supports Capsule-In-Ram, Capsule On Disk feature is composed of 2 solutions: Solution A): Load capsules out of TCB, rely on UpdateCapsule() runtime service to deliver Capsule-On-Disk. Solution B): Relocate capsules into a temp file which will be stored in root directory on a platform specific storage device. Leverage existing storage stack in PEI to load all capsule on disk images and create capsule hobs for the capsules. This solution has bigger TCB, but can work without Capsule-In-RAM support. Cc: Jian J Wang Cc: Hao A Wu Cc: Michael D Kinney Cc: Liming Gao Cc: Chao B Zhang xuwei6 (7): MdePkg: Add Pei Boot In CapsuleOnDisk Mode Ppi definition. MdeModulePkg: Add Capsule On Disk related definition. MdeModulePkg: Add CapsuleOnDiskLoadPei PEIM. MdeModulePkg/BdsDxe: Support Capsule On Disk. MdeModulePkg/CapsuleRuntimeDxe: Introduce PCD to control this feature. MdeModulePkg/DxeIpl: Support Capsule On Disk. MdeModulePkg: Add Capsule On Disk APIs into CapsuleLib. MdeModulePkg/Core/DxeIplPeim/DxeIpl.h | 3 +- MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf | 20 +- MdeModulePkg/Core/DxeIplPeim/DxeLoad.c | 37 +- MdeModulePkg/Include/Library/CapsuleLib.h | 94 +- MdeModulePkg/Include/Ppi/CapsuleOnDisk.h | 48 + .../Library/DxeCapsuleLibFmp/CapsuleOnDisk.c | 1983 ++++++++++++++++++++ .../Library/DxeCapsuleLibFmp/CapsuleOnDisk.h | 63 + .../Library/DxeCapsuleLibFmp/DxeCapsuleLib.c | 56 +- .../Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf | 21 +- .../DxeCapsuleLibFmp/DxeCapsuleProcessLib.c | 121 +- .../Library/DxeCapsuleLibFmp/DxeCapsuleReportLib.c | 67 +- .../DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf | 3 +- .../Library/DxeCapsuleLibNull/DxeCapsuleLibNull.c | 85 +- MdeModulePkg/MdeModulePkg.dec | 43 + MdeModulePkg/MdeModulePkg.dsc | 4 + MdeModulePkg/MdeModulePkg.uni | 32 + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf | 3 +- MdeModulePkg/Universal/BdsDxe/BdsEntry.c | 6 +- .../CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.c | 442 +++++ .../CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.inf | 64 + .../CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.uni | 15 + .../CapsuleOnDiskLoadPeiExtra.uni | 14 + .../CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf | 1 + .../Universal/CapsuleRuntimeDxe/CapsuleService.c | 10 +- MdePkg/Include/Ppi/BootInRecoveryMode.h | 9 +- MdePkg/MdePkg.dec | 3 + 26 files changed, 3205 insertions(+), 42 deletions(-) create mode 100644 MdeModulePkg/Include/Ppi/CapsuleOnDisk.h create mode 100644 MdeModulePkg/Library/DxeCapsuleLibFmp/CapsuleOnDisk.c create mode 100644 MdeModulePkg/Library/DxeCapsuleLibFmp/CapsuleOnDisk.h create mode 100644 MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.c create mode 100644 MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.inf create mode 100644 MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.uni create mode 100644 MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPeiExtra.uni -- 2.16.2.windows.1