Assembler Tool Chain\r
Microsoft Macro Assembler, version 6.15 or later\r
or\r
- GCC version 4.x or later\r
+ GNU binutils 2.16.1 or later\r
\r
Java Development Kit ( Java 5.0 or later)\r
Sun* jdk-1.5.0_04 or later (http://java.sun.com)\r
\r
Java Tools\r
Apache-ANT, version 1.6.5 or later (http://ant.apache.org)\r
- Ant-contrib, version 1.0b2 or later (http://antcontrib.sourceforge.net)\r
+ Ant-contrib, version 1.0b2 or later\r
+ (http://sourceforge.net/project/showfiles.php?group_id=36177)\r
Saxon8, version 8.1.1\r
(http://prdownloads.sourceforge.net/saxon/saxonb8-1-1.zip?download)\r
XMLBeans, version 2.1.0 or later (http://xmlbeans.apache.org) \r
Optional Tools\r
--------------\r
Compiler Tool Chains:\r
- Intel C++ Compiler for Windows, ver. 9.0 or later (http://www.intel,com)\r
- Intel C Compiler for EFI Byte Code, ver. 1.2 or later\r
+ Intel C++ Compiler for Windows, ver. 9.0 or later (http://www.intel.com)\r
+ Intel C Compiler for EFI Byte Code, ver. 1.2 or later \r
+ (http://www.intel.com/cd/software/products/asmo-na/eng/compilers/efibc/index.htm)\r
Microsoft Driver Development Kit, version 3790.1830 or later\r
+ (http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.mspx)\r
Microsoft ACPI Source Language Assembler, Version 1.0.13NT or later\r
Intel ACPI Component Architecture, version 20060113\r
\r
-------------------------------------------------------------------------------\r
Quick Start\r
-----------\r
-Edit the text file, tools_def.txt, located in the Tools/Conf directory. This\r
-file contains the names of the compiler tool chains and the location of the\r
-compiler binaries. It has been pre-populated with the standard location for\r
-the Microsoft tool chains and includes the standard location of the Intel C \r
+Edit the text file, msft_tools_def.txt, located in the Tools/Conf directory.\r
+This file contains the names of the compiler tool chains and the location of\r
+the compiler binaries. It has been pre-populated with the standard location\r
+for the Microsoft tool chains and includes the standard location of the Intel C\r
Compiler for EFI Byte Code (EBC)\r
\r
Follow the instructions at https://edk2.tianocore.org/servlets/ProjectSource to\r
=============================================================== \r
Mechanisms:\r
----------\r
-A quick understanding:\r
+A brief overview:\r
\r
A) Surface Area Package Description (SPD) file contains information about the\r
modules that the package contains, including the location of all MSA files, and\r
- This release requires manual editing of the SPD file, adding the protocol\r
to the ProtocolDeclarations section of the file. \r
- Add the Protocol .h file to the Include\Protocol directory.\r
- - Add an entry to the Protocol.info file\r
+ - Add an <Entry> to the <ProtocolDeclarations> element in the \r
+ <PackageName>.spd file\r
* Each line contains Protocol base name then the global variable name and\r
then the hex value of the Protocol GUID.\r
\r
-Example Protocol.info file (2 lines):\r
-UnicodeCollation gEfiUnicodeCollationProtocolGuid\r
- { 0x1d85cd7f, 0xf43d, 0x11d2, 0x9a, 0xc, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \r
-UsbHc gEfiUsbHcProtocolGuid\r
- { 0xf5089266, 0x1aa0, 0x4953, 0x97, 0xd8, 0x56, 0x2f, 0x8a, 0x73, 0xb5, 0x19 }\r
+Example Protocol Entries (NOTE: The Guid entry is a single line in the SPD file):\r
+<ProtocolDeclarations>\r
+ <Entry Name="UnicodeCollation">\r
+ <C_Name>gEfiUnicodeCollationProtocolGuid</C_Name>\r
+ <Guid>{ 0x1d85cd7f, 0xf43d, 0x11d2, 0x9a, 0xc, 0x0, 0x90, 0x27,\r
+ 0x3f, 0xc1, 0x4d }</Guid>\r
+ <Entry Name="UsbHc">\r
+ <C_Name>gEfiUsbHcProtocolGuid</C_Name>\r
+ <Guid>{ 0xf5089266, 0x1aa0, 0x4953, 0x97, 0xd8, 0x56, 0x2f, 0x8a,\r
+ 0x73, 0xb5, 0x19 }</Guid>\r
\r
---------------------------------\r
5) Declare a new PPI in a package:\r
- This release requires manual editing of the SPD file\r
- Add the PPI .h file to the Include\Ppi directory.\r
- - Add an entry to the Ppi.info file\r
+ - Add an <Entry> to the package <PpiDeclarations> element in the \r
+ <PackageName>.spd file\r
* Each line contains PPI base name then the global variable name and then\r
the hex value of the PPI GUID.\r
\r
-Example Ppi.info file (2 lines):\r
-NtPeiLoadFile gNtPeiLoadFilePpiGuid\r
- { 0xfd0c65eb, 0x405, 0x4cd2, 0x8a, 0xee, 0xf4, 0x0, 0xef, 0x13, 0xba, 0xc2 }\r
-NtThunk gPeiNtThunkPpiGuid\r
- { 0x98c281e5, 0xf906, 0x43dd, 0xa9, 0x2b, 0xb0, 0x3, 0xbf, 0x27, 0x65, 0xda }\r
+Example Ppi Entries (NOTE: The Guid entry is a single line in the SPD file):\r
+<PpiDeclarations>\r
+ <Entry Name="NtPeiLoadFile">\r
+ <C_Name>gNtPeiLoadFilePpiGuid</C_Name>\r
+ <Guid>{ 0xfd0c65eb, 0x405, 0x4cd2, 0x8a, 0xee, 0xf4, 0x0, 0xef, 0x13,\r
+ 0xba, 0xc2 }</Guid>\r
+ </Entry>\r
+ <Entry Name="NtThunk">\r
+ <C_Name>gPeiNtThunkPpiGuid</C_Name>\r
+ <Guid>{ 0x98c281e5, 0xf906, 0x43dd, 0xa9, 0x2b, 0xb0, 0x3, 0xbf,\r
+ 0x27, 0x65, 0xda }</Guid>\r
+ </Entry>\r
+</PpiDeclarations>\r
+\r
\r
----------------------------------\r
6) Declare a new GUID in a package:\r
- This release requires manual editing of the SPD file to include the new\r
- Guid.\r
+ Guid. This is identical to adding a ProtocolDeclaration or PpiDeclaration\r
+ element as described above.\r
\r
--------------------------------------- \r
-7) Declare a new PCD entry in a package:\r
+7) Define a new PCD entry in a package:\r
- This release requires manual editing of the SPD file to include the new\r
- PCD.\r
+ PCD. New Pcd entries are added to the PcdDefinitions section of the\r
+ <PackageName>.spd file using the following example for the format:\r
+ NOTE: The hex <Token> value must be unique.\r
+\r
+<PcdDefinitions>\r
+ <PcdEntry ItemType="FIXED_AT_BUILD">\r
+ <C_Name>PcdMaximumUnicodeStringLength</C_Name>\r
+ <Token>0x00000001</Token>\r
+ <DatumType>UINT32</DatumType>\r
+ <DefaultValue>1000000</DefaultValue>\r
+ </PcdEntry>\r
+</PcdDefinition>\r
\r
------------------------------\r
8) Declare a new Library Class:\r
- This release requires manual editing of the SPD file to include the new\r
- Library Class.\r
+ Library Class. New Library Class entries are added to the \r
+ LibraryClassDeclarations seection of the <PackageName>.spd file using\r
+ the following example for the format:\r
+\r
+<LibraryClassDeclarations>\r
+ <LibraryClassDeclaration>\r
+ <LibraryClass>BaseLib</LibraryClass>\r
+ <IncludeHeader>Include/Library/BaseLib.h</IncludeHeader>\r
+ </LibraryClassDeclaration>\r
+</LibraryClassDeclarations>\r
\r
--------------------------------------\r
9) Add a library instance to a package:\r
1) EDK 2.0 contains new hardware feature support for the ICH SMBUS Libraries.\r
These libraries are provided to make Memory Reference Code (MRC) development\r
easier.\r
-2) The MDE Libraries - The MDE libraries resent significant changes in source\r
+2) The MDE Libraries - The MDE libraries represent significant changes in source\r
(with only limited changes in functionality.) These new libraries conform\r
to the "MDE Library Specification". \r
3) The Fat Binary and the EDK Shell Binary Packages are functionally identical\r