Adding the ReleaseNotes.txt file.
authorlhauch <lhauch@de2fecce-e211-0410-80a6-f3fac2684e05>
Wed, 26 Apr 2006 17:54:57 +0000 (17:54 +0000)
committerlhauch <lhauch@de2fecce-e211-0410-80a6-f3fac2684e05>
Wed, 26 Apr 2006 17:54:57 +0000 (17:54 +0000)
git-svn-id: https://edk2.tianocore.org/svn/edk2/trunk@41 de2fecce-e211-0410-80a6-f3fac2684e05

edk2/ReleaseNotes.txt [new file with mode: 0644]

diff --git a/edk2/ReleaseNotes.txt b/edk2/ReleaseNotes.txt
new file mode 100644 (file)
index 0000000..61d545d
--- /dev/null
@@ -0,0 +1,385 @@
+Intel(R) Platform Innovation Framework for EFI\r
+EFI Development Kit 2.0 (EDK 2.0) \r
+Alpha Release\r
+2006-04-26\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+\r
+This document provides updates to documentation, along with a description on \r
+how to install and build the Edk 2.0.\r
+\r
+Package Contents\r
+----------------\r
+  ReleaseNote.txt- These release notes for the package.\r
+  MdePkg         - A package containing Industry Standard headers and libraries\r
+  Tools          - A package containing Build Specific tools which are designed\r
+                   to help the developer create and modify drivers and\r
+                   libraries\r
+  EdkModulePkg   - A package containing reference drivers\r
+  EdkFatBinPkg   - A package containing binary DXE drivers for the Fat 32 file\r
+                   system\r
+  EdkShellBinPkg - A package containing binary Shell applications and commands\r
+  EdkNt32Pkg     - A package containing the NT32 Emulation platform reference\r
+\r
+Note: MDE and MDK that appear in other documentation refer to the MdePkg and\r
+Tools packages.  These two packages are the minimum requirement for developing\r
+EDK 2.0 Packages.  It is also recommended that the top level files included\r
+with the EDK be downloaded in conjunction with these two packages.\r
+\r
+Note: Documents have the following filenames:\r
+  EDK 2.0 Module Development Environment Library Specification v0.50 \r
+      (MDE_Library_Spec_0_50.rtf)\r
+  EDK 2.0 Build and Packaging Architecture Specification v0.50\r
+      (Build_Packaging_Spec_0_50.rtf)\r
+  EDK 2.0 Platform Configuration Database Infrastructure Description v0.51\r
+      (PCD_Infrastructure_0_51.rtf)\r
+  EDK 2.0 Module Surface Area v0.50\r
+      (Module_Surface_Area_0_50.rtf)\r
+  EDK 2.0 Module Development Environment (MDE) Package Specification v0.50\r
+      (MDE_Package_Spec_0_50.rtf)\r
+  EDK 2.0 C Coding Standards Specification v0.50\r
+      (C_Coding_Standards_Specification_ 0_50.rtf)\r
+\r
+Pre-Requisites\r
+--------------\r
+The following list of tools must be installed on the development workstation\r
+prior to using the Edk 2.0.\r
+\r
+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
+\r
+Assembler Tool Chain\r
+      Microsoft Macro Assembler, version 6.15 or later\r
+    or\r
+      GCC version 4.x 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
+    or\r
+      Bea Systems* jrockit-25.2.0-jdk1.5.0_03 or later (http://www.bea.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
+    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
+\r
+Other Tools\r
+    TortoiseSVN version 1.3.3. (http://tortoisesvn.tigris.org/)\r
+\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
+    Microsoft Driver Development Kit, version 3790.1830 or later\r
+    Microsoft ACPI Source Language Assembler, Version 1.0.13NT or later\r
+    Intel ACPI Component Architecture, version 20060113\r
+\r
+-----------------------\r
+Notes On Required Tools (Source Control System)\r
+-----------------------\r
+The EDK 2.0 is being managed by the Subversion Source Control on Tianocore.org.\r
+This software package provides speed, security, and additional features. The\r
+recommended client is TortoiseSVN version 1.3.3. \r
+ (Available at http://tortoisesvn.tigris.org/)\r
+\r
+There are instructions for the use of Subversion Source Control on the\r
+Tianocore.org website, as part of the checkout procedures.\r
+\r
+The URL of the EDK 2.0 repository is:\r
+  https://edk2.tianocore.org/svn/edk2/trunk/edk2\r
+\r
+-----------------------\r
+Notes On Documentation\r
+-----------------------\r
+The documents are being managed by the Subversion Source Control on\r
+Tianocore.org.  The document repository is "docs" and must be checked out\r
+separately from the EDK 2.0 source tree. Refer to the checkout procedures on\r
+the Tianocore.org website for EDK 2.0.\r
+\r
+The URL of the document repository is:\r
+  https://edk2.tianocore.org/svn/edk2/trunk/docs\r
+\r
+\r
+-----------------------\r
+Notes On Required Tools (MS Windows environment example)\r
+-----------------------\r
+Software Installation Order:\r
+  After installing the compiler tools and your Subversion client, the following\r
+  required tools should be installed in order: \r
+    Java JDK, Apache-Ant, ant-contrib, xmlbeans, saxon8\r
+\r
+Java Development Kit:\r
\r
+   The Java Environment Variable must be set before attempting to build.\r
+       i.e. For Sun JDK (see note below*):\r
+              set JAVA_HOME=c:\ Java\jdk1.5.0_06  \r
+       i.e. For Bea Systems:\r
+              set JAVA_HOME=c:\Program Files\Java\jrockit-R26.0.0-jdk1.5.0_04\r
\r
+  *When using the Sun JDK5.0\r
+    During installation, you should specify the install directory as C:\Java\r
+    instead of C:\Program Files\(or some other drive letter.)  While installing\r
+    to this non-standard location is not required. In use, it seems to work \r
+    more reliably. \r
+    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
+    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
+\r
+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
+\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
+\r
+    The saxon8.jar file should be copied to the %XMLBEANS_HOME%\lib directory.\r
+\r
+   The Ant and XMLBean tools are required to be in the path.\r
+     MS system example:\r
+        set PATH=%PATH%;%ANT_HOME%\bin;%XMLBEANS_HOME%\bin\r
+     Linux/OS X bash shell example:\r
+        export PATH=$PATH:${ANT_HOME}/bin:${XMLBEANS_HOME}/bin\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
+Compiler for EFI Byte Code (EBC)\r
+  \r
+Follow the instructions at https://edk2.tianocore.org/servlets/ProjectSource to\r
+checkout the entire EDK 2.0 source tree.\r
+\r
+In a command window, change to the top level directory of the Edk 2.0 sources.\r
+  Set the WORKSPACE environment variable, e.g.:\r
+\r
+    c:\> set WORKSPACE=C:\MyWork\Edk2.0\r
+\r
+To test your tool chain setup and to build the Supplied Tools, execute:\r
+    c:\MyWork\Edk2.0\> edksetup\r
+\r
+(This command will be referred to as the setup command throughout the rest of\r
+this document.)\r
+      NOTE: You should run the setup command at the start of every session.\r
+            This configures the environment to include the TianoTools and the\r
+            Java applications and libraries.\r
+\r
+Once this is completed, you are ready to test the Build, by executing:\r
+    c:\MyWork\Edk2.0\> ant\r
+\r
+This command builds all of the packages, including the NT32 reference platform.\r
+\r
+-------------------------\r
+Individual Package Builds\r
+-------------------------\r
+After running the setup command, you can build individual packages.\r
+  In the command window, cd to the package that you want to build, and just\r
+  type:\r
+    c:\MyWork\Edk2.0\EdkNt32Pkg\> ant\r
+\r
+The EdkNt32Pkg has a special target; "run" that will execute the Nt32 emulation\r
+platform under Microsoft Windows.\r
+\r
+------------------------\r
+Individual Module Builds\r
+------------------------\r
+After running the setup command, you can build individual modules.\r
+  In the command window, cd to the module that you want to build, and just\r
+  type:\r
+    c:\MyWork\Edk2.0\MdePkg\Library\BaseLib\> ant\r
+\r
+-------------------------------------------------------------------------------\r
+A Word on Apache-ANT\r
+--------------------\r
+The Apache-ANT program is a build tool that uses XML-based project files.\r
+Similar to Makefiles, these project files may contain multiple targets.  Most\r
+build.xml files in Edk2.0 are auto-generated; any edits performed on the\r
+build.xml files will be overwritten the next time ant is executed.\r
+\r
+Pre-defined targets in the build.xml files include:\r
+    all      - This target builds binaries for defined architectures\r
+    clean    - This target removes object files generated by commands\r
+    cleanall - This target removes all generated files and directories.\r
+\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
+\r
+-------------------------------------------------------------------------------\r
+\r
+General Information:\r
+===============================================================    \r
+Mechanisms:\r
+----------\r
+A quick understanding:\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
+public library names and headers that might be provided by a module in the\r
+package.  Packages are defined by SPD files.  (Found in the root of the Package\r
+subdirectory (i.e. EdkNt32Pkg)) The SPD is further explained in the "Build \r
+Packaging Specification" document.\r
\r
+B) Module Surface Area Definition (MSA) files.  A description of a module's \r
+surface area, with all module specific default flags and features specified.\r
+Refer to the "Module Surface Area Architecture Specification" for additional\r
+details. The MSA is further explained in the "Build Packaging Specification"\r
+document.\r
\r
+C) Module Build Description (MDB). The "as-built" definition file that contains\r
+only the changes to the default flags defined in the MSA. The MSA and MDB are\r
+further explained in the "Build Packaging Specification" document.\r
+\r
+D) Platform Configuration Database (PCD).  A platform database which contains a\r
+variety of current platform settings or directives by which a driver or\r
+application can interact with.  The PCD is defined by the PCD_Protocol (This is\r
+further explained in the "Platform Configuration Database Infrastructure \r
+Description" document.\r
+\r
+E) Library Class.  A library class is a logical grouping of similar functions.\r
+When developing components, the module surface area declares the class of\r
+libraries that can be used by the component. The MBD file specifies the\r
+instance(s) of the library that will be used during compilation/linking. All\r
+library type modules must include header files in their distribution package,\r
+as well as their surface area and module build description files. Components,\r
+on the other hand, need only provide the binary and build description files\r
+when distributing BINARY packages.  The Library Classes are further explained\r
+in the "Build Packaging Specification" document.\r
+\r
+=========================================================================\r
+The common operations by developers of new modules are:\r
+-------------------------------------------------------\r
+\r
+1) How to manually create a new module in a package:\r
+  - The module source code must first be created in an appropriate directory\r
+    (under the package the module is to be a part of.)  \r
+  - An MSA file must be created, spelling out all aspects of the module.\r
+  - The MSA must be added to the SPD for the package to include the module.\r
+\r
+-----------------------------------------\r
+2) Add/Remove module(s) to/from a package:\r
+\r
+  - Setup environment as Build\r
+  - Add a module to a package\r
+     * Generate the module SurfaceArea description file and build description\r
+       file\r
+     * Run GenBuildFile.bat under <PackageDir> to generate an entrance\r
+       build.xml for the module\r
+     * Add a new <MsaFile> element under <MsaFiles> into\r
+       <PackageDir>\<PackageName>.spd, using relative path to package\r
+     * Add a new <ModuleSA> entry under each <TianoImage> into\r
+       <PackageDir>\<PackageName>.fpd file\r
+\r
+   - Remove a module from a package\r
+     * Comment out or remove corresponding <MsaFile> element under <MsaFiles>\r
+       from <PackageDir>\<PackageName>.spd\r
+     * Comment out or remove corresponding <ModuleSA> entry under each\r
+       <TianoImage> from <PackageDir>\<PackageName>.fpd\r
+\r
+-----------------------------------\r
+3) How to manually create a package:\r
+  - Identify the modules that are to be members of the project.\r
+  - Identify the Variables and Guids required in and of the Package (including\r
+    consumption/production information).\r
+  - Create an SPD file defining these modules and calling out their MSA files.\r
+\r
+--------------------------------------\r
+4) Declare a new Protocol in a package: \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
+     * 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
+\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
+     * 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
+\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
+\r
+--------------------------------------- \r
+7) Declare a new PCD entry in a package:\r
+  - This release requires manual editing of the SPD file to include the new\r
+    PCD.\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
+\r
+--------------------------------------\r
+9) Add a library instance to a package:\r
+  - This requires manual MSA and MBD file.\r
+\r
+-----------------------------\r
+10) Add a module to a package:\r
+  - This requires manual MSA and MBD editing\r
+\r
+\r
+=======================================================\r
+Notes:\r
+------\r
+The EDK 2.0 represents significant changes in the structure of the EDK.\r
+Therefore it is very difficult to isolate all of the changes of this version of\r
+the EDK with the previous (EDK 1.0) version.\r
+\r
+Of particular note:\r
+\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
+   (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
+   to the EDK 1.0 version.\r
+4) The EDK tools directory has been expanded to include more tools and more\r
+   tool functionality.\r
+5) The EDK NT32 section has been ported to the new build process, but\r
+   functionally remains the same as the EDK 1.0 version.\r
+6) The Application "HelloWorld" has been ported to EDK 2.0 as well.\r
+\r
+=======================================================\r
+Virus scanned by McAfee VirusScan Enterprise 8.0.0, Virus Definitions 4718, no\r
+virus detected.\r
+\r