mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-29 08:34:07 +02:00
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 {
|
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
|
||||||
<LibraryClasses>
|
<LibraryClasses>
|
||||||
SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
|
SmmCpuPlatformHookLib|OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf
|
||||||
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -900,7 +900,7 @@
|
|||||||
}
|
}
|
||||||
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
|
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
|
||||||
<LibraryClasses>
|
<LibraryClasses>
|
||||||
SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
|
SmmCpuPlatformHookLib|OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf
|
||||||
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -898,7 +898,7 @@
|
|||||||
}
|
}
|
||||||
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
|
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
|
||||||
<LibraryClasses>
|
<LibraryClasses>
|
||||||
SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
|
SmmCpuPlatformHookLib|OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf
|
||||||
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user