Jiewen Yao
008e2ccf02
Vlv2TbltDevicePkg/Build: Add capsule/recovery in help info.
...
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:57 +08:00
Jiewen Yao
120577608d
Vlv2TbltDevicePkg/bat: add capsule generation in bat.
...
If OPENSSL_PATH is set, the build process generates capsule.
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:55 +08:00
Jiewen Yao
3e034c88ba
Vlv2TbltDevicePkg/dsc/fdf: add capsule generation DSC/FDF.
...
Add DSC/FDF to generate capsule image.
It is separated from normal DSC/FDF, because the FDF file need use
the result of final build.
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:53 +08:00
Jiewen Yao
c5a590807e
Vlv2TbltDevicePkg/dsc/fdf: Add capsule/recovery support.
...
Add capsule and recovery support module in platform dsc and fdf.
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:51 +08:00
Jiewen Yao
1ed0b254a2
Vlv2TbltDevicePkg/PlatformBootManager: Add capsule/recovery handling.
...
1) Add capsule and recovery boot path handling in platform BDS.
2) Add check if the platform is using default test key for capsule.
Produce PcdTestKeyUsed to indicate if there is any
test key used in current BIOS, such as recovery key,
or capsule update key.
Then the generic UI may consume this PCD to show warning information.
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:49 +08:00
Jiewen Yao
7a0a32f163
Vlv2TbltDevicePkg/FlashDeviceLib: Add DXE flash device lib.
...
Previous FlashDeviceLib only supports DxeRuntime and Smm.
It cannot be linked with SystemBiosUpdateDxe driver.
So we separate DxeRuntime related code into a standalone file,
and create FlashDeviceLibDxe.inf.
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:47 +08:00
Jiewen Yao
b43cf51c02
Vlv2TbltDevicePkg/SystemFirmwareUpdateConfig: Add capsule config file.
...
Add SystemFirmwareUpdateConfig as capsule configuration file.
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:45 +08:00
Jiewen Yao
ed35f7e07c
Vlv2TbltDevicePkg/SystemFirmwareDescriptor: Add Capsule Descriptor.
...
Add SystemFirmwareDescriptor for capsule update.
The PEIM extracts SystemFirmwareDescriptor info from FFS and reports
it via PCD.
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:42 +08:00
Jiewen Yao
75ce133c3c
Vlv2TbltDevicePkg/PlatformFlashAccessLib: Add instance for update.
...
Add PlatformFlashAccessLib for capsule update.
Cc: David Wei <david.wei@intel.com >
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 >
Reviewed-by: David Wei <david.wei@intel.com >
2016-11-08 22:49:40 +08:00
Jiewen Yao
ff4e4b26f5
QuarkPlatformPkg/Readme: add capsule/recovery related content.
...
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Kelly Steele <kelly.steele@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Star Zeng <star.zeng@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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:46:06 +08:00
Jiewen Yao
8affbb6271
QuarkPlatformPkg/dsc/fdf: Add capsule/recovery support.
...
Add capsule and recovery support module in platform dsc and fdf.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Kelly Steele <kelly.steele@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Star Zeng <star.zeng@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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:46:05 +08:00
Jiewen Yao
9bd5e0cc9c
QuarkPlatformPkg/PlatformBootManager: Add capsule/recovery handling.
...
1) Add capsule and recovery boot path handling in platform BDS.
2) Add check if the platform is using default test key for capsule.
Produce PcdTestKeyUsed to indicate if there is any
test key used in current BIOS, such as recovery key,
or capsule update key.
Then the generic UI may consume this PCD to show warning information.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Kelly Steele <kelly.steele@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Star Zeng <star.zeng@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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:46:03 +08:00
Jiewen Yao
4e15ace8b5
QuarkPlatformPkg/PlatformInit: Remove recovery PPI installation.
...
The QuarkPlatform will use MdeModulePkg/RecoveryModuleLoadPei for recovery.
There is no need to produce recovery PPI in platform module.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Kelly Steele <kelly.steele@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Star Zeng <star.zeng@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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:46:01 +08:00
Jiewen Yao
4df6b0bafc
QuarkPlatformPkg/SystemFirmwareUpdateConfig: Add capsule config file.
...
Add SystemFirmwareUpdateConfig as capsule configuration file.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Kelly Steele <kelly.steele@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Star Zeng <star.zeng@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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:45:59 +08:00
Jiewen Yao
b5505fe394
QuarkPlatformPkg/SystemFirmwareDescriptor: Add Descriptor for capsule.
...
Add SystemFirmwareDescriptor for capsule update.
The PEIM extracts SystemFirmwareDescriptor info from FFS and reports
it via PCD.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Kelly Steele <kelly.steele@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Star Zeng <star.zeng@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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:45:57 +08:00
Jiewen Yao
63b9a685ad
QuarkPlatformPkg/PlatformFlashAccessLib: Add instance for update.
...
Add PlatformFlashAccessLib for capsule update.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Kelly Steele <kelly.steele@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Star Zeng <star.zeng@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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:45:55 +08:00
Jiewen Yao
bb7c65bd03
UefiCpuPkg/MicrocodeUpdate: Add Microcode FMP build sample
...
This folder provides the sample build for Microcode FMP.
The DSC/FDF is to convert the Microcode binary/text to Microcode FMP.
Cc: Jeff Fan <jeff.fan@intel.com >
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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:43:24 +08:00
Jiewen Yao
882668595c
UefiCpuPkg/MicrocodeUpdate: Add MicrocodeUpdate component.
...
MicrocodeUpdate supports update Microcode region via UEFI FMP capsule.
MicrocodeUpdate SetImage() will perform the Microcode version,
ProcessorSignature/ProcessorFlag, and try to load microcode.
If and only if the Microcode is loaded successfully, and new Microcode
will be updated to system flash region.
Cc: Jeff Fan <jeff.fan@intel.com >
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 >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:43:22 +08:00
Jiewen Yao
c7829aa0e9
UefiCpuPkg/MicrocodeFlashAccessLib: Add NULL MicrocodeFlashAccessLib.
...
Add NULL instance to pass build.
Cc: Jeff Fan <jeff.fan@intel.com >
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 >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:43:20 +08:00
Jiewen Yao
90c45da449
UefiCpuPkg/UefiCpuPkg.dec: Add Microcode capsule related definition.
...
1) Add Microcode capsule related GUID.
gMicrocodeFmpImageTypeIdGuid
2) Add Microcode capsule related library.
MicrocodeFlashAccessLib
Cc: Jeff Fan <jeff.fan@intel.com >
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 >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:43:18 +08:00
Jiewen Yao
faf2c63b4a
UefiCpuPkg/Include: Add MicrocodeFlashAccessLib header.
...
This library is used to abstract microcode flash region access.
This library is consumed by a microcode capsule update module.
Cc: Jeff Fan <jeff.fan@intel.com >
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 >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:43:16 +08:00
Jiewen Yao
cc0c03874a
UefiCpuPkg/Include: Add Microcode FMP definition.
...
It defined ImageTypeId for Microcode.
Cc: Jeff Fan <jeff.fan@intel.com >
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 >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:43:15 +08:00
Jiewen Yao
e470ee6de9
SignedCapsulePkg/RecoveryModuleLoadPei: Add RecoveryModuleLoadPei.
...
RecoveryModuleLoadPei supports recovery system firmware via FMP capsule.
RecoveryModuleLoadPei produces EFI_PEI_RECOVERY_MODULE_PPI. It is invoked
by DxeIpl in recovery boot mode.
LoadRecoveryCapsule() will scan all possible
gEfiPeiDeviceRecoveryModulePpiGuid and get EDKII system FMP capsule there.
LoadRecoveryCapsule() will perform the FMP authentication and version
check. If and only if the FMP authentication passes, and EDKII system FMP
capsule version is equal to the current system firmware Version, the
recovery will be performed. Or this capsule image is discard.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:41:03 +08:00
Jiewen Yao
f6f91d38fe
SignedCapsulePkg/SystemFirmwareUpdate: Add SystemFirmwareUpdate.
...
SystemFirmwareUpdate supports update system firmware via UEFI FMP capsule.
SystemFirmwareReportDxe.inf can be included in system BIOS. It is a
lightweight FMP protocol implementation and it only reports FMP
information, so that ESRT table can report the system firmware
information. SetImage() will dispatch the driver FV in the EDKII system
FMP image (SystemFirmwareUpdateDxe),
then pass thru the SetImage() request to latter.
SystemFirmwareUpdateDxe.inf can be included in EDKII system capsule image.
It is a full feature FMP protocol implementation and supports SetImage().
It can be used to update the system firmware.
SystemFirmwareUpdateDxe.inf can also be included in system firmware.
If so SystemFirmwareReportDxe.inf is not needed.
SystemFirmwareUpdateDxe SetImage() will perform the FMP authentication and
version check. If and only if the FMP authentication passes, and new
EDKII system capsule version is no less than current system firmware
LowestSupportedVersion, the system firmware will be updated.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:41:02 +08:00
Jiewen Yao
f473d9d675
SignedCapsulePkg/PlatformFlashAccessLib: Add NULL instance.
...
Add NULL instance to pass build.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:41:00 +08:00
Jiewen Yao
e29caef253
SignedCapsulePkg/EdkiiSystemCapsuleLib: Add EdkiiSystemCapsuleLib.
...
This library is used to abstract the action for EDKII system FMP capsule,
such as extracting a component from capsule, or authenticate the capsule.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:58 +08:00
Jiewen Yao
384070fda3
SignedCapsulePkg/IniParsingLib: Add InitParsingLib instance.
...
This library is used to parse the INI configuration file.
The INI configuration file is used in EDKII capsule image to describe
the capsule information.
Detail format is documented in header file.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:56 +08:00
Jiewen Yao
7ee5139c1b
SignedCapsulePkg/CapsulePkg.dec: Add capsule related definition.
...
1) Add capsule related GUID.
EdkiiSystemFmpCapsule
2) Add capsule related library.
EdkiiSystemCapsuleLib
IniParsingLib
PlatformFlashAccessLib
3) Add EDKII system capsule related DynamicEx PCD
PcdEdkiiSystemFirmwareImageDescriptor
PcdEdkiiSystemFirmwareFileGuid
NOTE: We use DynamicEx here because the update driver may be in
the capsule FMP, instead of system firmware.
The update driver MUST use the PCD info produced system firmware.
4) Add Test key file PCD
These PCDs indicate the GUID of FFS which contains test key file.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:54 +08:00
Jiewen Yao
615c14b6f8
SignedCapsulePkg/Include: Add PlatformFlashAccessLib header.
...
This library is used to abstract platform flash access.
This library is consumed by a capsule update module.
It may cover SystemFirmware region and/or non-SystemFirmware region.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:52 +08:00
Jiewen Yao
034e881eae
SignedCapsulePkg/Include: Add IniParsingLib header.
...
This library is used to parse the INI configuration file.
The INI configuration file is used in EDKII capsule image to describe
the capsule information.
Detail format is documented in header file.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:51 +08:00
Jiewen Yao
5f190b9070
SignedCapsulePkg/Include: Add EdkiiSystemCapsuleLib definition.
...
This library is used to abstract the action for EDKII system FMP capsule,
such as extracting a component from capsule, or authenticate the capsule.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:49 +08:00
Jiewen Yao
3705cf4281
SignedCapsulePkg/Include: Add EDKII system FMP capsule header.
...
Add EDKII system FMP capsule header file.
This describes the EDKII system FMP capsule format.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:47 +08:00
Jiewen Yao
e286b83ca2
SignedCapsulePkg: Add license file.
...
Add license file for SignedCapsulePkg.
This package contains sample drivers to do system firmware update
and recovery.
It also includes a capsule library to support system FMP and device FMP.
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 >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:45 +08:00
Jiewen Yao
5c7cf1cc9e
UefiCpuPkg/UefiCpuPkg.dsc: Add MicrocodeCapsule related component.
...
Add Microcode capsule related component to check build.
Cc: Jeff Fan <jeff.fan@intel.com >
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 >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:40:43 +08:00
Jiewen Yao
487aa09bc0
SecurityPkg/SecurityPkg.dsc: Add FmpAuthenticationLib*.
...
Add FmpAuthenticationLib* to check build.
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 >
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:19 +08:00
Jiewen Yao
938f77f87c
SecurityPkg/FmpAuthenticationLibRsa2048Sha256: Add RSA2048 instance.
...
It provides Rsa2048Sha256 based FMP authentication.
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 >
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:17 +08:00
Jiewen Yao
fef2ae6340
SecurityPkg/FmpAuthenticationLibPkcs7: Add PKCS7 instance for FMP.
...
It provides PKCS7 based FMP authentication.
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 >
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:16 +08:00
Jiewen Yao
d8d09b83d6
SecurityPkg/SecurityPkg.dec: Add PcdPkcs7CertBuffer PCD.
...
This PCD is similar to PcdRsa2048Sha256PublicKeyBuffer.
It provides trusted cert for PKCS7 verification.
It can be used for Recovery and Capsule Update images.
We added warning message for both PcdPkcs7CertBuffer and
PcdRsa2048Sha256PublicKeyBuffer. The default value is only for
test purpose.
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 >
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:14 +08:00
Jiewen Yao
afaa44c34b
IntelFrameworkModulePkg/DxeCapsuleLib: Add ProcessCapsules().
...
Add NULL ProcessCapsules() interface for DxeCapsuleLib.
IntelFrameworkModulePkg is under maintenance phase.
We stop adding new feature there.
Just add NULL function to make it pass build.
Cc: Jeff Fan <jeff.fan@intel.com >
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 >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:12 +08:00
Jiewen Yao
85517f77bc
MdeModulePkg/MdeModulePkg.dsc: Add FMP related component.
...
Add FMP related component to check build.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:10 +08:00
Jiewen Yao
15b52294fd
MdeModulePkg/UiApp: Show test key warning info in FrontPage.
...
The UiApp is updated to consume PcdTestKeyUsed to know if there is any
test key used in current BIOS, such as recovery key,
or capsule update key.
Then UiApp show warning information in front page.
Cc: Eric Dong <eric.dong@intel.com >
Cc: Ruiyu Ni <ruiyu.ni@intel.com >
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 >
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:08 +08:00
Jiewen Yao
592bad0435
MdeModulePkg/CapsuleApp: Add CapsuleApp application.
...
This CapsuleApp can help perform capsule update in UEFI shell environment.
It can also dump capsule information, capsule status variable,
ESRT and FMP.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:05 +08:00
Jiewen Yao
ab3aac14ab
MdeModulePkg/Esrt: Add ESRT_FW_TYPE_SYSTEMFIRMWARE check.
...
The previous ESRT driver unconditionally treat FMP to be
ESRT_FW_TYPE_DEVICEFIRMWARE.
EDKII System Capsule reuses FMP, but it is ESRT_FW_TYPE_SYSTEMFIRMWARE.
Add check to ImageTypeId check to see if it is ESRT_FW_TYPE_SYSTEMFIRMWARE.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:03 +08:00
Jiewen Yao
d2a160304e
MdeModulePkg/DxeCapsuleLibFmp: Add DxeCapsuleLibFmp instance.
...
This instance handles Microsoft UX capsule, UEFI defined FMP capsule.
This instance should not assume any capsule image format.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:37:00 +08:00
Jiewen Yao
bf468a6ca0
MdeModulePkg/DxeCapsuleLibNull: Add ProcessCapsules() interface.
...
Add ProcessCapsules() interface for DxeCapsuleLibNull.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:36:58 +08:00
Jiewen Yao
e169a686ab
MdeModulePkg/FmpAuthenticationLibNull: Add NULL instance FMP.
...
Add NULL instance to pass build.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:36:55 +08:00
Jiewen Yao
df31cf84d1
MdeModulePkg/MdeModulePkg.dec: Add capsule related definition.
...
1) Add capsule related library.
FmpAuthenticationLib
2) Add capsule related status code PCD.
PcdStatusCodeSubClassCapsule
PcdCapsuleStatusCodeProcessCapsulesBegin
PcdCapsuleStatusCodeProcessCapsulesEnd
PcdCapsuleStatusCodeUpdatingFirmware
PcdCapsuleStatusCodeUpdateFirmwareSuccess
PcdCapsuleStatusCodeUpdateFirmwareFailed
PcdCapsuleStatusCodeResettingSystem
3) Add capsule status variable PCD - CapsuleMax value.
PcdCapsuleMax
4) Add system FMP indicator PCD - used by ESRT.
PcdSystemFmpCapsuleImageTypeIdGuid
5) Add PcdTestKeyUsed PCD.
This PCD can be set by platform to indicate if there is any
test key used in current BIOS, such as recovery key,
or capsule update key.
Then the generic UI may consume this PCD to show warning information.
Other platform driver may also consume this PCD to know such info,
and report it via platform specific way.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:36:53 +08:00
Jiewen Yao
0fb30bc9f1
MdeModulePkg/CapsuleLib: Add ProcessCapsules() API.
...
ProcessCapsules() API can be used by platform BDS to process all capsules.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:36:50 +08:00
Jiewen Yao
e5b31668cf
MdeModulePkg/Include: Add FmpAuthenticationLib header.
...
This library is used to authenticate a UEFI defined FMP Capsule.
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 >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-11-08 22:36:48 +08:00
Hao Wu
fef15ecd20
BaseTools/VfrCompile/Pccts: Make assignment operator not returning void
...
The assignment operators for class ANTLRTokenPtr return void in current
code.
This commit makes them return the reference to the object just like
primitive types do.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Yonghong Zhu <yonghong.zhu@intel.com >
Cc: Eric Dong <eric.dong@intel.com >
Cc: Dandan Bi <dandan.bi@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2016-11-08 16:38:30 +08:00