BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2340 Commit2db0ccc2d7
("UefiCpuPkg: Update CpuExceptionHandlerLib pass XCODE5 tool chain") introduced binary patching into the exception handling support. CPU exception handling is allowed during SEC and this results in binary patching of flash, which should not be done. Separate the changes from commit2db0ccc2d7
into an XCODE5 toolchain specific file, Xcode5ExceptionHandlerAsm.nasm, and create a new SEC INF file for the XCODE5 version of CpuExceptionHandlerLib. Since binary patching is allowed when running outside of flash, switch the Dxe, Pei and Smm versions of the CpuExceptionHandlerLib over to use the Xcode5ExceptionHandlerAsm.nasm file to retain current functionality. Cc: Eric Dong <eric.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Message-Id: <9075570487616c731033a5738f6a444a15d71b74.1588856809.git.thomas.lendacky@amd.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com>
56 lines
1.6 KiB
INI
56 lines
1.6 KiB
INI
## @file
|
|
# CPU Exception Handler library instance for SEC/PEI modules.
|
|
#
|
|
# Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved.<BR>
|
|
# Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
# This is the XCODE5 variant of the SEC/PEI CpuExceptionHandlerLib. This
|
|
# variant performs binary patching to fix up addresses that allow the
|
|
# XCODE5 toolchain to be used.
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = Xcode5SecPeiCpuExceptionHandlerLib
|
|
MODULE_UNI_FILE = Xcode5SecPeiCpuExceptionHandlerLib.uni
|
|
FILE_GUID = 49C481AF-1621-42F3-8FA1-27C64143E304
|
|
MODULE_TYPE = PEIM
|
|
VERSION_STRING = 1.1
|
|
LIBRARY_CLASS = CpuExceptionHandlerLib|SEC PEI_CORE PEIM
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64
|
|
#
|
|
|
|
[Sources.Ia32]
|
|
Ia32/ExceptionHandlerAsm.nasm
|
|
Ia32/ExceptionTssEntryAsm.nasm
|
|
Ia32/ArchExceptionHandler.c
|
|
Ia32/ArchInterruptDefs.h
|
|
|
|
[Sources.X64]
|
|
X64/Xcode5ExceptionHandlerAsm.nasm
|
|
X64/ArchExceptionHandler.c
|
|
X64/ArchInterruptDefs.h
|
|
|
|
[Sources.common]
|
|
CpuExceptionCommon.h
|
|
CpuExceptionCommon.c
|
|
SecPeiCpuException.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
UefiCpuPkg/UefiCpuPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
SerialPortLib
|
|
PrintLib
|
|
LocalApicLib
|
|
PeCoffGetEntryPointLib
|