{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe2052\deftab360{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Arial;}}
\pard\nowidctlpar\sb200\cf2\b0\fs18 VfrCompile is used to parse the preprocessed UEFI and Framework VFR file to generate UEFI IFR opcode table, Binary Data and IFR listing file. This tool bases on the antlr parser to implement VFR syntax parser. The generated UEFI IFR opcode table is stored in autogen VfrFileNameBin.c, the global data variable is named to VfrFileNameBin that cantains IFR opcode table. Driver source code always uses this global data to register HII form package and show this page. The generated UEFI IFR opcode binary file is VfrFileName.hpk, which can also be registered into HII Form package. The generated IFR listing file is VfrFileName.lst, which lists each IFR opcode for each VFR statement for debug purpose. The generated file will be placed into the output directory specified by -o option. If output directory is not specified, the generate file will be placed in current directory.\par
This tool is not a standalone tool. It is used together with the compiler preprocessor, EDKII trim tool. When compiler VFR file, VFR file first is preprocessed by Compiler, then the preprocessed output file is processed by trim to remove the unused definition, last step the file will be compiled by VfrCompile tool to generate the expected UEFI IFR opcode.\par
\pard\nowidctlpar\li360\sb200\b0 The input file is UEFI or Framework VFR file, which has been preprocessed by Compiler and Trim tool. The generated output file is VfrFileName.c.\par
\pard\nowidctlpar\li360\sb200\b0 All generated files will be placed into output directory. If this option is not specified, the default output directory is current directory.\par
\pard\nowidctlpar\li360\sb200\b0 Do not preprocessing input vfr file. The input VFR file has been procoessed. If this option is not specified, the default behavior is same to set this option. \par
\pard\nowidctlpar\li360\sb200\b0 Recognize the input VFR file is the framework VFR syntax. If this option is not specified, the UEFI syntax is default vfr syntax.\par
\pard\nowidctlpar\sb200\b -h, --help\par
\pard\nowidctlpar\fi360\sb200\b0 Print version and usage of this program and exit.\par
\pard\nowidctlpar\sb200\cf2\b0\fs18 1. Parse the preprocessed UEFI VFR file (Vfr_Uefi.iii) to generate the UEFI IFR opcode table in autogen C file (Vfr_Uefi.c). \par
\b VfrCompile -n Vfr_Uefi.iii\par
\b0 2. Parse the preprocessed UEFI VFR file (Vfr_Uefi.iii) to generate the UEFI IFR opcode table in autogen C file (Vfr_Uefi.c) and UEFI IFR Binary File (Vfr_Uefi.hpk)\par
\b VfrCompile -n -b Vfr_Uefi.iii\par
\b0 3. Parse the preprocessed UEFI VFR file (Vfr_Uefi.iii) to generate the UEFI IFR opcode table in autogen C file (Vfr_Uefi.c) and UEFI IFR Binary File (Vfr_Uefi.hpk) and IFR listing file (Vfr_Uefi.lst)\par
\b VfrCompile -n -b -l Vfr_Uefi.iii\par
\b0 4. Parse the preprocessed Framework VFR file (Vfr_Framework.iii) to generate the UEFI IFR opcode table in autogen C file (Vfr_Framework.c). \par