Add FMP for System76 EC
Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
parent
045b938884
commit
102042deda
21
System76Pkg/Ec/Fmp/EcFmp.dsc
Normal file
21
System76Pkg/Ec/Fmp/EcFmp.dsc
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# SPDX-License-Identifier: MPL-2.0
|
||||||
|
# SPDX-FileCopyrightText: 2023 System76, Inc.
|
||||||
|
|
||||||
|
FmpDevicePkg/FmpDxe/FmpDxe.inf {
|
||||||
|
<Defines>
|
||||||
|
FILE_GUID = $(EC_FMP_ESRT_GUID)
|
||||||
|
<PcdsFixedAtBuild>
|
||||||
|
gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceImageIdName|L"System76 EC"
|
||||||
|
gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceBuildTimeLowestSupportedVersion|0
|
||||||
|
gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressWatchdogTimeInSeconds|0
|
||||||
|
gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressColor|0x00FBB86C
|
||||||
|
<LibraryClasses>
|
||||||
|
FmpPayloadHeaderLib|FmpDevicePkg/Library/FmpPayloadHeaderLibV1/FmpPayloadHeaderLibV1.inf
|
||||||
|
FmpAuthenticationLib|MdeModulePkg/Library/FmpAuthenticationLibNull/FmpAuthenticationLibNull.inf
|
||||||
|
FmpDependencyLib|FmpDevicePkg/Library/FmpDependencyLib/FmpDependencyLib.inf
|
||||||
|
FmpDependencyCheckLib|FmpDevicePkg/Library/FmpDependencyCheckLibNull/FmpDependencyCheckLibNull.inf
|
||||||
|
FmpDependencyDeviceLib|FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf
|
||||||
|
CapsuleUpdatePolicyLib|FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.inf
|
||||||
|
|
||||||
|
FmpDeviceLib|System76Pkg/Ec/Fmp/EcFmpLib.inf
|
||||||
|
}
|
241
System76Pkg/Ec/Fmp/EcFmpLib.c
Normal file
241
System76Pkg/Ec/Fmp/EcFmpLib.c
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// SPDX-FileCopyrightText: 2023 System76, Inc.
|
||||||
|
|
||||||
|
#include <Guid/SystemResourceTable.h>
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
#include <Library/FmpDeviceLib.h>
|
||||||
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
|
#include <LastAttemptStatus.h>
|
||||||
|
|
||||||
|
#define US_PER_MS 1000
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
RegisterFmpInstaller(
|
||||||
|
IN FMP_DEVICE_LIB_REGISTER_FMP_INSTALLER FmpInstaller
|
||||||
|
) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
RegisterFmpUninstaller(
|
||||||
|
IN FMP_DEVICE_LIB_REGISTER_FMP_UNINSTALLER FmpUninstaller
|
||||||
|
) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceSetContext(
|
||||||
|
IN EFI_HANDLE Handle,
|
||||||
|
IN OUT VOID **Context
|
||||||
|
) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceGetSize(
|
||||||
|
OUT UINTN *Size
|
||||||
|
) {
|
||||||
|
if (!Size)
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
*Size = 128 * 1024;
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceGetImageTypeIdGuidPtr(
|
||||||
|
OUT EFI_GUID **Guid
|
||||||
|
) {
|
||||||
|
if (!Guid)
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceGetAttributes(
|
||||||
|
OUT UINT64 *Supported,
|
||||||
|
OUT UINT64 *Setting
|
||||||
|
) {
|
||||||
|
if (!Supported || !Setting)
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
*Supported = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE
|
||||||
|
| IMAGE_ATTRIBUTE_RESET_REQUIRED
|
||||||
|
| IMAGE_ATTRIBUTE_IN_USE;
|
||||||
|
|
||||||
|
*Setting = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE
|
||||||
|
| IMAGE_ATTRIBUTE_RESET_REQUIRED
|
||||||
|
| IMAGE_ATTRIBUTE_IN_USE;
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceGetLowestSupportedVersion(
|
||||||
|
OUT UINT32 *LowestSupportedVersion
|
||||||
|
) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceGetVersionString(
|
||||||
|
OUT CHAR16 **VersionString
|
||||||
|
) {
|
||||||
|
if (!VersionString)
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
*VersionString = AllocatePool(sizeof(L"0.3"));
|
||||||
|
if (!(*VersionString))
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
|
||||||
|
CopyMem(VersionString, L"0.3", sizeof(L"0.3"));
|
||||||
|
|
||||||
|
//*VersionString = NULL;
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceGetVersion(
|
||||||
|
OUT UINT32 *Version
|
||||||
|
) {
|
||||||
|
if (!Version)
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
*Version = 3;
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceGetHardwareInstance(
|
||||||
|
OUT UINT64 *HardwareInstance
|
||||||
|
) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceGetImage(
|
||||||
|
OUT VOID *Image,
|
||||||
|
IN OUT UINTN *ImageSize
|
||||||
|
) {
|
||||||
|
// TODO
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceCheckImageWithStatus(
|
||||||
|
IN CONST VOID *Image,
|
||||||
|
IN UINTN ImageSize,
|
||||||
|
OUT UINT32 *ImageUpdatable,
|
||||||
|
OUT UINT32 *LastAttemptStatus
|
||||||
|
) {
|
||||||
|
if (!LastAttemptStatus)
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
*LastAttemptStatus = LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE;
|
||||||
|
|
||||||
|
if (!ImageUpdatable || !Image)
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
// TODO:
|
||||||
|
*LastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceCheckImage(
|
||||||
|
IN CONST VOID *Image,
|
||||||
|
IN UINTN ImageSize,
|
||||||
|
OUT UINT32 *ImageUpdatable
|
||||||
|
) {
|
||||||
|
UINT32 LastAttemptStatus;
|
||||||
|
|
||||||
|
return FmpDeviceCheckImageWithStatus(Image, ImageSize, ImageUpdatable, &LastAttemptStatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceSetImageWithStatus (
|
||||||
|
IN CONST VOID *Image,
|
||||||
|
IN UINTN ImageSize,
|
||||||
|
IN CONST VOID *VendorCode, OPTIONAL
|
||||||
|
IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress, OPTIONAL
|
||||||
|
IN UINT32 CapsuleFwVersion,
|
||||||
|
OUT CHAR16 **AbortReason,
|
||||||
|
OUT UINT32 *LastAttemptStatus
|
||||||
|
) {
|
||||||
|
// TODO
|
||||||
|
EFI_STATUS Status = EFI_SUCCESS;
|
||||||
|
UINT32 Updateable = 0;
|
||||||
|
|
||||||
|
Status = FmpDeviceCheckImageWithStatus(Image, ImageSize, &Updateable, LastAttemptStatus);
|
||||||
|
if (EFI_ERROR(Status)) {
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Updateable != IMAGE_UPDATABLE_VALID) {
|
||||||
|
Status = EFI_ABORTED;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Progress == NULL) {
|
||||||
|
Status = EFI_INVALID_PARAMETER;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
gBS->Stall (3000 * US_PER_MS);
|
||||||
|
Progress(15);
|
||||||
|
gBS->Stall (2000 * US_PER_MS);
|
||||||
|
|
||||||
|
for (int p = 20; p < 100; p++) {
|
||||||
|
gBS->Stall (100 * US_PER_MS);
|
||||||
|
Progress (p);
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
*LastAttemptStatus = LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceSetImage(
|
||||||
|
IN CONST VOID *Image,
|
||||||
|
IN UINTN ImageSize,
|
||||||
|
IN CONST VOID *VendorCode, OPTIONAL
|
||||||
|
IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress, OPTIONAL
|
||||||
|
IN UINT32 CapsuleFwVersion,
|
||||||
|
OUT CHAR16 **AbortReason
|
||||||
|
) {
|
||||||
|
UINT32 LastAttemptStatus;
|
||||||
|
|
||||||
|
return FmpDeviceSetImageWithStatus(Image, ImageSize, VendorCode, Progress, CapsuleFwVersion, AbortReason, &LastAttemptStatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
FmpDeviceLock(
|
||||||
|
VOID
|
||||||
|
) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
20
System76Pkg/Ec/Fmp/EcFmpLib.inf
Normal file
20
System76Pkg/Ec/Fmp/EcFmpLib.inf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# SPDX-License-Identifier: MPL-2.0
|
||||||
|
# SPDX-FileCopyrightText: 2023 System76, Inc.
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 1.27
|
||||||
|
BASE_NAME = EcFmpLib
|
||||||
|
FILE_GUID = 760B7155-99F7-4E8E-8C07-D38A75F54C54
|
||||||
|
MODULE_TYPE = DXE_DRIVER
|
||||||
|
VERSION_STRING = 0.1
|
||||||
|
LIBRARY_CLASS = FmpDeviceLib|DXE_DRIVER
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
EcFmpLib.c
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
FmpDevicePkg/FmpDevicePkg.dec
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
UefiBootServicesTableLib
|
@ -112,6 +112,9 @@
|
|||||||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||||
DEFINE TPM_ENABLE = FALSE
|
DEFINE TPM_ENABLE = FALSE
|
||||||
|
|
||||||
|
# FMP
|
||||||
|
DEFINE EC_FMP_ESRT_GUID = 76FFAC81-FDE6-464D-A6D9-84BDD9EE522D
|
||||||
|
|
||||||
[BuildOptions]
|
[BuildOptions]
|
||||||
*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
|
*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
|
||||||
GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
@ -206,13 +209,16 @@
|
|||||||
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
||||||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||||
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
|
||||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
||||||
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
|
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
|
||||||
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
||||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||||
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
||||||
|
|
||||||
|
# FMP Capsule
|
||||||
|
BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
|
||||||
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# CPU
|
# CPU
|
||||||
#
|
#
|
||||||
@ -346,6 +352,9 @@
|
|||||||
Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg2.inf
|
Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg2.inf
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
# FMP Capsule
|
||||||
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
||||||
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
@ -364,6 +373,9 @@
|
|||||||
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
|
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
# FMP Capsule
|
||||||
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]
|
[LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]
|
||||||
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
@ -563,7 +575,6 @@
|
|||||||
MdeModulePkg/Universal/Metronome/Metronome.inf
|
MdeModulePkg/Universal/Metronome/Metronome.inf
|
||||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||||
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||||
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
||||||
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||||
!if $(DISABLE_RESET_SYSTEM) == FALSE
|
!if $(DISABLE_RESET_SYSTEM) == FALSE
|
||||||
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
||||||
@ -710,6 +721,9 @@
|
|||||||
# Firmware update
|
# Firmware update
|
||||||
#
|
#
|
||||||
MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDxe.inf
|
MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDxe.inf
|
||||||
|
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||||
|
|
||||||
|
!include System76Pkg/Ec/Fmp/EcFmp.dsc
|
||||||
|
|
||||||
#------------------------------
|
#------------------------------
|
||||||
# Build the shell
|
# Build the shell
|
||||||
|
@ -113,7 +113,6 @@ INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
|||||||
INF MdeModulePkg/Universal/Metronome/Metronome.inf
|
INF MdeModulePkg/Universal/Metronome/Metronome.inf
|
||||||
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||||
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||||
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
||||||
INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||||
|
|
||||||
!if $(DISABLE_RESET_SYSTEM) == FALSE
|
!if $(DISABLE_RESET_SYSTEM) == FALSE
|
||||||
@ -282,6 +281,8 @@ INF SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf
|
|||||||
# Firmware update
|
# Firmware update
|
||||||
#
|
#
|
||||||
INF MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDxe.inf
|
INF MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||||
|
INF FILE_GUID = $(EC_FMP_ESRT_GUID) FmpDevicePkg/FmpDxe/FmpDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Shell
|
# Shell
|
||||||
|
Loading…
x
Reference in New Issue
Block a user