REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2957 1. Allocate performance data table at EndOfDxe and then lock the varible which store the table address at EndOfDxe. 2. Enlarge PCD gEfiMdeModulePkgTokenSpaceGuid.PcdExtFpdtBootRecordPadSize from 0x20000 to 0x30000 in order to hold the Delta performance data between EndOfDxe and ReadyToBoot. 3. SMM performance data is collected by DXE modules through SMM communication at ReadyToBoot before. Now to do SMM communication twice, one for allocating the performance size at EndOfDxe, another is at ReadyToBoot to get SMM performance data. 4. Make SmmCorePerformanceLib rather than FirmwarePerformanceSmm to communicate with DxeCorePerformanceLib for SMM performance data and size. Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
88 lines
3.1 KiB
INI
88 lines
3.1 KiB
INI
## @file
|
|
# This module installs ACPI Firmware Performance Data Table (FPDT).
|
|
#
|
|
# This module registers report status code listener to collect performance data
|
|
# for Firmware Basic Boot Performance Record and other boot performance records,
|
|
# and install FPDT to ACPI table.
|
|
#
|
|
# Copyright (c) 2011 - 2021, Intel Corporation. All rights reserved.<BR>
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = FirmwarePerformanceDxe
|
|
MODULE_UNI_FILE = FirmwarePerformanceDxe.uni
|
|
FILE_GUID = 00160F8D-2B35-4df2-BBE0-B272A8D631F0
|
|
MODULE_TYPE = DXE_DRIVER
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = FirmwarePerformanceDxeEntryPoint
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 EBC
|
|
#
|
|
|
|
[Sources]
|
|
FirmwarePerformanceDxe.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
|
|
[LibraryClasses]
|
|
UefiDriverEntryPoint
|
|
UefiBootServicesTableLib
|
|
UefiRuntimeServicesTableLib
|
|
BaseLib
|
|
DebugLib
|
|
DxeServicesLib
|
|
TimerLib
|
|
BaseMemoryLib
|
|
MemoryAllocationLib
|
|
PcdLib
|
|
HobLib
|
|
LockBoxLib
|
|
UefiLib
|
|
VariablePolicyHelperLib
|
|
|
|
[Protocols]
|
|
gEfiAcpiTableProtocolGuid ## CONSUMES
|
|
gEfiRscHandlerProtocolGuid ## CONSUMES
|
|
gEfiVariableArchProtocolGuid ## CONSUMES
|
|
gEfiLockBoxProtocolGuid ## CONSUMES
|
|
gEdkiiVariablePolicyProtocolGuid ## CONSUMES
|
|
|
|
[Guids]
|
|
gEfiEventExitBootServicesGuid ## CONSUMES ## Event
|
|
## SOMETIMES_CONSUMES ## HOB
|
|
## SOMETIMES_CONSUMES ## Variable:L"FirmwarePerformance"
|
|
## PRODUCES ## Variable:L"FirmwarePerformance"
|
|
## SOMETIMES_CONSUMES ## UNDEFINED # Used to do smm communication
|
|
## SOMETIMES_CONSUMES ## UNDEFINED # StatusCode Data
|
|
gEfiFirmwarePerformanceGuid
|
|
gEdkiiFpdtExtendedFirmwarePerformanceGuid ## SOMETIMES_CONSUMES ## UNDEFINED # StatusCode Data
|
|
gFirmwarePerformanceS3PointerGuid ## PRODUCES ## UNDEFINED # SaveLockBox
|
|
gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event
|
|
|
|
[Pcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdProgressCodeOsLoaderLoad ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdProgressCodeOsLoaderStart ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemTableId ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemRevision ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision ## CONSUMES
|
|
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES
|
|
|
|
[FeaturePcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwarePerformanceDataTableS3Support ## CONSUMES
|
|
|
|
[Depex]
|
|
gEfiRscHandlerProtocolGuid
|
|
|
|
[UserExtensions.TianoCore."ExtraFiles"]
|
|
FirmwarePerformanceDxeExtra.uni
|