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:jordan.l.jus...@intel.com] Sent: Tuesday, May 20, 2014 5:28 AM To: edk2-devel@lists.sourceforge.net Cc: edk2-buildtools-de...@lists.sourceforge.net 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 edk2-buildtools-de...@lists.sourceforge.net 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-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel