You can subscribe to this list here.
2010 |
Jan
(1) |
Feb
(2) |
Mar
(12) |
Apr
(3) |
May
(2) |
Jun
(16) |
Jul
(24) |
Aug
(3) |
Sep
(9) |
Oct
(9) |
Nov
(1) |
Dec
(10) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(8) |
Feb
(4) |
Mar
(6) |
Apr
(9) |
May
(4) |
Jun
(32) |
Jul
(14) |
Aug
|
Sep
(24) |
Oct
(26) |
Nov
(34) |
Dec
(15) |
2012 |
Jan
(16) |
Feb
(27) |
Mar
(44) |
Apr
(10) |
May
(8) |
Jun
(15) |
Jul
(10) |
Aug
(15) |
Sep
(12) |
Oct
(4) |
Nov
(3) |
Dec
(16) |
2013 |
Jan
(8) |
Feb
(4) |
Mar
(8) |
Apr
(7) |
May
(22) |
Jun
(17) |
Jul
(18) |
Aug
(31) |
Sep
(19) |
Oct
(16) |
Nov
(26) |
Dec
(11) |
2014 |
Jan
(21) |
Feb
(23) |
Mar
(17) |
Apr
(19) |
May
(39) |
Jun
(33) |
Jul
(86) |
Aug
(11) |
Sep
(5) |
Oct
(19) |
Nov
(1) |
Dec
(2) |
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(6) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Piotr K. <pie...@gm...> - 2014-06-08 23:01:48
|
Hello, I found that mRunStatus is used uninitialized in VfrCompiler.cpp:56. This cause problems at least for some versions of g++ (4.8.3-3, 4.7.3-14, 4.6.4-7) on my Debian. Compilation works when mRunStatus contain some big value out of COMPILER_RUN_STATUS range (this happens when I use i.e. g++ 4.7.2-5), but if it contain for example STATUS_FAILED VfrCompiler fails. Other thing is that VfrCompiler.cpp doesn't contain mRunStatus range validation. What about enabling -Wall for BaseTools ? Thanks, Piotr Król |
From: Gao, L. <lim...@in...> - 2014-05-21 15:39:26
|
Jordan: I add my comments on 3, 4, 5. -----Original Message----- From: Jordan Justen [mailto:jlj...@gm...] Sent: Wednesday, May 21, 2014 1:55 AM To: Gao, Liming Cc: edk...@li...; edk...@li... Subject: Re: [edk2-buildtools] [PATCH 0/7] Build ResetVector/VTF with NASM during EDK II build On Tue, May 20, 2014 at 1:54 AM, Gao, Liming <lim...@in...> wrote: > Jordan: > Thanks for your great contribution. I have some comments. > 1. Which NASM version is used to verify this patch? Good point. That should be documented. For now, I recommend we choose "Nasm 2.03 or newer" which matches UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt. The OldVtf source file might be compatible with earlier versions of NASM. > 2. Nasm-to-Binary-Code-File Rule is added to compile nasm to the > binary ResetVector file. It can replace current ASM16 build rule after > ASM16 source is converted to nasmbin. Right? Yes. One goal would be to replace asm16 with a solution that works on all supported build OSs. > 3. We don't suggest to use MACRO switch in source code. > How about separate nasmbin source file for the different ARCH and DEBUG? > If so, we will use the different nasmbin source files, -D ARCH_IA32, > -D ARCH_X64, -D DEBUG_NONE, -D DEBUG_SERIAL is not required. Do you mean you prefer not to use the -D in the .inf? Or, do you mean NASM macros? We might be able to use MDEPKG_NDEBUG after this change. Maybe it is best to just disable VTF0 debug by default, but let users modify the source to enable debug for those rare cases where it is needed. Then again, for real platforms, they might like to have the port 0x80 debug support enabled by default. (This will output 16/32/64/b0/b1/f0/f1 to the post card.) What do you think? [Liming] I suggest to remove ARCH_IA32, ARCH_X64, DEBUG_NONE, DEBUG_SERIAL macro from NASM and ASM source file. The different source files can be created for the different ARCH or DEBUG. UefiCpuPkg can provide two VTF0. One is generic one without DEBUG. Another is sample one with PORT80 DEBUG. The platform developer can add their one in their platform package. > 4. I see no difference between > UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin and > OvmfPkg/ResetVector/ResetVector.nasmbin except for their INF files. So, how about keep one copy Vtf0.nasmbin, and add two VTF INF files in UefiCpuPkg. > One is DEBUG NONE, another is to support DEBUG on Serial. If so, OVMF > can directly use one from UefiCpuPkg. Hmm, I think I meant DEBUG_NONE in both places. One difference is that by having OvmfPkg/ResetVector/ResetVector.nasmbin, OvmfPkg/ResetVector/Ia32/PageTables64.asm overrides UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm. For OVMF we then assume RAM is initialized, and build page-tables in RAM, rather than in the flash device. [Liming] Here, I concern -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ BuildOption in ResetVector.inf. EDKII design doesn't allow to append -I include option to refer other module internal files, which may bring the maintain effort. If OVMF requires source files in UefiCpuPkg, I prefer to duplicate them in OvmfPkg. > 5. For OldVtf, I don't think it is good name. Normally, we use it > within SecCore driver. How about name it as BaseVtf? One of the problems with the old VTF is that as far as I know it is not spec'd. Therefore, it is challenging to give it a name. BaseVtf doesn't seem quite right. What about FixupVtf or MinimalVtf? I still think "the old" VTF is not a bad name for it, since it never has had any sort of name before and it has been around for the longest. [Liming] I prefer FixupVtf. > 6. For the binary VTF files, some platform may use them. > So, I suggest to keep them for a while, then remove them. That seems reasonable. I kind of suspected we might choose to do that. > 7. I don't see any changes in source ASM files. > Does it mean they also follow NASM syntax? This change only uses the VTF0 source files, and the new OldVtf assembly file. VTF0 has always used NASM syntax, so no change was needed there. :) Thanks, -Jordan > -----Original Message----- > From: Jordan Justen [mailto:jor...@in...] > Sent: Tuesday, May 20, 2014 5:28 AM > To: edk...@li... > Cc: edk...@li... > Subject: [edk2-buildtools] [PATCH 0/7] Build ResetVector/VTF with NASM > during EDK II build > > The first patch obviously needs to be made to edk2-buildtools/BaseTools first, and then sync'd to EDK II. > > The first 6 patches change OVMF to build VTF0 during the EDK II build process by running NASM. > > The UefiCpuPkg VTF0 patches are not ready yet, since the X64 page > tables are not being built. (They previously were built by > FixupForRawSection.py.) > > The last patch provides an implementation of the old style VTF which can be built during the EDK II build process using NASM. > > These patches are available in the 'nasm-vtf' branch of the git repo at https://github.com/jljusten/edk2. > > The web page for this branch also provides a .zip download: > https://github.com/jljusten/edk2/commits/nasm-vtf > > Jordan Justen (7): > BaseTools: Add rules to build NASM into a binary > UefiCpuPkg: Support building VTF0 ResetVector during the EDK II build > OvmfPkg: Support building OVMF's ResetVector during the EDK II build > OvmfPkg: Build OVMF ResetVector during EDK II build process > UefiCpuPkg VTF0: Remove pre-built binaries > OvmfPkg/ResetVector: Remove pre-built binaries > UefiCpuPkg: Add ResetVector/OldVtf > > BaseTools/Conf/build_rule.template | 19 +++- > BaseTools/Conf/tools_def.template | 8 +- > OvmfPkg/OvmfPkgIa32.dsc | 2 + > OvmfPkg/OvmfPkgIa32.fdf | 6 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 2 + > OvmfPkg/OvmfPkgIa32X64.fdf | 6 +- > OvmfPkg/OvmfPkgX64.dsc | 2 + > OvmfPkg/OvmfPkgX64.fdf | 6 +- > OvmfPkg/ResetVector/Bin/ResetVector.inf | 29 ------ > OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 0 bytes > OvmfPkg/ResetVector/Build.py | 58 ----------- > OvmfPkg/ResetVector/ResetVector.inf | 37 +++++++ > OvmfPkg/ResetVector/ResetVector.nasmbin | 53 ++++++++++ > OvmfPkg/ResetVector/Tools/FixupForRawSection.py | 26 ----- > UefiCpuPkg/ResetVector/OldVtf/Vtf.inf | 32 ++++++ > UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin | 60 +++++++++++ > .../Vtf0/Bin/ResetVector.ia32.port80.raw | Bin 516 -> 0 bytes > .../ResetVector/Vtf0/Bin/ResetVector.ia32.raw | Bin 484 -> 0 bytes > .../Vtf0/Bin/ResetVector.ia32.serial.raw | Bin 884 -> 0 bytes > UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf | 33 ------- > .../Vtf0/Bin/ResetVector.x64.port80.raw | Bin 28676 -> 0 bytes > .../ResetVector/Vtf0/Bin/ResetVector.x64.raw | Bin 28676 -> 0 bytes > .../Vtf0/Bin/ResetVector.x64.serial.raw | Bin 28676 -> 0 bytes > UefiCpuPkg/ResetVector/Vtf0/Build.py | 53 ---------- > .../ResetVector/Vtf0/Tools/FixupForRawSection.py | 110 --------------------- > UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 36 +++++++ > UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin | 53 ++++++++++ > 27 files changed, 311 insertions(+), 320 deletions(-) delete mode > 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf > delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw > delete mode 100644 OvmfPkg/ResetVector/Build.py create mode 100644 > OvmfPkg/ResetVector/ResetVector.inf > create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmbin > delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py > create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.inf > create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin > delete mode 100644 > UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw > delete mode 100644 > UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw > delete mode 100644 > UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.serial.raw > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf > delete mode 100644 > UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.port80.raw > delete mode 100644 > UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.raw > delete mode 100644 > UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Build.py > delete mode 100644 > UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py > create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf > create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin > > -- > 2.0.0.rc2 > > > ---------------------------------------------------------------------- > -------- "Accelerate Dev Cycles with Automated Cross-Browser Testing - > For FREE Instantly run your Selenium tests across 300+ browser/OS > combos. > Get unparalleled scalability from the best Selenium testing platform > available Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel > > ---------------------------------------------------------------------- > -------- "Accelerate Dev Cycles with Automated Cross-Browser Testing - > For FREE Instantly run your Selenium tests across 300+ browser/OS > combos. > Get unparalleled scalability from the best Selenium testing platform > available Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel |
From: Jordan J. <jlj...@gm...> - 2014-05-20 21:35:34
|
On Tue, May 20, 2014 at 12:01 PM, Andrew Fish <af...@ap...> wrote: > On May 20, 2014, at 10:55 AM, Jordan Justen <jlj...@gm...> wrote: >> Then again, for real platforms, they might like to have the port 0x80 >> debug support enabled by default. (This will output >> 16/32/64/b0/b1/f0/f1 to the post card.) >> >> What do you think? > > Assuming that port 0x80 exists is probably not a good long term strategy. > It is getting harder and harder to get ISA/LPC data out of a system > (assuming the product ever supported that feature). Serial debug prints are > probably a better long term solution. I agree. I definitely think there should be a 'no debug' version readily available which doesn't have any chipset hardware assumptions. My question is how easy should we make it for a platform to choose to always use a port-80 debug version. (Maybe by pointing at a port 80 .inf.) I guess I'm thinking there is most likely not a need for that, and that is what this patch series currently does. > I know the virtual chipsets are ancient, but the code can be used as an > example for current systems. QEMU doesn't really support port 80, so OVMF wouldn't be the target anyhow. Regarding ancient hardware ... yeah ... but, QEMU supports Q35 now, so we're at least in the same millennium. :) (Except, OVMF doesn't support this...) VTF0 has been used on at least one recent system (though probably not much more than that :). And I've used it on a platform without port 80 support which may have gotten very angry if a write to port 80 occurred. :) I guess my point is that it doesn't need to be an 'example', because it can be used directly by current systems. -Jordan |
From: Laszlo E. <le...@re...> - 2014-05-20 19:16:39
|
On 05/20/14 20:56, Jordan Justen wrote: > On Tue, May 20, 2014 at 12:41 AM, Laszlo Ersek <le...@re...> wrote: >> On 05/19/14 23:27, Jordan Justen wrote: >>> Contributed-under: TianoCore Contribution Agreement 1.0 >>> Signed-off-by: Jordan Justen <jor...@in...> >>> --- >>> BaseTools/Conf/build_rule.template | 19 ++++++++++++++++++- >>> BaseTools/Conf/tools_def.template | 8 +++++++- >>> 2 files changed, 25 insertions(+), 2 deletions(-) >>> >>> diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template >>> index 6537108..fc9e501 100644 >>> --- a/BaseTools/Conf/build_rule.template >>> +++ b/BaseTools/Conf/build_rule.template >>> @@ -1,5 +1,5 @@ >>> # >>> -# Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR> >>> +# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR> >>> # Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> >>> # This program and the accompanying materials >>> # are licensed and made available under the terms and conditions of the BSD License >>> @@ -439,6 +439,23 @@ >>> otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst} >>> >>> >>> +[Nasm-to-Binary-Code-File] >>> + <InputFile> >>> + ?.nasmbin, ?.NASMBIN >>> + >>> + <ExtraDependency> >>> + $(MAKE_FILE) >>> + >>> + <OutputFile> >>> + $(OUTPUT_DIR)(+)${s_base}.bin >>> + >>> + <Command> >>> + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i >>> + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i >>> + cd $(OUTPUT_DIR)(+)${s_dir} >>> + "$(NASM)" -I${s_path}(+) $(NASMBIN_FLAGS) -o $dst ${d_path}(+)${s_base}.iii >>> + >>> + >>> [Microcode-File.USER_DEFINED, Microcode-File.Microcode] >>> <InputFile> >>> ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc >>> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template >>> index a68218d..0915033 100644 >>> --- a/BaseTools/Conf/tools_def.template >>> +++ b/BaseTools/Conf/tools_def.template >>> @@ -1,5 +1,5 @@ >>> # >>> -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> >>> +# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> >>> # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> >>> # Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> >>> # >>> @@ -5912,3 +5912,9 @@ RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC >>> ################## >>> *_*_*_VPDTOOL_PATH = BPDG >>> *_*_*_VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08 >>> + >>> +################## >>> +# NASM tool definitions >>> +################## >>> +*_*_*_NASM_PATH = nasm >>> +*_*_*_NASMBIN_FLAGS = -f bin >>> >> >> nitpick (not important): can you just call the suffix .nasm? >> >> ".nasmbin" seems to imply it's a binary file. > > nasmbin uses nasm -f bin to produce a binary file. > > I would think .nasm might be more useful for running nasm to produce > an object file for linking to driver code. > > I'm open to other suggestions. I had also considered .nasm2bin, .n2b and .a2b... Aaah I see. You encode the nasm target ("output file format") in the source file suffix, because the suffix selects the build rule, and we might want to use nasm for different outputs. Makes sense. No need to change it as far as I'm concerned. The patch seems sane to me (although I'm not a BaseTools expert :)), so take it FWIW: Reviewed-by: Laszlo Ersek <le...@re...> Thanks Laszlo |
From: Laszlo E. <le...@re...> - 2014-05-20 19:11:58
|
On 05/20/14 20:08, Jordan Justen wrote: > On Tue, May 20, 2014 at 2:01 AM, Laszlo Ersek <le...@re...> wrote: >> Three questions: >> >> On 05/19/14 23:27, Jordan Justen wrote: >>> Contributed-under: TianoCore Contribution Agreement 1.0 >>> Signed-off-by: Jordan Justen <jor...@in...> >>> --- >>> OvmfPkg/OvmfPkgIa32.dsc | 2 ++ >>> OvmfPkg/OvmfPkgIa32.fdf | 6 +++--- >>> OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ >>> OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++--- >>> OvmfPkg/OvmfPkgX64.dsc | 2 ++ >>> OvmfPkg/OvmfPkgX64.fdf | 6 +++--- >>> 6 files changed, 15 insertions(+), 9 deletions(-) >>> >>> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc >>> index f7064b7..1ceb909 100644 >>> --- a/OvmfPkg/OvmfPkgIa32.dsc >>> +++ b/OvmfPkg/OvmfPkgIa32.dsc >>> @@ -337,6 +337,8 @@ >>> # >>> ################################################################################ >>> [Components] >>> + OvmfPkg/ResetVector/ResetVector.inf >>> + >>> # >>> # SEC Phase modules >>> # >>> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf >>> index 76b868d..411e9de 100644 >>> --- a/OvmfPkg/OvmfPkgIa32.fdf >>> +++ b/OvmfPkg/OvmfPkgIa32.fdf >>> @@ -1,7 +1,7 @@ >>> ## @file >>> # Open Virtual Machine Firmware: FDF >>> # >>> -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> >>> +# 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 >>> @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE >>> # >>> INF OvmfPkg/Sec/SecMain.inf >>> >>> -INF RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf >>> +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf >>> >>> ################################################################################ >>> [FV.PEIFV] >>> @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { >>> >>> [Rule.Common.SEC.RESET_VECTOR] >>> FILE RAW = $(NAMED_GUID) { >>> - RAW RAW |.raw >>> + RAW BIN Align = 16 |.bin >>> } >> >> Ia32, before the patch: >> (1) "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf" said >> >> [Binaries.Ia32] >> RAW|ResetVector.ia32.raw|* >> >> (2) "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" was prepared >> with "UefiCpuPkg/ResetVector/Vtf0/Build.py". >> >> (3) Which invoked "nasm" on >> "UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm", and fixed up the >> output with "UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py". >> >> For Ia32, the fixup means padding with a NOP slide at the front, so that >> the resultant file size is 4, modulo 8. >> >> (4) The "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" file was >> included with the RESET_VECTOR rule: >> - output file type RAW: binary data, >> - NAMED_GUID: uses FILE_GUID from INF/[defines], ie. >> EFI_FFS_VOLUME_TOP_FILE_GUID >> - we have one leaf section pattern, with: >> - section type: RAW >> - input file type: RAW >> - options: none >> - extension: .raw -- one leaf section is instantiated for each .raw >> file listed in the INF file that is connected to the rule. >> "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf" --> >> "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" >> >> After the patch: >> (1) "OvmfPkg/ResetVector/ResetVector.inf" (from patch 3) says >> >> [Sources] >> ResetVector.nasmbin >> >> (2), (3) for which the build rule (from patch 1) designates >> "OvmfPkg/ResetVector/ResetVector.bin" as output file. >> >> The source is "OvmfPkg/ResetVector/ResetVector.nasmbin", which is >> identical to "UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm". OK. >> >> The output is not fixed up with FixupForRawSection.py. >> >> (4) "OvmfPkg/ResetVector/ResetVector.bin" is included with the new >> RESET_VECTOR rule: >> - output file type RAW: binary data; unchanged, good. >> - NAMED_GUID: uses FILE_GUID from INF/[defines], ie. >> EFI_FFS_VOLUME_TOP_FILE_GUID; unchanged, good. >> - we have one leaf section pattern, with: >> - section type: RAW >> - input file type: BIN -- changed. >> - options: Align = 16; changed >> - extension: .bin -- one leaf section is instantiated for each .bin >> file listed in the INF file that is connected to the rule. >> "OvmfPkg/ResetVector/ResetVector.inf" --> >> "OvmfPkg/ResetVector/ResetVector.bin" >> >> Questions: >> >> Q1: Why is the input file type in the leaf section pattern changed from >> RAW to BIN? The FDF spec doesn't seem to explain the BIN file type. Are >> we doing this only to match the file suffix ".bin"? > > I think I was matching what I saw another platform do when building > the VTF during the EDK II build. > > I think RAW could still work. > >> Q2: We seem to replace the NOP slide at the front (which ensures that >> the file going into the section has size 4 modulo 8), with an Alignment >> of 16. Why does this work? > > Hmm, I think the 4 modulo 8 was that Fv's want sections to start with > 8 alignment, and there is a 4 byte section header. Therefore we had to > pad the file so GenFv could be happy putting it (properly aligned) at > the end of the FV. > > But, I think all we really needed was to ask for alignment of the > binary, and GenFv could handle all that for us. Maybe the old way was > going through more effort than required. > >>> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc >>> index 26d1132..66a4bc3 100644 >>> --- a/OvmfPkg/OvmfPkgIa32X64.dsc >>> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc >>> @@ -343,6 +343,8 @@ >>> # >>> ################################################################################ >>> [Components.IA32] >>> + OvmfPkg/ResetVector/ResetVector.inf >>> + >>> # >>> # SEC Phase modules >>> # >>> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf >>> index e037b72..c2ff257 100644 >>> --- a/OvmfPkg/OvmfPkgIa32X64.fdf >>> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf >>> @@ -1,7 +1,7 @@ >>> ## @file >>> # Open Virtual Machine Firmware: FDF >>> # >>> -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> >>> +# 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 >>> @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE >>> # >>> INF OvmfPkg/Sec/SecMain.inf >>> >>> -INF RuleOverride=RESET_VECTOR USE = IA32 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf >>> +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf >>> >>> ################################################################################ >>> [FV.PEIFV] >>> @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { >>> >>> [Rule.Common.SEC.RESET_VECTOR] >>> FILE RAW = $(NAMED_GUID) { >>> - RAW RAW |.raw >>> + RAW BIN Align = 16 |.bin >>> } >> >> Same questions here, plus another one: >> >> Q3: Why is it safe to drop "USE = IA32" in the above? >> >> (I don't think it is, but I could be wrong.) > > Yikes, I forgot to test this. (I need to make OvmfPkg/build.sh support > the IA32+X64 combination, so it is easier to test. :) > > But, I think since the dsc references the .inf in an IA32 area, then I > think the FDF knows to use IA32. If you get a good test result, please post it, and then I'll add my R-b. I'm OK with answers 1 and 2. Thanks! Laszlo |
From: Andrew F. <af...@ap...> - 2014-05-20 19:02:06
|
On May 20, 2014, at 10:55 AM, Jordan Justen <jlj...@gm...> wrote: > Then again, for real platforms, they might like to have the port 0x80 > debug support enabled by default. (This will output > 16/32/64/b0/b1/f0/f1 to the post card.) > > What do you think? Assuming that port 0x80 exists is probably not a good long term strategy. It is getting harder and harder to get ISA/LPC data out of a system (assuming the product ever supported that feature). Serial debug prints are probably a better long term solution. I know the virtual chipsets are ancient, but the code can be used as an example for current systems. Thanks, Andrew Fish |
From: Jordan J. <jlj...@gm...> - 2014-05-20 18:56:31
|
On Tue, May 20, 2014 at 12:41 AM, Laszlo Ersek <le...@re...> wrote: > On 05/19/14 23:27, Jordan Justen wrote: >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Jordan Justen <jor...@in...> >> --- >> BaseTools/Conf/build_rule.template | 19 ++++++++++++++++++- >> BaseTools/Conf/tools_def.template | 8 +++++++- >> 2 files changed, 25 insertions(+), 2 deletions(-) >> >> diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template >> index 6537108..fc9e501 100644 >> --- a/BaseTools/Conf/build_rule.template >> +++ b/BaseTools/Conf/build_rule.template >> @@ -1,5 +1,5 @@ >> # >> -# Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR> >> +# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR> >> # Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> >> # This program and the accompanying materials >> # are licensed and made available under the terms and conditions of the BSD License >> @@ -439,6 +439,23 @@ >> otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst} >> >> >> +[Nasm-to-Binary-Code-File] >> + <InputFile> >> + ?.nasmbin, ?.NASMBIN >> + >> + <ExtraDependency> >> + $(MAKE_FILE) >> + >> + <OutputFile> >> + $(OUTPUT_DIR)(+)${s_base}.bin >> + >> + <Command> >> + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i >> + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i >> + cd $(OUTPUT_DIR)(+)${s_dir} >> + "$(NASM)" -I${s_path}(+) $(NASMBIN_FLAGS) -o $dst ${d_path}(+)${s_base}.iii >> + >> + >> [Microcode-File.USER_DEFINED, Microcode-File.Microcode] >> <InputFile> >> ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc >> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template >> index a68218d..0915033 100644 >> --- a/BaseTools/Conf/tools_def.template >> +++ b/BaseTools/Conf/tools_def.template >> @@ -1,5 +1,5 @@ >> # >> -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> >> +# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> >> # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> >> # Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> >> # >> @@ -5912,3 +5912,9 @@ RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC >> ################## >> *_*_*_VPDTOOL_PATH = BPDG >> *_*_*_VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08 >> + >> +################## >> +# NASM tool definitions >> +################## >> +*_*_*_NASM_PATH = nasm >> +*_*_*_NASMBIN_FLAGS = -f bin >> > > nitpick (not important): can you just call the suffix .nasm? > > ".nasmbin" seems to imply it's a binary file. nasmbin uses nasm -f bin to produce a binary file. I would think .nasm might be more useful for running nasm to produce an object file for linking to driver code. I'm open to other suggestions. I had also considered .nasm2bin, .n2b and .a2b... -Jordan |
From: Jordan J. <jlj...@gm...> - 2014-05-20 18:08:32
|
On Tue, May 20, 2014 at 2:01 AM, Laszlo Ersek <le...@re...> wrote: > Three questions: > > On 05/19/14 23:27, Jordan Justen wrote: >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Jordan Justen <jor...@in...> >> --- >> OvmfPkg/OvmfPkgIa32.dsc | 2 ++ >> OvmfPkg/OvmfPkgIa32.fdf | 6 +++--- >> OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ >> OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++--- >> OvmfPkg/OvmfPkgX64.dsc | 2 ++ >> OvmfPkg/OvmfPkgX64.fdf | 6 +++--- >> 6 files changed, 15 insertions(+), 9 deletions(-) >> >> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc >> index f7064b7..1ceb909 100644 >> --- a/OvmfPkg/OvmfPkgIa32.dsc >> +++ b/OvmfPkg/OvmfPkgIa32.dsc >> @@ -337,6 +337,8 @@ >> # >> ################################################################################ >> [Components] >> + OvmfPkg/ResetVector/ResetVector.inf >> + >> # >> # SEC Phase modules >> # >> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf >> index 76b868d..411e9de 100644 >> --- a/OvmfPkg/OvmfPkgIa32.fdf >> +++ b/OvmfPkg/OvmfPkgIa32.fdf >> @@ -1,7 +1,7 @@ >> ## @file >> # Open Virtual Machine Firmware: FDF >> # >> -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> >> +# 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 >> @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE >> # >> INF OvmfPkg/Sec/SecMain.inf >> >> -INF RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf >> +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf >> >> ################################################################################ >> [FV.PEIFV] >> @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { >> >> [Rule.Common.SEC.RESET_VECTOR] >> FILE RAW = $(NAMED_GUID) { >> - RAW RAW |.raw >> + RAW BIN Align = 16 |.bin >> } > > Ia32, before the patch: > (1) "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf" said > > [Binaries.Ia32] > RAW|ResetVector.ia32.raw|* > > (2) "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" was prepared > with "UefiCpuPkg/ResetVector/Vtf0/Build.py". > > (3) Which invoked "nasm" on > "UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm", and fixed up the > output with "UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py". > > For Ia32, the fixup means padding with a NOP slide at the front, so that > the resultant file size is 4, modulo 8. > > (4) The "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" file was > included with the RESET_VECTOR rule: > - output file type RAW: binary data, > - NAMED_GUID: uses FILE_GUID from INF/[defines], ie. > EFI_FFS_VOLUME_TOP_FILE_GUID > - we have one leaf section pattern, with: > - section type: RAW > - input file type: RAW > - options: none > - extension: .raw -- one leaf section is instantiated for each .raw > file listed in the INF file that is connected to the rule. > "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf" --> > "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" > > After the patch: > (1) "OvmfPkg/ResetVector/ResetVector.inf" (from patch 3) says > > [Sources] > ResetVector.nasmbin > > (2), (3) for which the build rule (from patch 1) designates > "OvmfPkg/ResetVector/ResetVector.bin" as output file. > > The source is "OvmfPkg/ResetVector/ResetVector.nasmbin", which is > identical to "UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm". OK. > > The output is not fixed up with FixupForRawSection.py. > > (4) "OvmfPkg/ResetVector/ResetVector.bin" is included with the new > RESET_VECTOR rule: > - output file type RAW: binary data; unchanged, good. > - NAMED_GUID: uses FILE_GUID from INF/[defines], ie. > EFI_FFS_VOLUME_TOP_FILE_GUID; unchanged, good. > - we have one leaf section pattern, with: > - section type: RAW > - input file type: BIN -- changed. > - options: Align = 16; changed > - extension: .bin -- one leaf section is instantiated for each .bin > file listed in the INF file that is connected to the rule. > "OvmfPkg/ResetVector/ResetVector.inf" --> > "OvmfPkg/ResetVector/ResetVector.bin" > > Questions: > > Q1: Why is the input file type in the leaf section pattern changed from > RAW to BIN? The FDF spec doesn't seem to explain the BIN file type. Are > we doing this only to match the file suffix ".bin"? I think I was matching what I saw another platform do when building the VTF during the EDK II build. I think RAW could still work. > Q2: We seem to replace the NOP slide at the front (which ensures that > the file going into the section has size 4 modulo 8), with an Alignment > of 16. Why does this work? Hmm, I think the 4 modulo 8 was that Fv's want sections to start with 8 alignment, and there is a 4 byte section header. Therefore we had to pad the file so GenFv could be happy putting it (properly aligned) at the end of the FV. But, I think all we really needed was to ask for alignment of the binary, and GenFv could handle all that for us. Maybe the old way was going through more effort than required. >> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc >> index 26d1132..66a4bc3 100644 >> --- a/OvmfPkg/OvmfPkgIa32X64.dsc >> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc >> @@ -343,6 +343,8 @@ >> # >> ################################################################################ >> [Components.IA32] >> + OvmfPkg/ResetVector/ResetVector.inf >> + >> # >> # SEC Phase modules >> # >> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf >> index e037b72..c2ff257 100644 >> --- a/OvmfPkg/OvmfPkgIa32X64.fdf >> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf >> @@ -1,7 +1,7 @@ >> ## @file >> # Open Virtual Machine Firmware: FDF >> # >> -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> >> +# 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 >> @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE >> # >> INF OvmfPkg/Sec/SecMain.inf >> >> -INF RuleOverride=RESET_VECTOR USE = IA32 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf >> +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf >> >> ################################################################################ >> [FV.PEIFV] >> @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { >> >> [Rule.Common.SEC.RESET_VECTOR] >> FILE RAW = $(NAMED_GUID) { >> - RAW RAW |.raw >> + RAW BIN Align = 16 |.bin >> } > > Same questions here, plus another one: > > Q3: Why is it safe to drop "USE = IA32" in the above? > > (I don't think it is, but I could be wrong.) Yikes, I forgot to test this. (I need to make OvmfPkg/build.sh support the IA32+X64 combination, so it is easier to test. :) But, I think since the dsc references the .inf in an IA32 area, then I think the FDF knows to use IA32. -Jordan |
From: Jordan J. <jlj...@gm...> - 2014-05-20 17:55:17
|
On Tue, May 20, 2014 at 1:54 AM, Gao, Liming <lim...@in...> wrote: > Jordan: > Thanks for your great contribution. I have some comments. > 1. Which NASM version is used to verify this patch? Good point. That should be documented. For now, I recommend we choose "Nasm 2.03 or newer" which matches UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt. The OldVtf source file might be compatible with earlier versions of NASM. > 2. Nasm-to-Binary-Code-File Rule is added to compile nasm to the > binary ResetVector file. It can replace current ASM16 build rule after > ASM16 source is converted to nasmbin. Right? Yes. One goal would be to replace asm16 with a solution that works on all supported build OSs. > 3. We don't suggest to use MACRO switch in source code. > How about separate nasmbin source file for the different ARCH and DEBUG? > If so, we will use the different nasmbin source files, -D ARCH_IA32, > -D ARCH_X64, -D DEBUG_NONE, -D DEBUG_SERIAL is not required. Do you mean you prefer not to use the -D in the .inf? Or, do you mean NASM macros? We might be able to use MDEPKG_NDEBUG after this change. Maybe it is best to just disable VTF0 debug by default, but let users modify the source to enable debug for those rare cases where it is needed. Then again, for real platforms, they might like to have the port 0x80 debug support enabled by default. (This will output 16/32/64/b0/b1/f0/f1 to the post card.) What do you think? > 4. I see no difference between UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin and > OvmfPkg/ResetVector/ResetVector.nasmbin except for their INF files. So, how > about keep one copy Vtf0.nasmbin, and add two VTF INF files in UefiCpuPkg. > One is DEBUG NONE, another is to support DEBUG on Serial. If so, OVMF > can directly use one from UefiCpuPkg. Hmm, I think I meant DEBUG_NONE in both places. One difference is that by having OvmfPkg/ResetVector/ResetVector.nasmbin, OvmfPkg/ResetVector/Ia32/PageTables64.asm overrides UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm. For OVMF we then assume RAM is initialized, and build page-tables in RAM, rather than in the flash device. > 5. For OldVtf, I don't think it is good name. Normally, > we use it within SecCore driver. How about name it as BaseVtf? One of the problems with the old VTF is that as far as I know it is not spec'd. Therefore, it is challenging to give it a name. BaseVtf doesn't seem quite right. What about FixupVtf or MinimalVtf? I still think "the old" VTF is not a bad name for it, since it never has had any sort of name before and it has been around for the longest. > 6. For the binary VTF files, some platform may use them. > So, I suggest to keep them for a while, then remove them. That seems reasonable. I kind of suspected we might choose to do that. > 7. I don't see any changes in source ASM files. > Does it mean they also follow NASM syntax? This change only uses the VTF0 source files, and the new OldVtf assembly file. VTF0 has always used NASM syntax, so no change was needed there. :) Thanks, -Jordan > -----Original Message----- > From: Jordan Justen [mailto:jor...@in...] > Sent: Tuesday, May 20, 2014 5:28 AM > To: edk...@li... > Cc: edk...@li... > Subject: [edk2-buildtools] [PATCH 0/7] Build ResetVector/VTF with NASM during EDK II build > > The first patch obviously needs to be made to edk2-buildtools/BaseTools first, and then sync'd to EDK II. > > The first 6 patches change OVMF to build VTF0 during the EDK II build process by running NASM. > > The UefiCpuPkg VTF0 patches are not ready yet, since the X64 page tables are not being built. (They previously were built by > FixupForRawSection.py.) > > The last patch provides an implementation of the old style VTF which can be built during the EDK II build process using NASM. > > These patches are available in the 'nasm-vtf' branch of the git repo at https://github.com/jljusten/edk2. > > The web page for this branch also provides a .zip download: > https://github.com/jljusten/edk2/commits/nasm-vtf > > Jordan Justen (7): > BaseTools: Add rules to build NASM into a binary > UefiCpuPkg: Support building VTF0 ResetVector during the EDK II build > OvmfPkg: Support building OVMF's ResetVector during the EDK II build > OvmfPkg: Build OVMF ResetVector during EDK II build process > UefiCpuPkg VTF0: Remove pre-built binaries > OvmfPkg/ResetVector: Remove pre-built binaries > UefiCpuPkg: Add ResetVector/OldVtf > > BaseTools/Conf/build_rule.template | 19 +++- > BaseTools/Conf/tools_def.template | 8 +- > OvmfPkg/OvmfPkgIa32.dsc | 2 + > OvmfPkg/OvmfPkgIa32.fdf | 6 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 2 + > OvmfPkg/OvmfPkgIa32X64.fdf | 6 +- > OvmfPkg/OvmfPkgX64.dsc | 2 + > OvmfPkg/OvmfPkgX64.fdf | 6 +- > OvmfPkg/ResetVector/Bin/ResetVector.inf | 29 ------ > OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 0 bytes > OvmfPkg/ResetVector/Build.py | 58 ----------- > OvmfPkg/ResetVector/ResetVector.inf | 37 +++++++ > OvmfPkg/ResetVector/ResetVector.nasmbin | 53 ++++++++++ > OvmfPkg/ResetVector/Tools/FixupForRawSection.py | 26 ----- > UefiCpuPkg/ResetVector/OldVtf/Vtf.inf | 32 ++++++ > UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin | 60 +++++++++++ > .../Vtf0/Bin/ResetVector.ia32.port80.raw | Bin 516 -> 0 bytes > .../ResetVector/Vtf0/Bin/ResetVector.ia32.raw | Bin 484 -> 0 bytes > .../Vtf0/Bin/ResetVector.ia32.serial.raw | Bin 884 -> 0 bytes > UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf | 33 ------- > .../Vtf0/Bin/ResetVector.x64.port80.raw | Bin 28676 -> 0 bytes > .../ResetVector/Vtf0/Bin/ResetVector.x64.raw | Bin 28676 -> 0 bytes > .../Vtf0/Bin/ResetVector.x64.serial.raw | Bin 28676 -> 0 bytes > UefiCpuPkg/ResetVector/Vtf0/Build.py | 53 ---------- > .../ResetVector/Vtf0/Tools/FixupForRawSection.py | 110 --------------------- > UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 36 +++++++ > UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin | 53 ++++++++++ > 27 files changed, 311 insertions(+), 320 deletions(-) delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf > delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw > delete mode 100644 OvmfPkg/ResetVector/Build.py create mode 100644 OvmfPkg/ResetVector/ResetVector.inf > create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmbin > delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py > create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.inf > create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.serial.raw > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.port80.raw > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.raw > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Build.py > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py > create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf > create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin > > -- > 2.0.0.rc2 > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel |
From: Laszlo E. <le...@re...> - 2014-05-20 09:51:15
|
On 05/19/14 23:27, Jordan Justen wrote: > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jordan Justen <jor...@in...> > --- > OvmfPkg/ResetVector/Bin/ResetVector.inf | 29 ------------ > OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 0 bytes > OvmfPkg/ResetVector/Build.py | 58 ------------------------ > OvmfPkg/ResetVector/Tools/FixupForRawSection.py | 26 ----------- > 4 files changed, 113 deletions(-) > delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf > delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw > delete mode 100644 OvmfPkg/ResetVector/Build.py > delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py Before the patchset, we have the following files (not listing directories, because empty directories are killed by git anyway, as far as I remember): 1 OvmfPkg/ResetVector/Bin/ResetVector.inf 2 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw 3 OvmfPkg/ResetVector/Build.py 4 OvmfPkg/ResetVector/Ia32/PageTables64.asm 5 OvmfPkg/ResetVector/ResetVectorCode.asm 6 OvmfPkg/ResetVector/Tools/FixupForRawSection.py This patch removes files 1, 2, 3, and 6. We're left with: 4 OvmfPkg/ResetVector/Ia32/PageTables64.asm 5 OvmfPkg/ResetVector/ResetVectorCode.asm File 4 is important to keep because that's where we build our page tables on X64 at runtime. It continues to be referenced by the new files added in this patchset. I think file 5 ("OvmfPkg/ResetVector/ResetVectorCode.asm") should be removed in this patch -- it is not, currently. The new file "OvmfPkg/ResetVector/ResetVector.nasmbin" from patch 3 replaces it (with identical contents). In addition, only Build.py (file 3) references ResetVectorCode.asm (file 5), and this patch removes file 3, hence file 5 becomes unreferenced. (I think you may have removed it from your working copy, but maybe not from the index; hance the commit might have missed it. (Ie. you probably did only "rm", and not "git rm".)) Thanks Laszlo |
From: Laszlo E. <le...@re...> - 2014-05-20 09:01:31
|
Three questions: On 05/19/14 23:27, Jordan Justen wrote: > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jordan Justen <jor...@in...> > --- > OvmfPkg/OvmfPkgIa32.dsc | 2 ++ > OvmfPkg/OvmfPkgIa32.fdf | 6 +++--- > OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ > OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++--- > OvmfPkg/OvmfPkgX64.dsc | 2 ++ > OvmfPkg/OvmfPkgX64.fdf | 6 +++--- > 6 files changed, 15 insertions(+), 9 deletions(-) > > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > index f7064b7..1ceb909 100644 > --- a/OvmfPkg/OvmfPkgIa32.dsc > +++ b/OvmfPkg/OvmfPkgIa32.dsc > @@ -337,6 +337,8 @@ > # > ################################################################################ > [Components] > + OvmfPkg/ResetVector/ResetVector.inf > + > # > # SEC Phase modules > # > diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf > index 76b868d..411e9de 100644 > --- a/OvmfPkg/OvmfPkgIa32.fdf > +++ b/OvmfPkg/OvmfPkgIa32.fdf > @@ -1,7 +1,7 @@ > ## @file > # Open Virtual Machine Firmware: FDF > # > -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> > +# 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 > @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE > # > INF OvmfPkg/Sec/SecMain.inf > > -INF RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf > +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf > > ################################################################################ > [FV.PEIFV] > @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > > [Rule.Common.SEC.RESET_VECTOR] > FILE RAW = $(NAMED_GUID) { > - RAW RAW |.raw > + RAW BIN Align = 16 |.bin > } Ia32, before the patch: (1) "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf" said [Binaries.Ia32] RAW|ResetVector.ia32.raw|* (2) "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" was prepared with "UefiCpuPkg/ResetVector/Vtf0/Build.py". (3) Which invoked "nasm" on "UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm", and fixed up the output with "UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py". For Ia32, the fixup means padding with a NOP slide at the front, so that the resultant file size is 4, modulo 8. (4) The "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" file was included with the RESET_VECTOR rule: - output file type RAW: binary data, - NAMED_GUID: uses FILE_GUID from INF/[defines], ie. EFI_FFS_VOLUME_TOP_FILE_GUID - we have one leaf section pattern, with: - section type: RAW - input file type: RAW - options: none - extension: .raw -- one leaf section is instantiated for each .raw file listed in the INF file that is connected to the rule. "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf" --> "UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw" After the patch: (1) "OvmfPkg/ResetVector/ResetVector.inf" (from patch 3) says [Sources] ResetVector.nasmbin (2), (3) for which the build rule (from patch 1) designates "OvmfPkg/ResetVector/ResetVector.bin" as output file. The source is "OvmfPkg/ResetVector/ResetVector.nasmbin", which is identical to "UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm". OK. The output is not fixed up with FixupForRawSection.py. (4) "OvmfPkg/ResetVector/ResetVector.bin" is included with the new RESET_VECTOR rule: - output file type RAW: binary data; unchanged, good. - NAMED_GUID: uses FILE_GUID from INF/[defines], ie. EFI_FFS_VOLUME_TOP_FILE_GUID; unchanged, good. - we have one leaf section pattern, with: - section type: RAW - input file type: BIN -- changed. - options: Align = 16; changed - extension: .bin -- one leaf section is instantiated for each .bin file listed in the INF file that is connected to the rule. "OvmfPkg/ResetVector/ResetVector.inf" --> "OvmfPkg/ResetVector/ResetVector.bin" Questions: Q1: Why is the input file type in the leaf section pattern changed from RAW to BIN? The FDF spec doesn't seem to explain the BIN file type. Are we doing this only to match the file suffix ".bin"? Q2: We seem to replace the NOP slide at the front (which ensures that the file going into the section has size 4 modulo 8), with an Alignment of 16. Why does this work? > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index 26d1132..66a4bc3 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -343,6 +343,8 @@ > # > ################################################################################ > [Components.IA32] > + OvmfPkg/ResetVector/ResetVector.inf > + > # > # SEC Phase modules > # > diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf > index e037b72..c2ff257 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.fdf > +++ b/OvmfPkg/OvmfPkgIa32X64.fdf > @@ -1,7 +1,7 @@ > ## @file > # Open Virtual Machine Firmware: FDF > # > -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> > +# 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 > @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE > # > INF OvmfPkg/Sec/SecMain.inf > > -INF RuleOverride=RESET_VECTOR USE = IA32 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf > +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf > > ################################################################################ > [FV.PEIFV] > @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > > [Rule.Common.SEC.RESET_VECTOR] > FILE RAW = $(NAMED_GUID) { > - RAW RAW |.raw > + RAW BIN Align = 16 |.bin > } Same questions here, plus another one: Q3: Why is it safe to drop "USE = IA32" in the above? (I don't think it is, but I could be wrong.) > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index 66459c2..73a6460 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -342,6 +342,8 @@ > # > ################################################################################ > [Components] > + OvmfPkg/ResetVector/ResetVector.inf > + > # > # SEC Phase modules > # > diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf > index b9e9c59..5a5276d 100644 > --- a/OvmfPkg/OvmfPkgX64.fdf > +++ b/OvmfPkg/OvmfPkgX64.fdf > @@ -1,7 +1,7 @@ > ## @file > # Open Virtual Machine Firmware: FDF > # > -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> > +# 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 > @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE > # > INF OvmfPkg/Sec/SecMain.inf > > -INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/Bin/ResetVector.inf > +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf > > ################################################################################ > [FV.PEIFV] > @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > > [Rule.Common.SEC.RESET_VECTOR] > FILE RAW = $(NAMED_GUID) { > - RAW RAW |.raw > + RAW BIN Align = 16 |.bin > } > OK, so for X64 we don't change from UefiCpuPkg to our own, because we used to have our own version anyway. Before the patch: (1) "OvmfPkg/ResetVector/Bin/ResetVector.inf" said [Binaries.X64] RAW|ResetVector.x64.raw|* (2) "OvmfPkg/ResetVector/Bin/ResetVector.x64.raw" was prepared with "OvmfPkg/ResetVector/Build.py". (3) Which invoked "nasm" on "OvmfPkg/ResetVector/ResetVectorCode.asm", and fixed up the output with "OvmfPkg/ResetVector/Tools/FixupForRawSection.py". In the original UefiCpuPkg fixup script, page tables are built at fixup time, for X64. However in our own version, "OvmfPkg/ResetVector/Tools/FixupForRawSection.py", the fixup used to be the same as for Ia32, because we build our page tables at runtime. This happens in our version of "PageTables64.asm", "OvmfPkg/ResetVector/Ia32/PageTables64.asm". Hence the fixup means padding with a NOP slide at the front, so that the resultant file size is 4, modulo 8. (4) The "OvmfPkg/ResetVector/Bin/ResetVector.x64.raw" file was included with the RESET_VECTOR rule: - output file type RAW: binary data, - NAMED_GUID: uses FILE_GUID from INF/[defines], ie. EFI_FFS_VOLUME_TOP_FILE_GUID - we have one leaf section pattern, with: - section type: RAW - input file type: RAW - options: none - extension: .raw -- one leaf section is instantiated for each .raw file listed in the INF file that is connected to the rule. "OvmfPkg/ResetVector/Bin/ResetVector.inf" --> "OvmfPkg/ResetVector/Bin/ResetVector.x64.raw" After the patch: (1) "OvmfPkg/ResetVector/ResetVector.inf" (from patch 3) says [Sources] ResetVector.nasmbin (2), (3) for which the build rule (from patch 1) designates "OvmfPkg/ResetVector/ResetVector.bin" as output file. The source is "OvmfPkg/ResetVector/ResetVector.nasmbin", which is identical to our OVMF-specific "OvmfPkg/ResetVector/ResetVectorCode.asm". OK. The output is not fixed up with FixupForRawSection.py. (4) (I won't repeat this step, same as for Ia32 and Ia32X64.) So for X64, no *additional* questions, because the restructuring doesn't affect "OvmfPkg/ResetVector/Ia32/PageTables64.asm". So, I have the three questions (repeating them from above): Q1: Why is the input file type in the leaf section patterns changed from RAW to BIN? The FDF spec doesn't seem to explain the BIN file type. Are we doing this only to match the file suffix ".bin"? Q2: We seem to replace the NOP slide at the front (which ensures that the file going into the section has size 4 modulo 8), with an Alignment of 16. We do this for all three OVMF builds. Why does this work? Q3: Why is it safe to drop "USE = IA32" in the Ia32X64 rule override? Thanks, Laszlo |
From: Gao, L. <lim...@in...> - 2014-05-20 08:55:03
|
Jordan: Thanks for your great contribution. I have some comments. 1. Which NASM version is used to verify this patch? 2. Nasm-to-Binary-Code-File Rule is added to compile nasm to the binary ResetVector file. It can replace current ASM16 build rule after ASM16 source is converted to nasmbin. Right? 3. We don't suggest to use MACRO switch in source code. How about separate nasmbin source file for the different ARCH and DEBUG? If so, we will use the different nasmbin source files, -D ARCH_IA32, -D ARCH_X64, -D DEBUG_NONE, -D DEBUG_SERIAL is not required. 4. I see no difference between UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin and OvmfPkg/ResetVector/ResetVector.nasmbin except for their INF files. So, how about keep one copy Vtf0.nasmbin, and add two VTF INF files in UefiCpuPkg. One is DEBUG NONE, another is to support DEBUG on Serial. If so, OVMF can directly use one from UefiCpuPkg. 5. For OldVtf, I don't think it is good name. Normally, we use it within SecCore driver. How about name it as BaseVtf? 6. For the binary VTF files, some platform may use them. So, I suggest to keep them for a while, then remove them. 7. I don't see any changes in source ASM files. Does it mean they also follow NASM syntax? Thanks Liming -----Original Message----- From: Jordan Justen [mailto:jor...@in...] Sent: Tuesday, May 20, 2014 5:28 AM To: edk...@li... Cc: edk...@li... Subject: [edk2-buildtools] [PATCH 0/7] Build ResetVector/VTF with NASM during EDK II build The first patch obviously needs to be made to edk2-buildtools/BaseTools first, and then sync'd to EDK II. The first 6 patches change OVMF to build VTF0 during the EDK II build process by running NASM. The UefiCpuPkg VTF0 patches are not ready yet, since the X64 page tables are not being built. (They previously were built by FixupForRawSection.py.) The last patch provides an implementation of the old style VTF which can be built during the EDK II build process using NASM. These patches are available in the 'nasm-vtf' branch of the git repo at https://github.com/jljusten/edk2. The web page for this branch also provides a .zip download: https://github.com/jljusten/edk2/commits/nasm-vtf Jordan Justen (7): BaseTools: Add rules to build NASM into a binary UefiCpuPkg: Support building VTF0 ResetVector during the EDK II build OvmfPkg: Support building OVMF's ResetVector during the EDK II build OvmfPkg: Build OVMF ResetVector during EDK II build process UefiCpuPkg VTF0: Remove pre-built binaries OvmfPkg/ResetVector: Remove pre-built binaries UefiCpuPkg: Add ResetVector/OldVtf BaseTools/Conf/build_rule.template | 19 +++- BaseTools/Conf/tools_def.template | 8 +- OvmfPkg/OvmfPkgIa32.dsc | 2 + OvmfPkg/OvmfPkgIa32.fdf | 6 +- OvmfPkg/OvmfPkgIa32X64.dsc | 2 + OvmfPkg/OvmfPkgIa32X64.fdf | 6 +- OvmfPkg/OvmfPkgX64.dsc | 2 + OvmfPkg/OvmfPkgX64.fdf | 6 +- OvmfPkg/ResetVector/Bin/ResetVector.inf | 29 ------ OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 0 bytes OvmfPkg/ResetVector/Build.py | 58 ----------- OvmfPkg/ResetVector/ResetVector.inf | 37 +++++++ OvmfPkg/ResetVector/ResetVector.nasmbin | 53 ++++++++++ OvmfPkg/ResetVector/Tools/FixupForRawSection.py | 26 ----- UefiCpuPkg/ResetVector/OldVtf/Vtf.inf | 32 ++++++ UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin | 60 +++++++++++ .../Vtf0/Bin/ResetVector.ia32.port80.raw | Bin 516 -> 0 bytes .../ResetVector/Vtf0/Bin/ResetVector.ia32.raw | Bin 484 -> 0 bytes .../Vtf0/Bin/ResetVector.ia32.serial.raw | Bin 884 -> 0 bytes UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf | 33 ------- .../Vtf0/Bin/ResetVector.x64.port80.raw | Bin 28676 -> 0 bytes .../ResetVector/Vtf0/Bin/ResetVector.x64.raw | Bin 28676 -> 0 bytes .../Vtf0/Bin/ResetVector.x64.serial.raw | Bin 28676 -> 0 bytes UefiCpuPkg/ResetVector/Vtf0/Build.py | 53 ---------- .../ResetVector/Vtf0/Tools/FixupForRawSection.py | 110 --------------------- UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 36 +++++++ UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin | 53 ++++++++++ 27 files changed, 311 insertions(+), 320 deletions(-) delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw delete mode 100644 OvmfPkg/ResetVector/Build.py create mode 100644 OvmfPkg/ResetVector/ResetVector.inf create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmbin delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.inf create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.serial.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.port80.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Build.py delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin -- 2.0.0.rc2 ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ edk2-buildtools-devel mailing list edk...@li... https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel |
From: Laszlo E. <le...@re...> - 2014-05-20 07:49:25
|
On 05/19/14 23:27, Jordan Justen wrote: > Using NASM we build OVMF's ResetVector as part of the EDK II build > process. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jordan Justen <jor...@in...> > --- > OvmfPkg/ResetVector/ResetVector.inf | 37 +++++++++++++++++++++++ > OvmfPkg/ResetVector/ResetVector.nasmbin | 53 +++++++++++++++++++++++++++++++++ > 2 files changed, 90 insertions(+) > create mode 100644 OvmfPkg/ResetVector/ResetVector.inf > create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmbin > > diff --git a/OvmfPkg/ResetVector/ResetVector.inf b/OvmfPkg/ResetVector/ResetVector.inf > new file mode 100644 > index 0000000..57db16b > --- /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 This seems to come from OvmfPkg/ResetVector/Bin/ResetVector.inf. FILE_GUID matches EFI_FFS_VOLUME_TOP_FILE_GUID, about which "MdePkg/Include/Guid/FirmwareFileSystem2.h " says /// /// A Volume Top File (VTF) is a file that must be /// located such that the last byte of the file is /// also the last byte of the firmware volume /// Seems OK. > + > +# > +# The following information is for reference only and not required by the build tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 > +# > + > +[Sources] > + ResetVector.nasmbin > + > +[Packages] > + MdePkg/MdePkg.dec > + UefiCpuPkg/UefiCpuPkg.dec > + > +[BuildOptions] > + *_*_IA32_NASMBIN_FLAGS = -D ARCH_IA32 -D DEBUG_NONE -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ > + *_*_X64_NASMBIN_FLAGS = -D ARCH_X64 -D DEBUG_NONE -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ These extra flags come from OvmfPkg/ResetVector/Build.py. Good. > diff --git a/OvmfPkg/ResetVector/ResetVector.nasmbin b/OvmfPkg/ResetVector/ResetVector.nasmbin > new file mode 100644 > index 0000000..052c821 > --- /dev/null > +++ b/OvmfPkg/ResetVector/ResetVector.nasmbin > @@ -0,0 +1,53 @@ > +;------------------------------------------------------------------------------ > +; @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. > +; > +;------------------------------------------------------------------------------ > + > +%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_NONE > + %include "DebugDisabled.asm" > +%elifdef DEBUG_PORT80 > + %include "Port80Debug.asm" > +%elifdef DEBUG_SERIAL > + %include "SerialDebug.asm" > +%else > + %error "No debug type was specified." > +%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" > + > Looks like a verbatim copy of OvmfPkg/ResetVector/ResetVectorCode.asm. Reviewed-by: Laszlo Ersek <le...@re...> |
From: Laszlo E. <le...@re...> - 2014-05-20 07:41:46
|
On 05/19/14 23:27, Jordan Justen wrote: > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jordan Justen <jor...@in...> > --- > BaseTools/Conf/build_rule.template | 19 ++++++++++++++++++- > BaseTools/Conf/tools_def.template | 8 +++++++- > 2 files changed, 25 insertions(+), 2 deletions(-) > > diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template > index 6537108..fc9e501 100644 > --- a/BaseTools/Conf/build_rule.template > +++ b/BaseTools/Conf/build_rule.template > @@ -1,5 +1,5 @@ > # > -# Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR> > # Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> > # This program and the accompanying materials > # are licensed and made available under the terms and conditions of the BSD License > @@ -439,6 +439,23 @@ > otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst} > > > +[Nasm-to-Binary-Code-File] > + <InputFile> > + ?.nasmbin, ?.NASMBIN > + > + <ExtraDependency> > + $(MAKE_FILE) > + > + <OutputFile> > + $(OUTPUT_DIR)(+)${s_base}.bin > + > + <Command> > + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i > + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i > + cd $(OUTPUT_DIR)(+)${s_dir} > + "$(NASM)" -I${s_path}(+) $(NASMBIN_FLAGS) -o $dst ${d_path}(+)${s_base}.iii > + > + > [Microcode-File.USER_DEFINED, Microcode-File.Microcode] > <InputFile> > ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc > diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template > index a68218d..0915033 100644 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -1,5 +1,5 @@ > # > -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> > # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> > # Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> > # > @@ -5912,3 +5912,9 @@ RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC > ################## > *_*_*_VPDTOOL_PATH = BPDG > *_*_*_VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08 > + > +################## > +# NASM tool definitions > +################## > +*_*_*_NASM_PATH = nasm > +*_*_*_NASMBIN_FLAGS = -f bin > nitpick (not important): can you just call the suffix .nasm? ".nasmbin" seems to imply it's a binary file. Feel free to ignore :) Thanks Laszlo |
From: Jordan J. <jor...@in...> - 2014-05-19 21:29:08
|
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- .../Vtf0/Bin/ResetVector.ia32.port80.raw | Bin 516 -> 0 bytes .../ResetVector/Vtf0/Bin/ResetVector.ia32.raw | Bin 484 -> 0 bytes .../Vtf0/Bin/ResetVector.ia32.serial.raw | Bin 884 -> 0 bytes UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf | 33 ------- .../Vtf0/Bin/ResetVector.x64.port80.raw | Bin 28676 -> 0 bytes .../ResetVector/Vtf0/Bin/ResetVector.x64.raw | Bin 28676 -> 0 bytes .../Vtf0/Bin/ResetVector.x64.serial.raw | Bin 28676 -> 0 bytes UefiCpuPkg/ResetVector/Vtf0/Build.py | 53 ---------- .../ResetVector/Vtf0/Tools/FixupForRawSection.py | 110 --------------------- 9 files changed, 196 deletions(-) delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.serial.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.port80.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Build.py delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw deleted file mode 100644 index 2c6ff655ded2a5855ca8f4428d559a7727eb6983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmXYu&r2IY6vyAXZffw5pki|H5Mn5LNHL07>yK(hDFtZ?MS?}4mxbPR-GRMz=a9oB zvMhKKFZ~nNlM5cQb+xr81!+kMl-SZG(_HkTQj62K>Vuhi^XB_L@6C*D+jh>&LL6WM z0E9M5jkxi9eVsI^(KS)(c}ad!Be^-u-jeUs=qdWy6LL(A42pq#X1-iV5sza!I8I=? z6*P9huZ0loz}XH=zA6FaYU~GVsO6;rsjAI!8P!wTWYN=~C=bxrhB8;BLgK<t>5cO9 zE_#aD5dEUpq>p-w_SG~xWD@0RR2DrFWrutZ1v!s>DqfI?a~7ETjdPBr+OZTuH6@AC z(ZjWOrXk1m6wV#`csWUbg<S05l@fNKy~zCI-!P=K;!dTH=NHLHY^N|T`E)Eli`VOy zXZrX<JiJvfU!`LUi=<PYX;b<z8ryjj>92AHT^9%NWrR81f%$hA&aB$5Egq>cDWST( zc->gqQ~#`>AP(+S1e4QsXD~2Tw+*bS<ym#BVIA|Qh_Ms!0d@E>_ZG54!{z}tj_%g2 yBd9#fH`^=I`DR3A`}nB*Qt<bJXK#eyC7f7Y1R<hXy90%ch1YX{k^Ou0?eZVP-{Nrq diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw deleted file mode 100644 index e34780a3a2c9b22bd10a1d5a405e344faaff94f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmX9*OG_g`5Uz2YXi!K{AwfI@4Wb8^4I;k92Z}6+5k#W02QLkK9j9Rq9_&L7ZDbtq zqIePigaaNjIzCSdixLS)RFt&2cybqA?5!~cU5~H6s_N>tZQD+`9S{Z>1OTb`GBa#G zt*_G(GaClinx^RkGo#yGe2LyNvnlO${H9mTj3XK78TZswjJl#0BPWZ(PsE3m63x5< zkjV2pUL={H-<6y`Ayi}y>qBYR=+mmu*E{2X*HV!;FJ=@olMU=1D<ODc<ds9CLcd-$ z>r@&PjmS*9G|11z5fTzEKTW^U3gc6Jd}Rz>i=xwezWi&|RKrFLb)7MgiLyt(A5Nap z{K@){_&;%jkXDHiVLej|v^%t)8c;mepB%?^+SRc((Td402KNZ-pIe~y>R7ebhG=Mi zG0>h98oCZ15CogOAHb`XKiHDrNJxngrv+CGHM`_x1(RWLh67mGTp&(0SUJnJ3Rcm& z65UvCM_?B@w(a-w1uqM*d0DnQmyjJzmTIyi$x?vuV|+aEM~V$8raq+<d#HFpKI8Y< TrM$1pedcB-0FmP|Qr7<gpRvyd diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.serial.raw deleted file mode 100644 index 6dfa68eabb48a44bc50a0b7fe678f80b5cdadfd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmbO*VZwx6znM3*zuWbbc>}|{T|byNFuntcu)ljL%WQZ+mqCDm!Ipu6;eU~3V}(G) z)1IEv*Nqh-wp}v*rH>jbBxag+CYIi8tdMCvtb4iiLSuyrP%%U4@y^4{5elUTUitue zX}kV1zgeMB@;wb?e$qQsz5yDa7md&LZpVHg=sf!J_y7O@JCCC3MmNn6O*f`#F9Vqv z7z}TB-s^mk)*WlWc%#VeB{R^K4n=mY2TH71*@5gLW0fCW5#rwtE0nzG_7G`&2(+1j z^JK|w#)BnHMOPatgqTY?U(N!mY&}rQ*?HpSA)o@o1D(fOzm+<nIxr2*L4>_q@(;fW zM0l~75#+LxB322Y6D>~^XEszY3zR4TNud&(Zi&XnApZb;9>@yvd6AdOpO@EwLaZ!6 zURtAtZ&ax{|MmzQ#>0))0j|L4)MR$nc&P@I1gq#goYrU^7F8<D?99Qc0Tkum9?hnC z<0UJQxdVt9UOxNx|35U+e}LlL@EtPG428#w!sB}PYd6D(zT3NJ{ntz5XB1D{p$v=~ zex(Cxuk3*?6kyolzy`EX=>cjO8KZ@=5gH#e8KmvtVCcKiccAY<-;2HrFU^6@7H3!h z3Ku8<vnHQs0MoP2GwgQ?c+I!pG2k_4TIZ3MC;k8v&C4(UUyA>KdG*i#|1Vel1t!i1 c|DR2GeH)mmfB<AnScn_LgbA;YKtv!U0PUT%*8l(j diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf deleted file mode 100644 index 63e1e2c..0000000 --- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf +++ /dev/null @@ -1,33 +0,0 @@ -## @file -# Reset Vector binary -# -# Copyright (c) 2006 - 2010, 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 -# - -[Binaries.Ia32] - RAW|ResetVector.ia32.raw|* - -[Binaries.X64] - RAW|ResetVector.x64.raw|* - diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.port80.raw deleted file mode 100644 index 6c0bcc47ebff84830b59047790c70d96e9488296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28676 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 BvabLD diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.raw deleted file mode 100644 index a78d5b407c8a106c221af127216d073cf8fdb99d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28676 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 SPx9m^JvI){eBb~48~hhX6Rzk0 diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw deleted file mode 100644 index 61c71349a8a599916f3eeae8c5dee92efb56db71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28676 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 diff --git a/UefiCpuPkg/ResetVector/Vtf0/Build.py b/UefiCpuPkg/ResetVector/Vtf0/Build.py deleted file mode 100644 index 826cde0..0000000 --- a/UefiCpuPkg/ResetVector/Vtf0/Build.py +++ /dev/null @@ -1,53 +0,0 @@ -## @file -# Automate the process of building the various reset vector types -# -# Copyright (c) 2009, 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. -# - -import glob -import os -import subprocess -import sys - -def RunCommand(commandLine): - #print ' '.join(commandLine) - return subprocess.call(commandLine) - -for filename in glob.glob(os.path.join('Bin', '*.raw')): - os.remove(filename) - -for arch in ('ia32', 'x64'): - for debugType in (None, 'port80', 'serial'): - output = os.path.join('Bin', 'ResetVector') - output += '.' + arch - if debugType is not None: - output += '.' + debugType - output += '.raw' - commandLine = ( - 'nasm', - '-D', 'ARCH_%s' % arch.upper(), - '-D', 'DEBUG_%s' % str(debugType).upper(), - '-o', output, - 'ResetVectorCode.asm', - ) - ret = RunCommand(commandLine) - print '\tASM\t' + output - if ret != 0: sys.exit(ret) - - commandLine = ( - 'python', - 'Tools/FixupForRawSection.py', - output, - ) - print '\tFIXUP\t' + output - ret = RunCommand(commandLine) - if ret != 0: sys.exit(ret) - diff --git a/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py b/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py deleted file mode 100644 index a9f21db..0000000 --- a/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py +++ /dev/null @@ -1,110 +0,0 @@ -## @file -# Apply fixup to VTF binary image for FFS Raw section -# -# Copyright (c) 2008, 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. -# - -import sys - -filename = sys.argv[1] - -if filename.lower().find('ia32') >= 0: - d = open(sys.argv[1], 'rb').read() - c = ((len(d) + 4 + 7) & ~7) - 4 - if c > len(d): - c -= len(d) - f = open(sys.argv[1], 'wb') - f.write('\x90' * c) - f.write(d) - f.close() -else: - from struct import pack - - PAGE_PRESENT = 0x01 - PAGE_READ_WRITE = 0x02 - PAGE_USER_SUPERVISOR = 0x04 - PAGE_WRITE_THROUGH = 0x08 - PAGE_CACHE_DISABLE = 0x010 - PAGE_ACCESSED = 0x020 - PAGE_DIRTY = 0x040 - PAGE_PAT = 0x080 - PAGE_GLOBAL = 0x0100 - PAGE_2M_MBO = 0x080 - PAGE_2M_PAT = 0x01000 - - def NopAlign4k(s): - c = ((len(s) + 0xfff) & ~0xfff) - len(s) - return ('\x90' * c) + s - - def PageDirectoryEntries4GbOf2MbPages(baseAddress): - - s = '' - for i in range(0x800): - i = ( - baseAddress + long(i << 21) + - PAGE_2M_MBO + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_DIRTY + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def PageDirectoryPointerTable4GbOf2MbPages(pdeBase): - s = '' - for i in range(0x200): - i = ( - pdeBase + - (min(i, 3) << 12) + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def PageMapLevel4Table4GbOf2MbPages(pdptBase): - s = '' - for i in range(0x200): - i = ( - pdptBase + - (min(i, 0) << 12) + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def First4GbPageEntries(topAddress): - PDE = PageDirectoryEntries4GbOf2MbPages(0L) - pml4tBase = topAddress - 0x1000 - pdptBase = pml4tBase - 0x1000 - pdeBase = pdptBase - len(PDE) - PDPT = PageDirectoryPointerTable4GbOf2MbPages(pdeBase) - PML4T = PageMapLevel4Table4GbOf2MbPages(pdptBase) - return PDE + PDPT + PML4T - - def AlignAndAddPageTables(): - d = open(sys.argv[1], 'rb').read() - code = NopAlign4k(d) - topAddress = 0x100000000 - len(code) - d = ('\x90' * 4) + First4GbPageEntries(topAddress) + code - f = open(sys.argv[1], 'wb') - f.write(d) - f.close() - - AlignAndAddPageTables() - -- 2.0.0.rc2 |
From: Jordan J. <jor...@in...> - 2014-05-19 21:29:06
|
This implements the old VTF ResetVector code often used on EDK II IA32 & X64 platforms. The BaseTools GenFv tool has code that patches the jump target of the reset vector code to match the entry point of the SEC image in the PEI Firmware Volume. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- UefiCpuPkg/ResetVector/OldVtf/Vtf.inf | 32 +++++++++++++++++ UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin | 60 +++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.inf create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin diff --git a/UefiCpuPkg/ResetVector/OldVtf/Vtf.inf b/UefiCpuPkg/ResetVector/OldVtf/Vtf.inf new file mode 100644 index 0000000..5a4e861 --- /dev/null +++ b/UefiCpuPkg/ResetVector/OldVtf/Vtf.inf @@ -0,0 +1,32 @@ +## @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] + Vtf.nasmbin + +[Packages] + MdePkg/MdePkg.dec diff --git a/UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin b/UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin new file mode 100644 index 0000000..5aa733e --- /dev/null +++ b/UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin @@ -0,0 +1,60 @@ +;------------------------------------------------------------------------------ +; @file +; First code exectuted by processor after resetting. +; +; 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. +; +;------------------------------------------------------------------------------ + +BITS 16 + +ALIGN 16 ; 0xffffffd0 + +applicationProcessorEntryPoint: +; +; Application Processors entry point +; +; GenFv generates code aligned on a 4k boundary which will jump to this +; location. (0xffffffd0) This allows the Local APIC Startup IPI to be +; used to wake up the application processors. +; + jmp short resetVector + +ALIGN 16 ; 0xffffffe0 + +peiCoreEntryPoint: +; +; PEI Core entry point +; +; GenFv fills the address of the PEI Core into this location +; + DD 0x12345678 + +ALIGN 16 ; 0xfffffff0 + +resetVector: +; +; Reset Vector +; +; This is where the processor will begin execution +; + nop + nop + jmp near $ + +ALIGN 8 + +ApStartupSegment: + DD 0x12345678 + +BootFvBaseAddress: + DD 0x12345678 + +ALIGN 16 ; 0x100000000 -- 2.0.0.rc2 |
From: Jordan J. <jor...@in...> - 2014-05-19 21:29:06
|
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- OvmfPkg/ResetVector/Bin/ResetVector.inf | 29 ------------ OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 0 bytes OvmfPkg/ResetVector/Build.py | 58 ------------------------ OvmfPkg/ResetVector/Tools/FixupForRawSection.py | 26 ----------- 4 files changed, 113 deletions(-) delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw delete mode 100644 OvmfPkg/ResetVector/Build.py delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.inf b/OvmfPkg/ResetVector/Bin/ResetVector.inf deleted file mode 100644 index afc80e3..0000000 --- a/OvmfPkg/ResetVector/Bin/ResetVector.inf +++ /dev/null @@ -1,29 +0,0 @@ -## @file -# Reset Vector binary -# -# Copyright (c) 2006 - 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. -# -## - -[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 -# - -[Binaries.X64] - RAW|ResetVector.x64.raw|* diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.x64.raw b/OvmfPkg/ResetVector/Bin/ResetVector.x64.raw deleted file mode 100644 index a3fc97c93e4d8100f95812102eec682003cc54a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmYk3&ubGw6vtn(NlZPsOQ|GaAwLiG5J@A75{uEI<Ra!EB~(Sc?8RH$fjtQBvgR;J z4GW&ce?jor)E+Wrn;HvZz(XTJSyPp4M!{39QnS8I5qyU?-^ZKzydPtlra8|tAOS1@ zfLl4OtCIR<Wrc8Eomr^OUMB-xjXpg??~?brI$O0e??~5B(?GVVC6wdD;#18Q8g272 zZ96+YfcZZCNQZL$cGlOc<hf9&oUJk?XRsrcOnSdoj_g@+WmGTD=$~BIg{jxd2j7O` zuk2{*v_L{UQe`AWJA8Yd(XHwp@hfBJ5pof7$6(R(o%>}?6(r>Z`e`LskLtS~2a6R9 zCRFn21Ku}SK-SM)TP7KCwS2*6>G{$X01^`x=Xea0)ROi5(lR+FEQSp>C$8QMo$T>o z6PEza1H|!+7`Mfj!=RY7*E9eo<}eD2SuxH~#Ka^Ub;qt71?M}yS%WAJ&S>EAf%^~! zKVJm_G)PGrphBODdn)XytfwST6+9L7R7pcZ7=U()8}{+wE)r?r&3;US!8hzl12Nfi z?qOTM*WpK_zpl8aWYHIqn<;<-wjz&iVN!x-Aq05WmYZQ{^ct*TH-?QazZe4z^Z40l z$etLk4B*LIn4Hi4oiCtuxx|mQE|qvtrkmW)fAN~r`{TM!8pm}$qiZ6|Ehe^#iFPru bS){i6^$<Pr+&T=rB1<=}f@$*S|E0~p(Iyu1 diff --git a/OvmfPkg/ResetVector/Build.py b/OvmfPkg/ResetVector/Build.py deleted file mode 100644 index e0a9496..0000000 --- a/OvmfPkg/ResetVector/Build.py +++ /dev/null @@ -1,58 +0,0 @@ -## @file -# Automate the process of building the various reset vector types -# -# Copyright (c) 2009 - 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. -# - -import glob -import os -import subprocess -import sys - -def RunCommand(commandLine): - #print ' '.join(commandLine) - return subprocess.call(commandLine) - -for filename in glob.glob(os.path.join('Bin', '*.raw')): - os.remove(filename) - -ThisDir = os.path.realpath(os.path.split(sys.argv[0])[0]) -WorkspaceDir = os.path.realpath(os.path.join(ThisDir, '..', '..')) -UefiCpuPkgVtf0Dir = os.path.join(WorkspaceDir, 'UefiCpuPkg', 'ResetVector', 'Vtf0') - -for arch in ('x64',): - for debugType in (None,): - output = os.path.join('Bin', 'ResetVector') - output += '.' + arch - if debugType is not None: - output += '.' + debugType - output += '.raw' - commandLine = ( - 'nasm', - '-D', 'ARCH_%s' % arch.upper(), - '-D', 'DEBUG_%s' % str(debugType).upper(), - '-I', UefiCpuPkgVtf0Dir + os.path.sep, - '-o', output, - 'ResetVectorCode.asm', - ) - ret = RunCommand(commandLine) - print '\tASM\t' + output - if ret != 0: sys.exit(ret) - - commandLine = ( - 'python', - 'Tools/FixupForRawSection.py', - output, - ) - print '\tFIXUP\t' + output - ret = RunCommand(commandLine) - if ret != 0: sys.exit(ret) - diff --git a/OvmfPkg/ResetVector/Tools/FixupForRawSection.py b/OvmfPkg/ResetVector/Tools/FixupForRawSection.py deleted file mode 100644 index f88c8a4..0000000 --- a/OvmfPkg/ResetVector/Tools/FixupForRawSection.py +++ /dev/null @@ -1,26 +0,0 @@ -## @file -# Apply fixup to VTF binary image for FFS Raw section -# -# Copyright (c) 2008, 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. -# - -import sys - -filename = sys.argv[1] - -d = open(sys.argv[1], 'rb').read() -c = ((len(d) + 4 + 7) & ~7) - 4 -if c > len(d): - c -= len(d) - f = open(sys.argv[1], 'wb') - f.write('\x90' * c) - f.write(d) - f.close() -- 2.0.0.rc2 |
From: Jordan J. <jor...@in...> - 2014-05-19 21:29:05
|
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- OvmfPkg/OvmfPkgIa32.dsc | 2 ++ OvmfPkg/OvmfPkgIa32.fdf | 6 +++--- OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++--- OvmfPkg/OvmfPkgX64.dsc | 2 ++ OvmfPkg/OvmfPkgX64.fdf | 6 +++--- 6 files changed, 15 insertions(+), 9 deletions(-) diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index f7064b7..1ceb909 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -337,6 +337,8 @@ # ################################################################################ [Components] + OvmfPkg/ResetVector/ResetVector.inf + # # SEC Phase modules # diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf index 76b868d..411e9de 100644 --- a/OvmfPkg/OvmfPkgIa32.fdf +++ b/OvmfPkg/OvmfPkgIa32.fdf @@ -1,7 +1,7 @@ ## @file # Open Virtual Machine Firmware: FDF # -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# 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 @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE # INF OvmfPkg/Sec/SecMain.inf -INF RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf ################################################################################ [FV.PEIFV] @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { [Rule.Common.SEC.RESET_VECTOR] FILE RAW = $(NAMED_GUID) { - RAW RAW |.raw + RAW BIN Align = 16 |.bin } diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 26d1132..66a4bc3 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -343,6 +343,8 @@ # ################################################################################ [Components.IA32] + OvmfPkg/ResetVector/ResetVector.inf + # # SEC Phase modules # diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf index e037b72..c2ff257 100644 --- a/OvmfPkg/OvmfPkgIa32X64.fdf +++ b/OvmfPkg/OvmfPkgIa32X64.fdf @@ -1,7 +1,7 @@ ## @file # Open Virtual Machine Firmware: FDF # -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# 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 @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE # INF OvmfPkg/Sec/SecMain.inf -INF RuleOverride=RESET_VECTOR USE = IA32 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf ################################################################################ [FV.PEIFV] @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { [Rule.Common.SEC.RESET_VECTOR] FILE RAW = $(NAMED_GUID) { - RAW RAW |.raw + RAW BIN Align = 16 |.bin } diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 66459c2..73a6460 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -342,6 +342,8 @@ # ################################################################################ [Components] + OvmfPkg/ResetVector/ResetVector.inf + # # SEC Phase modules # diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf index b9e9c59..5a5276d 100644 --- a/OvmfPkg/OvmfPkgX64.fdf +++ b/OvmfPkg/OvmfPkgX64.fdf @@ -1,7 +1,7 @@ ## @file # Open Virtual Machine Firmware: FDF # -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# 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 @@ -187,7 +187,7 @@ READ_LOCK_STATUS = TRUE # INF OvmfPkg/Sec/SecMain.inf -INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/Bin/ResetVector.inf +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf ################################################################################ [FV.PEIFV] @@ -503,5 +503,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { [Rule.Common.SEC.RESET_VECTOR] FILE RAW = $(NAMED_GUID) { - RAW RAW |.raw + RAW BIN Align = 16 |.bin } -- 2.0.0.rc2 |
From: Jordan J. <jor...@in...> - 2014-05-19 21:29:04
|
Using NASM we build OVMF's ResetVector as part of the EDK II build process. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- OvmfPkg/ResetVector/ResetVector.inf | 37 +++++++++++++++++++++++ OvmfPkg/ResetVector/ResetVector.nasmbin | 53 +++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 OvmfPkg/ResetVector/ResetVector.inf create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmbin diff --git a/OvmfPkg/ResetVector/ResetVector.inf b/OvmfPkg/ResetVector/ResetVector.inf new file mode 100644 index 0000000..57db16b --- /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.nasmbin + +[Packages] + MdePkg/MdePkg.dec + UefiCpuPkg/UefiCpuPkg.dec + +[BuildOptions] + *_*_IA32_NASMBIN_FLAGS = -D ARCH_IA32 -D DEBUG_NONE -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ + *_*_X64_NASMBIN_FLAGS = -D ARCH_X64 -D DEBUG_NONE -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ diff --git a/OvmfPkg/ResetVector/ResetVector.nasmbin b/OvmfPkg/ResetVector/ResetVector.nasmbin new file mode 100644 index 0000000..052c821 --- /dev/null +++ b/OvmfPkg/ResetVector/ResetVector.nasmbin @@ -0,0 +1,53 @@ +;------------------------------------------------------------------------------ +; @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. +; +;------------------------------------------------------------------------------ + +%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_NONE + %include "DebugDisabled.asm" +%elifdef DEBUG_PORT80 + %include "Port80Debug.asm" +%elifdef DEBUG_SERIAL + %include "SerialDebug.asm" +%else + %error "No debug type was specified." +%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.0.rc2 |
From: Jordan J. <jor...@in...> - 2014-05-19 21:29:02
|
Using NASM we build VTF0 as part of the EDK II build process. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 36 ++++++++++++++++++++++ UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin | 53 ++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf new file mode 100644 index 0000000..1e9287d --- /dev/null +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf @@ -0,0 +1,36 @@ +## @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] + Vtf0.nasmbin + +[Packages] + MdePkg/MdePkg.dec + +[BuildOptions] + *_*_IA32_NASMBIN_FLAGS = -D ARCH_IA32 -D DEBUG_NONE + *_*_X64_NASMBIN_FLAGS = -D ARCH_X64 -D DEBUG_SERIAL diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin new file mode 100644 index 0000000..052c821 --- /dev/null +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin @@ -0,0 +1,53 @@ +;------------------------------------------------------------------------------ +; @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. +; +;------------------------------------------------------------------------------ + +%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_NONE + %include "DebugDisabled.asm" +%elifdef DEBUG_PORT80 + %include "Port80Debug.asm" +%elifdef DEBUG_SERIAL + %include "SerialDebug.asm" +%else + %error "No debug type was specified." +%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.0.rc2 |
From: Jordan J. <jor...@in...> - 2014-05-19 21:29:00
|
The first patch obviously needs to be made to edk2-buildtools/BaseTools first, and then sync'd to EDK II. The first 6 patches change OVMF to build VTF0 during the EDK II build process by running NASM. The UefiCpuPkg VTF0 patches are not ready yet, since the X64 page tables are not being built. (They previously were built by FixupForRawSection.py.) The last patch provides an implementation of the old style VTF which can be built during the EDK II build process using NASM. These patches are available in the 'nasm-vtf' branch of the git repo at https://github.com/jljusten/edk2. The web page for this branch also provides a .zip download: https://github.com/jljusten/edk2/commits/nasm-vtf Jordan Justen (7): BaseTools: Add rules to build NASM into a binary UefiCpuPkg: Support building VTF0 ResetVector during the EDK II build OvmfPkg: Support building OVMF's ResetVector during the EDK II build OvmfPkg: Build OVMF ResetVector during EDK II build process UefiCpuPkg VTF0: Remove pre-built binaries OvmfPkg/ResetVector: Remove pre-built binaries UefiCpuPkg: Add ResetVector/OldVtf BaseTools/Conf/build_rule.template | 19 +++- BaseTools/Conf/tools_def.template | 8 +- OvmfPkg/OvmfPkgIa32.dsc | 2 + OvmfPkg/OvmfPkgIa32.fdf | 6 +- OvmfPkg/OvmfPkgIa32X64.dsc | 2 + OvmfPkg/OvmfPkgIa32X64.fdf | 6 +- OvmfPkg/OvmfPkgX64.dsc | 2 + OvmfPkg/OvmfPkgX64.fdf | 6 +- OvmfPkg/ResetVector/Bin/ResetVector.inf | 29 ------ OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 0 bytes OvmfPkg/ResetVector/Build.py | 58 ----------- OvmfPkg/ResetVector/ResetVector.inf | 37 +++++++ OvmfPkg/ResetVector/ResetVector.nasmbin | 53 ++++++++++ OvmfPkg/ResetVector/Tools/FixupForRawSection.py | 26 ----- UefiCpuPkg/ResetVector/OldVtf/Vtf.inf | 32 ++++++ UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin | 60 +++++++++++ .../Vtf0/Bin/ResetVector.ia32.port80.raw | Bin 516 -> 0 bytes .../ResetVector/Vtf0/Bin/ResetVector.ia32.raw | Bin 484 -> 0 bytes .../Vtf0/Bin/ResetVector.ia32.serial.raw | Bin 884 -> 0 bytes UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf | 33 ------- .../Vtf0/Bin/ResetVector.x64.port80.raw | Bin 28676 -> 0 bytes .../ResetVector/Vtf0/Bin/ResetVector.x64.raw | Bin 28676 -> 0 bytes .../Vtf0/Bin/ResetVector.x64.serial.raw | Bin 28676 -> 0 bytes UefiCpuPkg/ResetVector/Vtf0/Build.py | 53 ---------- .../ResetVector/Vtf0/Tools/FixupForRawSection.py | 110 --------------------- UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 36 +++++++ UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin | 53 ++++++++++ 27 files changed, 311 insertions(+), 320 deletions(-) delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw delete mode 100644 OvmfPkg/ResetVector/Build.py create mode 100644 OvmfPkg/ResetVector/ResetVector.inf create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmbin delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.inf create mode 100644 UefiCpuPkg/ResetVector/OldVtf/Vtf.nasmbin delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.port80.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.ia32.serial.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.port80.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.x64.serial.raw delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Build.py delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmbin -- 2.0.0.rc2 |
From: Jordan J. <jor...@in...> - 2014-05-19 21:28:59
|
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- BaseTools/Conf/build_rule.template | 19 ++++++++++++++++++- BaseTools/Conf/tools_def.template | 8 +++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index 6537108..fc9e501 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -1,5 +1,5 @@ # -# Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR> # Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -439,6 +439,23 @@ otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst} +[Nasm-to-Binary-Code-File] + <InputFile> + ?.nasmbin, ?.NASMBIN + + <ExtraDependency> + $(MAKE_FILE) + + <OutputFile> + $(OUTPUT_DIR)(+)${s_base}.bin + + <Command> + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + cd $(OUTPUT_DIR)(+)${s_dir} + "$(NASM)" -I${s_path}(+) $(NASMBIN_FLAGS) -o $dst ${d_path}(+)${s_base}.iii + + [Microcode-File.USER_DEFINED, Microcode-File.Microcode] <InputFile> ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index a68218d..0915033 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -1,5 +1,5 @@ # -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> # Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> # @@ -5912,3 +5912,9 @@ RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC ################## *_*_*_VPDTOOL_PATH = BPDG *_*_*_VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08 + +################## +# NASM tool definitions +################## +*_*_*_NASM_PATH = nasm +*_*_*_NASMBIN_FLAGS = -f bin -- 2.0.0.rc2 |
From: Gao, L. <lim...@in...> - 2014-05-15 03:18:41
|
OK. This patch is good to me. Reviewed-by: Gao, Liming <lim...@in...> -----Original Message----- From: Olivier Martin [mailto:Oli...@ar...] Sent: Thursday, May 15, 2014 11:17 AM To: Gao, Liming; edk...@li... Subject: RE: [edk2-buildtools] [PATCH] BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system Yes, /usr/bin is always in PATH. ________________________________________ From: Gao, Liming [lim...@in...] Sent: 15 May 2014 02:52 To: Olivier Martin; edk...@li... Subject: RE: [edk2-buildtools] [PATCH] BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system Martin: Is /usr/bin always in PATH? If yes, I agree this change has no impact to current user. Thanks Liming -----Original Message----- From: Olivier Martin [mailto:Oli...@ar...] Sent: Thursday, May 15, 2014 12:34 AM To: edk...@li... Subject: Re: [edk2-buildtools] [PATCH] BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system Any feedback on this one? ________________________________________ From: Olivier Martin [oli...@ar...] Sent: 11 April 2014 11:03 To: edk...@li... Cc: Olivier Martin Subject: [PATCH] BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system Most Linux distributions do not provide an up to date IASL compiler. This older IASL compilers fail to build recent ACPI tables. We could expect more regular update of the ACPI spec after its governance moved to a larger organisation (the UEFI Forum). Engineers would need to update their IASL compiler more often. The OS environment variable IASL_PREFIX allows to define a specific IASL compiler. Otherwise, the binary in the PATH would be used. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <oli...@ar...> --- BaseTools/Conf/tools_def.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index f6a92d4..8a9cb0e 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -162,7 +162,7 @@ DEFINE GCC47_X64_PREFIX = /usr/bin/ DEFINE GCC48_IA32_PREFIX = /usr/bin/ DEFINE GCC48_X64_PREFIX = /usr/bin/ -DEFINE UNIX_IASL_BIN = /usr/bin/iasl +DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl #DEFINE UNIX_IASL_BIN = $(HOME)/programs/iasl DEFINE WIN_ASL_BIN_DIR = C:\ASL DEFINE WIN_IASL_BIN = DEF(WIN_ASL_BIN_DIR)\iasl.exe -- 1.8.5 -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590 ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782 ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ edk2-buildtools-devel mailing list edk...@li... https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590 ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782 |
From: Olivier M. <Oli...@ar...> - 2014-05-15 03:17:17
|
Yes, /usr/bin is always in PATH. ________________________________________ From: Gao, Liming [lim...@in...] Sent: 15 May 2014 02:52 To: Olivier Martin; edk...@li... Subject: RE: [edk2-buildtools] [PATCH] BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system Martin: Is /usr/bin always in PATH? If yes, I agree this change has no impact to current user. Thanks Liming -----Original Message----- From: Olivier Martin [mailto:Oli...@ar...] Sent: Thursday, May 15, 2014 12:34 AM To: edk...@li... Subject: Re: [edk2-buildtools] [PATCH] BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system Any feedback on this one? ________________________________________ From: Olivier Martin [oli...@ar...] Sent: 11 April 2014 11:03 To: edk...@li... Cc: Olivier Martin Subject: [PATCH] BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system Most Linux distributions do not provide an up to date IASL compiler. This older IASL compilers fail to build recent ACPI tables. We could expect more regular update of the ACPI spec after its governance moved to a larger organisation (the UEFI Forum). Engineers would need to update their IASL compiler more often. The OS environment variable IASL_PREFIX allows to define a specific IASL compiler. Otherwise, the binary in the PATH would be used. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <oli...@ar...> --- BaseTools/Conf/tools_def.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index f6a92d4..8a9cb0e 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -162,7 +162,7 @@ DEFINE GCC47_X64_PREFIX = /usr/bin/ DEFINE GCC48_IA32_PREFIX = /usr/bin/ DEFINE GCC48_X64_PREFIX = /usr/bin/ -DEFINE UNIX_IASL_BIN = /usr/bin/iasl +DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl #DEFINE UNIX_IASL_BIN = $(HOME)/programs/iasl DEFINE WIN_ASL_BIN_DIR = C:\ASL DEFINE WIN_IASL_BIN = DEF(WIN_ASL_BIN_DIR)\iasl.exe -- 1.8.5 -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590 ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782 ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ edk2-buildtools-devel mailing list edk...@li... https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590 ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782 |
From: Jordan J. <jlj...@gm...> - 2014-05-15 03:06:06
|
On Wed, May 14, 2014 at 9:34 AM, Olivier Martin <Oli...@ar...> wrote: > Any feedback on this one? Our build pool should be fine with this. It also seems fine for the average developer's system. Reviewed-by: Jordan Justen <jor...@in...> -Jordan > ________________________________________ > From: Olivier Martin [oli...@ar...] > Sent: 11 April 2014 11:03 > To: edk...@li... > Cc: Olivier Martin > Subject: [PATCH] BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system > > Most Linux distributions do not provide an up to date IASL compiler. > This older IASL compilers fail to build recent ACPI tables. > > We could expect more regular update of the ACPI spec after its governance > moved to a larger organisation (the UEFI Forum). Engineers would need to > update their IASL compiler more often. > > The OS environment variable IASL_PREFIX allows to define a specific IASL > compiler. Otherwise, the binary in the PATH would be used. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Olivier Martin <oli...@ar...> > --- > BaseTools/Conf/tools_def.template | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template > index f6a92d4..8a9cb0e 100644 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -162,7 +162,7 @@ DEFINE GCC47_X64_PREFIX = /usr/bin/ > DEFINE GCC48_IA32_PREFIX = /usr/bin/ > DEFINE GCC48_X64_PREFIX = /usr/bin/ > > -DEFINE UNIX_IASL_BIN = /usr/bin/iasl > +DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl > #DEFINE UNIX_IASL_BIN = $(HOME)/programs/iasl > DEFINE WIN_ASL_BIN_DIR = C:\ASL > DEFINE WIN_IASL_BIN = DEF(WIN_ASL_BIN_DIR)\iasl.exe > -- > 1.8.5 > > > -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. > > ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590 > ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782 > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel |