On 20.05.2014, at 12:54, Gao, Liming wrote: > Jordan: > Thanks for your great contribution. I have some comments. > 1. Which NASM version is used to verify this patch? I think these messages appears because of old nasm version I have? 0.98 ------------ nasm -DARCH_X64 -DDEBUG_NONE -o ResetVectorCode ResetVectorCode.asm Ia32/SearchForSecEntry.asm:171: error: expression syntax error Ia32/Flat32ToFlat64.asm:38: warning: numeric constant 0x100000000 does not fit in 32 bits Ia32/Flat32ToFlat64.asm:39: error: `64' is not a valid segment size; must be 16 or 32 Ia32/PageTables64.asm:26: warning: numeric constant 0x100000000 does not fit in 32 bits Ia16/Real16ToFlat32.asm:40: warning: numeric constant 0x100000000 does not fit in 32 bits Ia16/Real16ToFlat32.asm:62: warning: numeric constant 0x100000000 does not fit in 32 bits Main.asm:78: error: `64' is not a valid segment size; must be 16 or 32 ------------
> 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 ------------------------------------------------------------------------------ "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