mirror of https://github.com/acidanthera/audk.git
OvmfPkg: clone SmmCpuPlatformHookLib from UefiCpuPkg
Clone the Null instance of SmmCpuPlatformHookLib from UefiCpuPkg to OvmfPkg. In this patch, customize the lib instance only with the following no-op steps: - Replace Null/NULL references in filenames and comments with Qemu/QEMU references. - Update copyright notices. - Clean up and rewrap comment blocks. - Update INF_VERSION to the latest INF spec version (1.29). - Update FILE_GUID. - Drop the UNI file. This patch is best reviewed with: $ git show --find-copies=43 --find-copies-harder Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Igor Mammedov <imammedo@redhat.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Cc: Philippe Mathieu-Daudé <philmd@redhat.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1512 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20200226221156.29589-4-lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com> Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
This commit is contained in:
parent
90e11edd16
commit
c69f6406b9
|
@ -0,0 +1,108 @@
|
|||
/** @file
|
||||
SMM CPU Platform Hook library instance for QEMU.
|
||||
|
||||
Copyright (c) 2020, Red Hat, Inc.
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
#include <PiSmm.h>
|
||||
#include <Library/SmmCpuPlatformHookLib.h>
|
||||
|
||||
/**
|
||||
Checks if platform produces a valid SMI.
|
||||
|
||||
This function checks if platform produces a valid SMI. This function is
|
||||
called at SMM entry to detect if this is a spurious SMI. This function
|
||||
must be implemented in an MP safe way because it is called by multiple CPU
|
||||
threads.
|
||||
|
||||
@retval TRUE There is a valid SMI
|
||||
@retval FALSE There is no valid SMI
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
PlatformValidSmi (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
Clears platform top level SMI status bit.
|
||||
|
||||
This function clears platform top level SMI status bit.
|
||||
|
||||
@retval TRUE The platform top level SMI status is cleared.
|
||||
@retval FALSE The platform top level SMI status cannot be
|
||||
cleared.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
ClearTopLevelSmiStatus (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
Performs platform specific way of SMM BSP election.
|
||||
|
||||
This function performs platform specific way of SMM BSP election.
|
||||
|
||||
@param IsBsp Output parameter. TRUE: the CPU this function
|
||||
executes on is elected to be the SMM BSP. FALSE:
|
||||
the CPU this function executes on is to be SMM AP.
|
||||
|
||||
@retval EFI_SUCCESS The function executes successfully.
|
||||
@retval EFI_NOT_READY The function does not determine whether this CPU
|
||||
should be BSP or AP. This may occur if hardware
|
||||
init sequence to enable the determination is yet to
|
||||
be done, or the function chooses not to do BSP
|
||||
election and will let SMM CPU driver to use its
|
||||
default BSP election process.
|
||||
@retval EFI_DEVICE_ERROR The function cannot determine whether this CPU
|
||||
should be BSP or AP due to hardware error.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PlatformSmmBspElection (
|
||||
OUT BOOLEAN *IsBsp
|
||||
)
|
||||
{
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
|
||||
/**
|
||||
Get platform page table attribute.
|
||||
|
||||
This function gets page table attribute of platform.
|
||||
|
||||
@param Address Input parameter. Obtain the page table entries
|
||||
attribute on this address.
|
||||
@param PageSize Output parameter. The size of the page.
|
||||
@param NumOfPages Output parameter. Number of page.
|
||||
@param PageAttribute Output parameter. Paging Attributes (WB, UC, etc).
|
||||
|
||||
@retval EFI_SUCCESS The platform page table attribute from the address
|
||||
is determined.
|
||||
@retval EFI_UNSUPPORTED The platform does not support getting page table
|
||||
attribute for the address.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GetPlatformPageTableAttribute (
|
||||
IN UINT64 Address,
|
||||
IN OUT SMM_PAGE_SIZE_TYPE *PageSize,
|
||||
IN OUT UINTN *NumOfPages,
|
||||
IN OUT UINTN *PageAttribute
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
## @file
|
||||
# SMM CPU Platform Hook library instance for QEMU.
|
||||
#
|
||||
# Copyright (c) 2020, Red Hat, Inc.
|
||||
# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 1.29
|
||||
BASE_NAME = SmmCpuPlatformHookLibQemu
|
||||
FILE_GUID = 154D6D26-54B8-45BC-BA3A-CBAA20C02A6A
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = SmmCpuPlatformHookLib
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build
|
||||
# tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64
|
||||
#
|
||||
|
||||
[Sources]
|
||||
SmmCpuPlatformHookLibQemu.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
UefiCpuPkg/UefiCpuPkg.dec
|
|
@ -887,7 +887,7 @@
|
|||
}
|
||||
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
|
||||
<LibraryClasses>
|
||||
SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
|
||||
SmmCpuPlatformHookLib|OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf
|
||||
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
||||
}
|
||||
|
||||
|
|
|
@ -900,7 +900,7 @@
|
|||
}
|
||||
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
|
||||
<LibraryClasses>
|
||||
SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
|
||||
SmmCpuPlatformHookLib|OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf
|
||||
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
||||
}
|
||||
|
||||
|
|
|
@ -898,7 +898,7 @@
|
|||
}
|
||||
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
|
||||
<LibraryClasses>
|
||||
SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
|
||||
SmmCpuPlatformHookLib|OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf
|
||||
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue