]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ReleaseNotes.txt
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@742 6f19259b...
[mirror_edk2.git] / ReleaseNotes.txt
index 61d545dd8c27f3941799aeb3c3eccbee268e5e78..1214078894567deac8010ab488e160ded9b8a1f5 100644 (file)
@@ -48,12 +48,12 @@ prior to using the Edk 2.0.
 Compiler Tool Chain\r
       Microsoft* Visual Studio .NET 2003*  (http://www.microsoft.com)\r
     or\r
-      GCC version 4.x or later (http://gcc.gnu.org)\r
+      A special GCC version 4.x or later (http://gcc.gnu.org). See below.\r
 \r
 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
@@ -184,6 +188,25 @@ Once this is completed, you are ready to test the Build, by executing:
 \r
 This command builds all of the packages, including the NT32 reference platform.\r
 \r
+------------------------------------\r
+Build Architectures other than IA32.\r
+------------------------------------\r
+\r
+By default, we are set up to build the ia32 architecture. If you would like to\r
+build for IPF, x64 and EBC, please copy MdePkg/MdePkg-All-Arch.fpd to\r
+MdePkg/MdePkg.fpd. For EdkModulePkg, copy EdkModulePkg-All-Archs.fpd to\r
+EdkModulePkg.fpd. Note, you may also add only the architecture you want from\r
+the -All-Archs files to the main fpd file. This is preferred if you do not have\r
+all the compilers installed.\r
+\r
+Optionally, you may modify the path to the compiler in\r
+Tools/Conf/msft_tools_def.txt. The flags for the ARCH tool chain are set in the\r
+file names by Tools/Conf/VENDOR_tools.txt, where VENDOR is set in\r
+Tools/Conf/msft_tools.txt.\r
+\r
+For example, if IPF_VENDOR = WINDDK, then the flags for the IPF DDK compiler\r
+will be specified in Tools/Conf/winddk_tools.txt.\r
+\r
 -------------------------\r
 Individual Package Builds\r
 -------------------------\r
@@ -195,6 +218,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
@@ -218,12 +245,15 @@ Pre-defined targets in the build.xml files include:
 \r
 A Word on GCC tool chain\r
 ------------------------\r
-You will find a script in the tree that will download, configure, compile, and\r
-install a gcc 4.0.2 tool chain for development. It has support for the ia32\r
-architecture.  It can be built and run on Cygwin, Linux, and many other POSIX\r
-compliant host environments. There are a few tools that you will need on your\r
-host computer in order to compile the tool chain. Among them are bash, gcc,\r
-gmake, curl (or wget).\r
+EDK2 will not compile with a standard Linux gcc tool chain. While Linux\r
+distributions are usually based on ELF, EDK2 requires a version of gcc that is\r
+configured to produce PE-COFF images. You will find a script in edk2/Tools/gcc\r
+that will download, configure, compile, and install a gcc 4.X cross-compile\r
+tool chain for EDK2 development. It has support for the ia32 architecture. It\r
+can be built and run on Cygwin, Linux, and many other POSIX compliant host\r
+operating environments. There are a few tools that you will need on your host\r
+computer in order to compile the tool chain. Among them are bash, gcc, gmake,\r
+curl (or wget).\r
 \r
 -------------------------------------------------------------------------------\r
 \r
@@ -231,7 +261,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 +338,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 +435,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