]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/UserManuals/GenFds_Utility_Man_Page.rtf
Sync EDKII BaseTools to BaseTools project r1971
[mirror_edk2.git] / BaseTools / UserManuals / GenFds_Utility_Man_Page.rtf
CommitLineData
40d841f6
LG
1{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052\deftab360{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}\r
2{\colortbl ;\red8\green96\blue168;\red0\green0\blue0;}\r
3{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}\r
4{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\f0\fs28 Name\par\r
5\pard\nowidctlpar\sb200\cf2\b0\fs18 GenFds.exe\par\r
6\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Description\par\r
7\pard\nowidctlpar\li60\sb200\cf0\b0\fs18 GenFds will get platform, flash and module information from target.txt,platform.dsc, flashmap.fdf, package.dec and module.inf. it will generate Ffs, Fv, FD and Section data depending on command line options. The FDF file must be pointed out. And the FDF file must follow the format of FDF\rquote s specification otherwise tool will throw a exception and stop the build.\par\r
8\pard\nowidctlpar\sb200\cf2 The FDF file describes information about flash parts as well as rules for combining binaries (Firmware Image) built from a DSC file. The output of the first phase of an EDK II build (as defined in the EDK II Build Specification) generates valid PE32/PE32+/Coff image files. GenFds performs the second phase of the build process during which consumes the images generated during the first phase, using statements and rules defined in the FDF file to place the PE32/PE32+/Coff images files into one or more EFI sections, then the EFI sections may get combined with other optional sections (version, depex, user interface) sections, into EFI Firmware File system (FFS) Sections. FFS images are put into Firmware Volumes (FVs,) and finally, the FV sections are combined into one or more Flash Device binary image (FD.)\par\r
9The outputDir must be pointed out. Tool will generate a FV directory which includes a FFS directory, Fv file, Fv INf file and Fd file. The FFS directory contents all modules directory which contents Ffs files and section files. All output of GenFds tool output will be in FV directory. The FV directory structure is following. The outputDir should be point part of Efi file path. That mean for each of module which descript in the FDF file as the \lquote InfFIle\rquote statement format the GenFds tool would find out it\rquote s input files from the path of \ldblquote $(outputDir)\\ $(Arch) \\ $(ActivePlatfromName) \\$(ModuleName) \\$(ModuleName) \\DEBUG\par\r
10\pard\nowidctlpar\fi-360\li420\sb200\tx420 1.\tab If Arch list was pointed out, GenFds tool will use this Arch instead of Arch List in Target.txt file\par\r
11\pard\nowidctlpar\fi-360\li420\sb200 2.\tab If Workspace was not pointed out, GenFds tool will use the Workspace path which set in OS environment. \par\r
123.\tab If ActivePlatform was pointed out, GenFds tool will use this active platform as the current platform instead of active platform which in Target.txt file.\par\r
13\pard\nowidctlpar\sb200 GenFds tool support 2 kinds of path in command line. Absolutely path and relative workspace path. The GenFds tool also support $(WORKSPACE) marco in path. For example, if the input Fdf like that $(WORKSPACE)\\NT32PKg\\Nt32.fdf, the tool will expand the $(WORKSPACE) macro with real path.\par\r
14\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Options\par\r
15\pard\nowidctlpar\sb200\cf2\b0\fs18 -a, --arch <ARCHS>\par\r
16\pard\nowidctlpar\fi1\li425\sb200 ARCHS is a comma separated (no space) list containing one or more of: IA32, X64, IPF or EBC which should be built, overrides target.txt\rquote s TARGET_ARCH\par\r
17\pard\nowidctlpar\fi-425\li425\sb200 -p, --platform PlatformName.dsc\par\r
18\pard\nowidctlpar\li426\sb200 Build the platform specified by the DSC file name argument, over rides the ACTIVE_PLATFORM\par\r
19\pard\nowidctlpar\sb200 -f, --filename Filename\tab\tab\tab\par\r
20\pard\nowidctlpar\fi426\sb200 Input FDF file and its format must follow FDF specification.\par\r
21\pard\nowidctlpar\sb200 -r, --rom_image FdUiName\tab\tab\tab\tab\par\r
22\pard\nowidctlpar\fi425\sb200 Build the image using the [FD] section named by FdUiName.\par\r
23\pard\nowidctlpar\sb200 -i, --FvImage UiFvName\par\r
24\tab Buld the FV image using the [FV] section named by UiFvName\par\r
25-o, --output Dir\par\r
26\pard\nowidctlpar\li360\sb200 The output directory of Genfds tool. And this directory also should be the directory of the EFI file.\par\r
27\pard\nowidctlpar\sb200 -w \endash -workspace\par\r
28\tab The workspace path working on.\f1\par\r
29\f0 -b --buildtarget DEBUG|RELEASE\par\r
30\pard\nowidctlpar\li360\sb200 Build target is one of: DEBUG, RELEASE.\f1\par\r
31\pard\nowidctlpar\sb200\f0 -t --tagname TOOLCHAIN_TAG\par\r
32\pard\nowidctlpar\li360\sb200 Specify the tool chain to build the platform.\f1\par\r
33\pard\nowidctlpar\sb200\f0 -D --define MACRO=VALUE\par\r
34\pard\nowidctlpar\li360\sb200 Pass macro to this tool.\f1\par\r
35\pard\nowidctlpar\sb200\f0 -s --specifyaddress ADDRESS\par\r
36\pard\nowidctlpar\li360\sb200 Specify driver load address.\f1\par\r
37\pard\nowidctlpar\sb200\f0 [--version]\par\r
38\f1\tab\f0 Print version and copyright of this program and exit\par\r
39[-v, --verbose]\par\r
40\pard\nowidctlpar\li360\sb200 Turn on verbose output with informational messages printed. This is a count value, so specifying \endash vv can be used to increase the verbosity level.\par\r
41\pard\nowidctlpar\sb200 [-q, --quiet]\par\r
42\tab disable all messages except FATAL ERRORS\par\r
43[-d, --debug [#]]\par\r
44\tab Enable debug messages, at level #\par\r
45[-h, --help]\par\r
46\tab Print copyright, version and usage of this program and exit\par\r
47\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Example\par\r
48\pard\nowidctlpar\li60\sb200\cf2\b0\fs18 1. WORKSAPCE has already set. $(WORKSPACE) = c:\\work\\EdkII. The Fdf file is in c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf. Output directory is c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools. ActivePlatform is C:\\work\\EdkII\\Nt32Pkg\\Nt32Pkg.dsc\par\r
49GenFds \endash f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \endash o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \endash p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc\par\r
50GenFds \endash f $(WORKSPACE)\\Nt32Pkg\\Nt32Pkg.fdf \endash o $(WORSPACE)\\Build\\Nt32\\Debug_MyTools \endash p $(WORKSAPCE)\\Nt32Pkg\\Nt32Pkg.dsc\par\r
51\par\r
52GenFds \endash f Nt32Pkg\\Nt32Pkg.fdf \endash o Build\\Nt32\\Debug_MyTools \endash p Nt32Pkg\\Nt32Pkg.dsc\par\r
532. Generate one FD which defined in FDF file. Use \lquote -r\rquote and Fd UIName. The Fd UIName is the name which defined in the FDf file, for detail information refer to FDF specification\par\r
54GenFds \endash f GenFds \endash f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \endash o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \endash p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc \endash r Fv_Recovery\par\r
553. Generate one FV which defined in FDF file. Use \lquote -i\rquote and FV UiName. The FV UIName is the name which defined in the FDF file, for detail information refers to FDF specification.\par\r
56GenFds \endash f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \endash o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \endash p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc \endash I FVRecovery\par\r
57\par\r
584. Use command line option to replace the Arch List in Target.txt. \par\r
59GenFds \endash f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \endash o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \endash p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc\par\r
60\pard\nowidctlpar\sb200 -a IA32, X64\par\r
61\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Bugs\par\r
62\pard\nowidctlpar\sb200\cf2\b0\fs18 Not found yet.\par\r
63\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Files \par\r
64\pard\nowidctlpar\sb200\cf2\b0\fs18 target.txt, platform.dsc, flashmap.fdf, package.dec and module.inf.\par\r
65\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 See also\par\r
66\pard\nowidctlpar\sb200\cf2\b0\fs18 GenFv, GenFfs, GenSection, GenFw.\par\r
67\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 License\par\r
68\pard\nowidctlpar\sb200\cf2\b0\fs18 Copyright (c) 1999 - 2009, Intel Corporation. All rights reserved.\par\r
69This program and the accompanying materials are licensed and made available \par\r
70under the terms and conditions of the BSD License which accompanies this \par\r
71distribution. The full text of the license may be found at\par\r
72\pard\nowidctlpar\cf0 http://opensource.org/licenses/bsd-license.php\cf2 . THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\par\r
73\pard\nowidctlpar\li60\sb200\f1\par\r
74}\r
75\0