From: Jiewen Yao <jiewen.yao@intel.com>
To: edk2-devel@lists.01.org
Cc: Feng Tian <feng.tian@intel.com>, Star Zeng <star.zeng@intel.com>,
Michael D Kinney <michael.d.kinney@intel.com>,
Liming Gao <liming.gao@intel.com>,
Chao Zhang <chao.b.zhang@intel.com>
Subject: [PATCH 07/45] MdeModulePkg/MdeModulePkg.dec: Add capsule related definition.
Date: Wed, 21 Sep 2016 14:44:48 +0800 [thread overview]
Message-ID: <1474440326-9292-8-git-send-email-jiewen.yao@intel.com> (raw)
In-Reply-To: <1474440326-9292-1-git-send-email-jiewen.yao@intel.com>
1) Add capsule related GUID.
EdkiiSystemFmpCapsule
2) Add capsule related library.
EdkiiSystemCapsuleLib
FmpAuthenticationLib
IniParsingLib
PlatformFlashAccessLib.c
3) Add capsule related status code PCD.
PcdStatusCodeSubClassCapsule
PcdCapsuleStatusCodeProcessCapsulesBegin
PcdCapsuleStatusCodeProcessCapsulesEnd
PcdCapsuleStatusCodeUpdatingFirmware
PcdCapsuleStatusCodeUpdateFirmwareSuccess
PcdCapsuleStatusCodeUpdateFirmwareFailed
PcdCapsuleStatusCodeResettingSystem
4) Add capsule status variable PCD - CapsuleMax value.
PcdCapsuleMax
5) Add EDKII system capsule related DynamicEx PCD
PcdEdkiiSystemFmpCapsuleMonotonicCount
PcdEdkiiSystemFirmwareImageDescriptor
PcdEdkiiSystemFirmwareFileGuid
PcdEdkiiSystemFmpCapsuleImageTypeIdGuid
NOTE: We use DynamicEx here because the update driver may be in
the capsule FMP, instead of system BIOS.
The update driver MUST use the PCD info produced system BIOS.
Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
---
MdeModulePkg/MdeModulePkg.dec | 106 ++++++++++++++++++++
1 file changed, 106 insertions(+)
diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
index 8d90f16..113abf7 100644
--- a/MdeModulePkg/MdeModulePkg.dec
+++ b/MdeModulePkg/MdeModulePkg.dec
@@ -157,6 +157,22 @@
#
MemoryProfileLib|Include/Library/MemoryProfileLib.h
+ ## @libraryclass Provides services to authenticate a UEFI defined FMP Capsule.
+ #
+ FmpAuthenticationLib|Include/Library/FmpAuthenticationLib.h
+
+ ## @libraryclass Provides services for EDKII system FMP capsule.
+ #
+ EdkiiSystemCapsuleLib|Include/Library/EdkiiSystemCapsuleLib.h
+
+ ## @libraryclass Provides services to parse the INI configuration file.
+ #
+ IniParsingLib|Include/Library/IniParsingLib.h
+
+ ## @libraryclass Provides services to access flash device.
+ #
+ PlatformFlashAccessLib|Include/Library/PlatformFlashAccessLib.h
+
[Guids]
## MdeModule package token space guid
# Include/Guid/MdeModulePkgTokenSpace.h
@@ -355,6 +371,11 @@
## Include/Guid/PiSmmCommunicationRegionTable.h
gEdkiiPiSmmCommunicationRegionTableGuid = { 0x4e28ca50, 0xd582, 0x44ac, {0xa1, 0x1f, 0xe3, 0xd5, 0x65, 0x26, 0xdb, 0x34}}
+ ## Include/Guid/EdkiiSystemFmpCapsule.h
+ gEdkiiSystemFirmwareImageDescriptorFileGuid = {0x90b2b846, 0xca6d, 0x4d6e, {0xa8, 0xd3, 0xc1, 0x40, 0xa8, 0xe1, 0x10, 0xac}}
+ gEdkiiSystemFmpCapsuleConfigFileGuid = {0x812136d3, 0x4d3a, 0x433a, {0x94, 0x18, 0x29, 0xbb, 0x9b, 0xf7, 0x8f, 0x6e}}
+ gEdkiiSystemFmpCapsuleDriverFvFileGuid = {0xce57b167, 0xb0e4, 0x41e8, {0xa8, 0x97, 0x5f, 0x4f, 0xeb, 0x78, 0x1d, 0x40}}
+
[Ppis]
## Include/Ppi/AtaController.h
gPeiAtaControllerPpiGuid = { 0xa45e60d1, 0xc719, 0x44aa, { 0xb0, 0x7a, 0xaa, 0x77, 0x7f, 0x85, 0x90, 0x6d }}
@@ -1130,6 +1151,52 @@
# @Prompt MAX repair count
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxRepairCount|0x00|UINT32|0x00010076
+ ## Status Code for Capsule subclass definitions.<BR><BR>
+ # EFI_SOFTWARE_CAPSULE = (EFI_SOFTWARE | 0x00150000) = 0x03150000<BR>
+ # @Prompt Status Code for Capsule subclass definitions
+ # @ValidList 0x80000003 | 0x03150000
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeSubClassCapsule|0x03150000|UINT32|0x00000100
+
+ ## Status Code for Capsule definitions.<BR><BR>
+ # EFI_CAPSULE_PROCESS_CAPSULES_BEGIN = (EFI_SUBCLASS_SPECIFIC | 0x00000001) = 0x00010001<BR>
+ # @Prompt Status Code for Capsule definitions
+ # @ValidList 0x80000003 | 0x00010001
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeProcessCapsulesBegin|0x00010001|UINT32|0x00000101
+
+ ## Status Code for Capsule definitions.<BR><BR>
+ # EFI_CAPSULE_PROCESS_CAPSULES_END = (EFI_SUBCLASS_SPECIFIC | 0x00000002) = 0x00010002<BR>
+ # @Prompt Status Code for Capsule definitions
+ # @ValidList 0x80000003 | 0x00010002
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeProcessCapsulesEnd|0x00010002|UINT32|0x00000102
+
+ ## Status Code for Capsule definitions.<BR><BR>
+ # EFI_CAPSULE_UPDATING_FIRMWARE = (EFI_SUBCLASS_SPECIFIC | 0x00000003) = 0x00010003<BR>
+ # @Prompt Status Code for Capsule definitions
+ # @ValidList 0x80000003 | 0x00010003
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdatingFirmware|0x00010003|UINT32|0x00000103
+
+ ## Status Code for Capsule definitions.<BR><BR>
+ # EFI_CAPSULE_UPDATE_FIRMWARE_SUCCESS = (EFI_SUBCLASS_SPECIFIC | 0x00000004) = 0x00010004<BR>
+ # @Prompt Status Code for Capsule definitions
+ # @ValidList 0x80000003 | 0x00010004
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdateFirmwareSuccess|0x00010004|UINT32|0x00000104
+
+ ## Status Code for Capsule definitions.<BR><BR>
+ # EFI_CAPSULE_UPDATE_FIRMWARE_FAILED = (EFI_SUBCLASS_SPECIFIC | 0x00000005) = 0x00010005<BR>
+ # @Prompt Status Code for Capsule definitions
+ # @ValidList 0x80000003 | 0x00010005
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdateFirmwareFailed|0x00010005|UINT32|0x00000105
+
+ ## Status Code for Capsule definitions.<BR><BR>
+ # EFI_CAPSULE_RESETTING_SYSTEM = (EFI_SUBCLASS_SPECIFIC | 0x00000006) = 0x00010006<BR>
+ # @Prompt Status Code for Capsule definitions
+ # @ValidList 0x80000003 | 0x00010001
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeResettingSystem|0x00010006|UINT32|0x00000106
+
+ ## CapsuleMax value in capsule report variable.
+ # @Prompt CapsuleMax value in capsule report variable.
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleMax|0xFFFF|UINT16|0x00000107
+
[PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
## This PCD defines the Console output row. The default value is 25 according to UEFI spec.
# This PCD could be set to 0 then console output would be at max column and max row.
@@ -1621,5 +1688,44 @@
# @ValidList 0x80000001 | 0x0
gEfiMdeModulePkgTokenSpaceGuid.PcdIdentifyMappingPageTablePtr|0x0|UINT64|0x00030002
+[PcdsDynamicEx]
+ ## This dynamic PCD hold the FMP capsule monotonic count value for current
+ # BIOS. It is used to ensure freshness/no replay on firmware update.
+ # Only if the new system FmpCapsule EFI_FIRMWARE_IMAGE_AUTHENTICATION.MonotonicCount
+ # is no less than this PcdFmpCapsuleMonotonicCount, the EDKII system
+ # FmpCapsule will be processed.
+ # It must be dynamicEx, because the EDKII system firmware update module may
+ # consume the PCD produced in current BIOS.
+ # @Prompt EDKII system FMP capsule monotonic count.
+ gEfiMdeModulePkgTokenSpaceGuid.PcdEdkiiSystemFmpCapsuleMonotonicCount|1|UINT64|0x000035
+
+ ## This dynamic PCD hold the EDKII system firmware image descriptor.
+ # This information can be used for version check in EDKII system FMP capsule.
+ # Only if the new EdkiiSystemFrimwareImageDescriptor.Version is no less than
+ # the current PcdEdkiiSystemFirmwareImageDescriptor.LowestSupportedVersion,
+ # the EDKII system FmpCapsule will be processed.
+ # It must be dynamicEx, because the EDKII system firmware update module may
+ # consume the PCD produced in current BIOS.
+ # @Prompt EDKII system firwmare image descriptor.
+ gEfiMdeModulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareImageDescriptor|{0}|VOID*|0x00000037
+
+ ## This dynamic PCD hold the GUID of a firmware FFS which includes EDKII
+ # system firmware image.
+ # An EDKII system firmware udpate module need consume this PCD to extract
+ # the EDKII system firmware from the capsule image.
+ # It must be dynamicEx, because the EDKII system firmware update module may
+ # consume the PCD produced in current BIOS.
+ # @Prompt EDKII system firmware image FFS GUID.
+ gEfiMdeModulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareFileGuid|{0xb2, 0x9e, 0x9c, 0xaf, 0xad, 0x12, 0x3e, 0x4d, 0xa4, 0xd4, 0x96, 0xf6, 0xc9, 0x96, 0x62, 0x15}|VOID*|0x00001010
+
+ ## This dynamic PCD hold a list GUIDs for the ImageTypeId to indicate the
+ # FMP capsule is EDKII system FMP.
+ # An EDKII system firmware udpate module need consume this PCD to know if
+ # This FMP capsule is a system FMP or device FMP.
+ # It must be dynamicEx, because the EDKII system firmware update module may
+ # consume the PCD produced in current BIOS.
+ # @Prompt A list of EDKII system FMP ImageTypeId GUIDs
+ gEfiMdeModulePkgTokenSpaceGuid.PcdEdkiiSystemFmpCapsuleImageTypeIdGuid|{0xd3, 0xee, 0x7e, 0x3f, 0x91, 0xf4, 0x1e, 0x40, 0x9e, 0xce, 0x74, 0x31, 0x32, 0x2e, 0xad, 0xf6}|VOID*|0x00001011
+
[UserExtensions.TianoCore."ExtraFiles"]
MdeModulePkgExtra.uni
--
2.7.4.windows.1
next prev parent reply other threads:[~2016-09-21 6:46 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-21 6:44 [PATCH 00/45] Add capsule update and recovery sample Jiewen Yao
2016-09-21 6:44 ` [PATCH 01/45] MdeModulePkg/Include: Add EDKII system FMP capsule header Jiewen Yao
2016-09-21 6:44 ` [PATCH 02/45] MdeModulePkg/Include: Add EdkiiSystemCapsuleLib definition Jiewen Yao
2016-09-21 6:44 ` [PATCH 03/45] MdeModulePkg/Include: Add FmpAuthenticationLib header Jiewen Yao
2016-09-21 6:44 ` [PATCH 04/45] MdeModulePkg/Include: Add IniParsingLib header Jiewen Yao
2016-09-29 6:53 ` Ni, Ruiyu
2016-09-29 7:10 ` Yao, Jiewen
2016-09-21 6:44 ` [PATCH 05/45] MdeModulePkg/Include: Add PlatformFlashAccessLib header Jiewen Yao
2016-09-21 6:44 ` [PATCH 06/45] MdeModulePkg/CapsuleLib: Add ProcessCapsules() API Jiewen Yao
2016-09-21 6:44 ` Jiewen Yao [this message]
2016-09-21 6:44 ` [PATCH 08/45] MdeModulePkg/IniParsingLib: Add InitParsingLib instance Jiewen Yao
2016-09-21 6:44 ` [PATCH 09/45] MdeModulePkg/FmpAuthenticationLib: Add FmpAuthenticationLib instance Jiewen Yao
2016-09-21 6:44 ` [PATCH 10/45] MdeModulePkg/DxeCapsuleLibFmp: Add DxeCapsuleLibFmp instance Jiewen Yao
2016-09-21 6:44 ` [PATCH 11/45] MdeModulePkg/DxeCapsuleLibNull: Add ProcessCapsules() interface Jiewen Yao
2016-09-21 6:44 ` [PATCH 12/45] MdeModulePkg/EdkiiSystemCapsuleLib: Add EdkiiSystemCapsuleLib instance Jiewen Yao
2016-09-21 6:44 ` [PATCH 13/45] MdeModulePkg/PlatformFlashAccessLib: Add NULL PlatformFlashAccessLib Jiewen Yao
2016-09-21 6:44 ` [PATCH 14/45] MdeModulePkg/Esrt: Add ESRT_FW_TYPE_SYSTEMFIRMWARE check Jiewen Yao
2016-09-21 6:44 ` [PATCH 15/45] MdeModulePkg/SystemBiosUpdate: Add SystemBiosUpdate component Jiewen Yao
2016-09-21 6:44 ` [PATCH 16/45] MdeModulePkg/RecoveryModuleLoadPei: Add RecoveryModuleLoadPei Jiewen Yao
2016-09-21 6:44 ` [PATCH 17/45] MdeModulePkg/CapsuleApp: Add CapsuleApp application Jiewen Yao
2016-09-29 1:06 ` Kinney, Michael D
2016-09-29 2:37 ` Yao, Jiewen
2016-09-29 6:39 ` Ni, Ruiyu
2016-09-29 19:10 ` Carsey, Jaben
2016-09-30 4:13 ` Ni, Ruiyu
2016-09-30 15:30 ` Carsey, Jaben
2016-10-03 18:35 ` Rothman, Michael A
2016-10-03 20:38 ` Carsey, Jaben
2016-10-11 8:08 ` Ni, Ruiyu
2016-10-11 8:28 ` Ni, Ruiyu
2016-10-11 8:46 ` Yao, Jiewen
2016-10-11 14:44 ` Yao, Jiewen
2016-10-12 21:04 ` Carsey, Jaben
2016-10-13 1:07 ` Yao, Jiewen
2016-09-21 6:44 ` [PATCH 18/45] MdeModulePkg/MdeModulePkg.dsc: Add capsule related component Jiewen Yao
2016-09-21 6:45 ` [PATCH 19/45] IntelFrameworkModulePkg/DxeCapsuleLib: Add ProcessCapsules() interface Jiewen Yao
2016-09-28 8:08 ` Fan, Jeff
2016-09-21 6:45 ` [PATCH 20/45] SecurityPkg/SecurityPkg.dec: Add PcdPkcs7CertBuffer PCD Jiewen Yao
2016-09-21 6:45 ` [PATCH 21/45] SecurityPkg/FmpAuthenticationPkcs7Lib: Add PKCS7 NULL class for FMP Jiewen Yao
2016-09-21 6:45 ` [PATCH 22/45] SecurityPkg/FmpAuthenticationRsa2048Sha256Lib: Add " Jiewen Yao
2016-09-21 6:45 ` [PATCH 23/45] SecurityPkg/SecurityPkg.dsc: Add FmpAuthentication*Lib Jiewen Yao
2016-09-28 4:56 ` Zhang, Chao B
2016-09-21 6:45 ` [PATCH 24/45] UefiCpuPkg/Include: Add Microcode FMP definition Jiewen Yao
2016-09-21 6:45 ` [PATCH 25/45] UefiCpuPkg/Include: Add MicrocodeFlashAccessLib header Jiewen Yao
2016-09-21 6:45 ` [PATCH 26/45] UefiCpuPkg/UefiCpuPkg.dec: Add Microcode capsule related definition Jiewen Yao
2016-09-21 6:45 ` [PATCH 27/45] UefiCpuPkg/MicrocodeUpdate: Add MicrocodeUpdate component Jiewen Yao
2016-09-27 8:41 ` Fan, Jeff
2016-09-21 6:45 ` [PATCH 28/45] UefiCpuPkg/MicrocodeFlashAccessLib: Add NULL MicrocodeFlashAccessLib Jiewen Yao
2016-09-21 6:45 ` [PATCH 29/45] UefiCpuPkg/MicrocodeCapsuleApp: Add MicrocodeCapsuleApp application Jiewen Yao
2016-09-21 6:45 ` [PATCH 30/45] UefiCpuPkg/UefiCpuPkg.dsc: Add MicrocodeCapsule related component Jiewen Yao
2016-09-21 6:45 ` [PATCH 31/45] QuarkPlatformPkg/PlatformFlashAccessLib: Add instance for capsule update Jiewen Yao
2016-09-21 6:45 ` [PATCH 32/45] QuarkPlatformPkg/SystemBiosDescriptor: Add Descriptor " Jiewen Yao
2016-09-21 6:45 ` [PATCH 33/45] QuarkPlatformPkg/SystemBiosUpdateConfig: Add capsule config file Jiewen Yao
2016-09-21 6:45 ` [PATCH 34/45] QuarkPlatformPkg/PlatformInit: Remove recovery PPI installation Jiewen Yao
2016-09-21 6:45 ` [PATCH 35/45] QuarkPlatformPkg/PlatformBootManager: Add capsule/recovery handling Jiewen Yao
2016-09-21 6:45 ` [PATCH 36/45] QuarkPlatformPkg/dsc/fdf: Add capsule/recovery support Jiewen Yao
2016-09-21 6:45 ` [PATCH 37/45] QuarkPlatformPkg/dsc/fdf: add capsule generation DSC/FDF Jiewen Yao
2016-09-29 1:01 ` Kinney, Michael D
2016-09-29 2:33 ` Yao, Jiewen
2016-09-21 6:45 ` [PATCH 38/45] Vlv2TbltDevicePkg/PlatformFlashAccessLib: Add instance for capsule update Jiewen Yao
2016-09-21 6:51 ` Wei, David
2016-09-21 6:45 ` [PATCH 39/45] Vlv2TbltDevicePkg/SystemBiosDescriptor: Add Descriptor " Jiewen Yao
2016-09-21 6:54 ` Wei, David
2016-09-21 6:45 ` [PATCH 40/45] Vlv2TbltDevicePkg/SystemBiosUpdateConfig: Add capsule config file Jiewen Yao
2016-09-21 6:57 ` Wei, David
2016-09-21 6:45 ` [PATCH 41/45] Vlv2TbltDevicePkg/FlashDeviceLib: Add DXE flash device lib Jiewen Yao
2016-09-21 7:10 ` Wei, David
2016-09-21 6:45 ` [PATCH 42/45] Vlv2TbltDevicePkg/PlatformBootManager: Add capsule/recovery handling Jiewen Yao
2016-09-22 2:40 ` Wei, David
2016-09-21 6:45 ` [PATCH 43/45] Vlv2TbltDevicePkg/dsc/fdf: Add capsule/recovery support Jiewen Yao
2016-09-22 1:36 ` Wei, David
2016-09-22 1:39 ` Wei, David
2016-09-21 6:45 ` [PATCH 44/45] Vlv2TbltDevicePkg/dsc/fdf: add capsule generation DSC/FDF Jiewen Yao
2016-09-21 6:45 ` [PATCH 45/45] Vlv2TbltDevicePkg/bat: add capsule generation in bat Jiewen Yao
2016-09-21 7:53 ` Wei, David
2016-09-21 7:54 ` Yao, Jiewen
2016-09-21 16:35 ` [PATCH 00/45] Add capsule update and recovery sample Kinney, Michael D
2016-09-22 1:59 ` Yao, Jiewen
2016-09-23 3:18 ` Gao, Liming
2016-09-24 6:42 ` Yao, Jiewen
2016-09-27 3:16 ` Gao, Liming
2016-09-28 8:05 ` Yao, Jiewen
2016-09-28 14:54 ` Kinney, Michael D
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1474440326-9292-8-git-send-email-jiewen.yao@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox