Add FMP for System76 EC
Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
		
							
								
								
									
										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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user