On 2014-07-23 13:44:55, Kinney, Michael D wrote: > Can we get the NASM related build rules to add the include paths, > instead of having to use [BuildOptions] in INF?
Yes, I should look at if the build rule can add includes. Unfortunately, this won't help this situation. Well, unless we think it is a good idea to add UefiCpuPkg/ResetVector/Vtf0 to UefiCpuPkg's include paths. I don't think this is a good idea. But, I do have another idea on how to clean this up: Add a new UefiCpuPkg/ResetVector/Vtf0 build type which reads a PCD and assumes memory 'just works' at that address. It would build the page tables there, like OvmfPkg/ResetVector/Ia32/PageTables64.asm, but at the PCD specified address. Then we can remove OvmfPkg/ResetVector. I didn't yet get a chance to verify if Fixed PCDs can be used in NASM builds, but I think it might be able to work since we run the C pre-processor to generate the NASM input file. By the way, the current OvmfPkg/ResetVector does depend on UefiCpuPkg/ResetVector/Vtf0, so we aren't adding a new dependency here. So, would it be okay to proceed with this version, but to try to fix the issue separately? -Jordan > -----Original Message----- > From: Jordan Justen [mailto:jordan.l.jus...@intel.com] > Sent: Wednesday, July 23, 2014 1:18 PM > To: edk2-devel@lists.sourceforge.net > Cc: edk2-buildtools-de...@lists.sourceforge.net > Subject: [edk2-buildtools] [PATCH v2 4/7] OvmfPkg: Support building OVMF's > ResetVector during the EDK II build > > Using NASM we build OVMF's ResetVector 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 <jordan.l.jus...@intel.com> > --- > OvmfPkg/ResetVector/ResetVector.inf | 37 ++++++++++++++++++++ > OvmfPkg/ResetVector/ResetVector.nasmb | 66 > +++++++++++++++++++++++++++++++++++ > 2 files changed, 103 insertions(+) > create mode 100644 OvmfPkg/ResetVector/ResetVector.inf > create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmb > > diff --git a/OvmfPkg/ResetVector/ResetVector.inf > b/OvmfPkg/ResetVector/ResetVector.inf > new file mode 100644 > index 0000000..46610d2 > --- /dev/null > +++ b/OvmfPkg/ResetVector/ResetVector.inf > @@ -0,0 +1,37 @@ > +## @file > +# Reset Vector > +# > +# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> > +# > +# 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] > + ResetVector.nasmb > + > +[Packages] > + MdePkg/MdePkg.dec > + UefiCpuPkg/UefiCpuPkg.dec > + > +[BuildOptions] > + *_*_IA32_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ > + *_*_X64_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ > diff --git a/OvmfPkg/ResetVector/ResetVector.nasmb > b/OvmfPkg/ResetVector/ResetVector.nasmb > new file mode 100644 > index 0000000..31ac06a > --- /dev/null > +++ b/OvmfPkg/ResetVector/ResetVector.nasmb > @@ -0,0 +1,66 @@ > +;------------------------------------------------------------------------------ > +; @file > +; This file includes all other code files to assemble the reset vector code > +; > +; Copyright (c) 2008 - 2013, Intel Corporation. All rights reserved.<BR> > +; 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. > +; > +;------------------------------------------------------------------------------ > + > +; > +; 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 <Base.h> > + #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." > + %endif > +%elifdef ARCH_X64 > +%else > + %error "Either ARCH_IA32 or ARCH_X64 must be defined." > +%endif > + > +%include "CommonMacros.inc" > + > +%include "PostCodes.inc" > + > +%ifdef DEBUG_PORT80 > + %include "Port80Debug.asm" > +%elifdef DEBUG_SERIAL > + %include "SerialDebug.asm" > +%else > + %include "DebugDisabled.asm" > +%endif > + > +%include "Ia32/SearchForBfvBase.asm" > +%include "Ia32/SearchForSecEntry.asm" > + > +%ifdef ARCH_X64 > +%include "Ia32/Flat32ToFlat64.asm" > +%include "Ia32/PageTables64.asm" > +%endif > + > +%include "Ia16/Real16ToFlat32.asm" > +%include "Ia16/Init16.asm" > + > +%include "Main.asm" > + > +%include "Ia16/ResetVectorVtf0.asm" > + > -- > 2.0.1 > > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > edk2-buildtools-devel mailing list > edk2-buildtools-de...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > edk2-buildtools-devel mailing list > edk2-buildtools-de...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel
signature.asc
Description: signature
------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel