From 5a1f324d946cb1be2dc1226752b1965d6633232f Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Mon, 18 Aug 2014 23:03:30 +0000 Subject: [PATCH] UefiCpuPkg: Support building VTF0 ResetVector during the EDK II build Using NASM we build VTF0 as part of the EDK II build process. v2: * Use EDK II extension of .nasmb rather than .nasmbin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen Reviewed-by: Laszlo Ersek Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15821 6f19259b-4bc3-4df7-8a09-765794883524 --- UefiCpuPkg/ResetVector/Vtf0/Build.py | 2 +- UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 32 +++++++++++++++++++ .../Vtf0/{ResetVectorCode.asm => Vtf0.nasmb} | 21 +++++++++--- 3 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf rename UefiCpuPkg/ResetVector/Vtf0/{ResetVectorCode.asm => Vtf0.nasmb} (76%) diff --git a/UefiCpuPkg/ResetVector/Vtf0/Build.py b/UefiCpuPkg/ResetVector/Vtf0/Build.py index 826cde0de6..a645c371b9 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Build.py +++ b/UefiCpuPkg/ResetVector/Vtf0/Build.py @@ -36,7 +36,7 @@ for arch in ('ia32', 'x64'): '-D', 'ARCH_%s' % arch.upper(), '-D', 'DEBUG_%s' % str(debugType).upper(), '-o', output, - 'ResetVectorCode.asm', + 'Vtf0.nasmb', ) ret = RunCommand(commandLine) print '\tASM\t' + output diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf new file mode 100644 index 0000000000..fe2d9b3ce5 --- /dev/null +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf @@ -0,0 +1,32 @@ +## @file +# Reset Vector +# +# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = ResetVector + FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 + MODULE_TYPE = SEC + VERSION_STRING = 1.1 + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + Vtf0.nasmb + +[Packages] + MdePkg/MdePkg.dec diff --git a/UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb similarity index 76% rename from UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm rename to UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb index 052c821f21..31ac06ae4a 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb @@ -13,6 +13,21 @@ ; ;------------------------------------------------------------------------------ +; +; If neither ARCH_IA32 nor ARCH_X64 are defined, then try to include +; Base.h to use the C pre-processor to determine the architecture. +; +%ifndef ARCH_IA32 + %ifndef ARCH_X64 + #include + #if defined (MDE_CPU_IA32) + %define ARCH_IA32 + #elif defined (MDE_CPU_X64) + %define ARCH_X64 + #endif + %endif +%endif + %ifdef ARCH_IA32 %ifdef ARCH_X64 %error "Only one of ARCH_IA32 or ARCH_X64 can be defined." @@ -26,14 +41,12 @@ %include "PostCodes.inc" -%ifdef DEBUG_NONE - %include "DebugDisabled.asm" -%elifdef DEBUG_PORT80 +%ifdef DEBUG_PORT80 %include "Port80Debug.asm" %elifdef DEBUG_SERIAL %include "SerialDebug.asm" %else - %error "No debug type was specified." + %include "DebugDisabled.asm" %endif %include "Ia32/SearchForBfvBase.asm" -- 2.39.2