Translate the Arch enum to an arch directory name. This is necessary for Linux builds...
[mirror_edk2.git] / ReleaseNotes.txt
index 61d545d..80ecbf1 100644 (file)
@@ -53,7 +53,7 @@ Compiler Tool Chain
 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
@@ -62,7 +62,8 @@ Java Development Kit ( Java 5.0 or later)
 \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
@@ -73,9 +74,11 @@ Other Tools
 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
@@ -129,6 +132,7 @@ Java Development Kit:
     For the JDK, the install path would be C:\Java\jdk1.5.0_06\r
     For the JRE, the install path would be C:\Java\jre1.5.0_06\r
     Alternatively, you can specify C:\sunjavajdk and C:\sunjavajre.\r
+\r
     NOTE: You cannot combine the location for the JDK and the JRE, as the JRE\r
     install removes most of the binaries and libraries installed by the JDK\r
     install.\r
@@ -136,14 +140,14 @@ Java Development Kit:
 Java Tools:\r
     The Apache-ANT requires the ANT_HOME environment variable to be set before\r
     attempting to build:\r
-         i.e.  set ANT_HOME=c:\ant\r
+         i.e.  set ANT_HOME=c:\<full path to where ant was installed>\r
 \r
     The ant-contrib.jar file should be installed in the %ANT_HOME%\lib \r
     directory.\r
 \r
     The XMLBeans, requires the XMLBEANS_HOME environment variable to be set\r
     before attempting to build:\r
-         i.e. set XMLBEANS_HOME=C:\XMLBEANS \r
+         i.e. set XMLBEANS_HOME=C:\<full path to where xmlbeans  was installed>\r
 \r
     The saxon8.jar file should be copied to the %XMLBEANS_HOME%\lib directory.\r
 \r
@@ -156,10 +160,10 @@ Java Tools:
 -------------------------------------------------------------------------------\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
@@ -195,6 +199,10 @@ After running the setup command, you can build individual packages.
 The EdkNt32Pkg has a special target; "run" that will execute the Nt32 emulation\r
 platform under Microsoft Windows.\r
 \r
+To exit the Nt32 emulation platform, you may type reset at the EFI Shell>\r
+command prompt.  Alternately, you may use the Graphical interface, Boot\r
+Maintenance Manager screen's Reset System command.\r
+\r
 ------------------------\r
 Individual Module Builds\r
 ------------------------\r
@@ -231,7 +239,7 @@ General Information:
 ===============================================================    \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
@@ -308,44 +316,81 @@ The common operations by developers of new modules are:
   - 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
@@ -368,7 +413,7 @@ Of particular note:
 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