diff options
-rw-r--r-- | ReleaseNotes.txt | 385 |
1 files changed, 385 insertions, 0 deletions
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt new file mode 100644 index 0000000000..61d545dd8c --- /dev/null +++ b/ReleaseNotes.txt @@ -0,0 +1,385 @@ +Intel(R) Platform Innovation Framework for EFI
+EFI Development Kit 2.0 (EDK 2.0)
+Alpha Release
+2006-04-26
+
+Copyright (c) 2006, Intel Corporation
+
+This document provides updates to documentation, along with a description on
+how to install and build the Edk 2.0.
+
+Package Contents
+----------------
+ ReleaseNote.txt- These release notes for the package.
+ MdePkg - A package containing Industry Standard headers and libraries
+ Tools - A package containing Build Specific tools which are designed
+ to help the developer create and modify drivers and
+ libraries
+ EdkModulePkg - A package containing reference drivers
+ EdkFatBinPkg - A package containing binary DXE drivers for the Fat 32 file
+ system
+ EdkShellBinPkg - A package containing binary Shell applications and commands
+ EdkNt32Pkg - A package containing the NT32 Emulation platform reference
+
+Note: MDE and MDK that appear in other documentation refer to the MdePkg and
+Tools packages. These two packages are the minimum requirement for developing
+EDK 2.0 Packages. It is also recommended that the top level files included
+with the EDK be downloaded in conjunction with these two packages.
+
+Note: Documents have the following filenames:
+ EDK 2.0 Module Development Environment Library Specification v0.50
+ (MDE_Library_Spec_0_50.rtf)
+ EDK 2.0 Build and Packaging Architecture Specification v0.50
+ (Build_Packaging_Spec_0_50.rtf)
+ EDK 2.0 Platform Configuration Database Infrastructure Description v0.51
+ (PCD_Infrastructure_0_51.rtf)
+ EDK 2.0 Module Surface Area v0.50
+ (Module_Surface_Area_0_50.rtf)
+ EDK 2.0 Module Development Environment (MDE) Package Specification v0.50
+ (MDE_Package_Spec_0_50.rtf)
+ EDK 2.0 C Coding Standards Specification v0.50
+ (C_Coding_Standards_Specification_ 0_50.rtf)
+
+Pre-Requisites
+--------------
+The following list of tools must be installed on the development workstation
+prior to using the Edk 2.0.
+
+Compiler Tool Chain
+ Microsoft* Visual Studio .NET 2003* (http://www.microsoft.com)
+ or
+ GCC version 4.x or later (http://gcc.gnu.org)
+
+Assembler Tool Chain
+ Microsoft Macro Assembler, version 6.15 or later
+ or
+ GCC version 4.x or later
+
+Java Development Kit ( Java 5.0 or later)
+ Sun* jdk-1.5.0_04 or later (http://java.sun.com)
+ or
+ Bea Systems* jrockit-25.2.0-jdk1.5.0_03 or later (http://www.bea.com)
+
+Java Tools
+ Apache-ANT, version 1.6.5 or later (http://ant.apache.org)
+ Ant-contrib, version 1.0b2 or later (http://antcontrib.sourceforge.net)
+ Saxon8, version 8.1.1
+ (http://prdownloads.sourceforge.net/saxon/saxonb8-1-1.zip?download)
+ XMLBeans, version 2.1.0 or later (http://xmlbeans.apache.org)
+
+Other Tools
+ TortoiseSVN version 1.3.3. (http://tortoisesvn.tigris.org/)
+
+Optional Tools
+--------------
+Compiler Tool Chains:
+ Intel C++ Compiler for Windows, ver. 9.0 or later (http://www.intel,com)
+ Intel C Compiler for EFI Byte Code, ver. 1.2 or later
+ Microsoft Driver Development Kit, version 3790.1830 or later
+ Microsoft ACPI Source Language Assembler, Version 1.0.13NT or later
+ Intel ACPI Component Architecture, version 20060113
+
+-----------------------
+Notes On Required Tools (Source Control System)
+-----------------------
+The EDK 2.0 is being managed by the Subversion Source Control on Tianocore.org.
+This software package provides speed, security, and additional features. The
+recommended client is TortoiseSVN version 1.3.3.
+ (Available at http://tortoisesvn.tigris.org/)
+
+There are instructions for the use of Subversion Source Control on the
+Tianocore.org website, as part of the checkout procedures.
+
+The URL of the EDK 2.0 repository is:
+ https://edk2.tianocore.org/svn/edk2/trunk/edk2
+
+-----------------------
+Notes On Documentation
+-----------------------
+The documents are being managed by the Subversion Source Control on
+Tianocore.org. The document repository is "docs" and must be checked out
+separately from the EDK 2.0 source tree. Refer to the checkout procedures on
+the Tianocore.org website for EDK 2.0.
+
+The URL of the document repository is:
+ https://edk2.tianocore.org/svn/edk2/trunk/docs
+
+
+-----------------------
+Notes On Required Tools (MS Windows environment example)
+-----------------------
+Software Installation Order:
+ After installing the compiler tools and your Subversion client, the following
+ required tools should be installed in order:
+ Java JDK, Apache-Ant, ant-contrib, xmlbeans, saxon8
+
+Java Development Kit:
+
+ The Java Environment Variable must be set before attempting to build.
+ i.e. For Sun JDK (see note below*):
+ set JAVA_HOME=c:\ Java\jdk1.5.0_06
+ i.e. For Bea Systems:
+ set JAVA_HOME=c:\Program Files\Java\jrockit-R26.0.0-jdk1.5.0_04
+
+ *When using the Sun JDK5.0
+ During installation, you should specify the install directory as C:\Java
+ instead of C:\Program Files\(or some other drive letter.) While installing
+ to this non-standard location is not required. In use, it seems to work
+ more reliably.
+ For the JDK, the install path would be C:\Java\jdk1.5.0_06
+ For the JRE, the install path would be C:\Java\jre1.5.0_06
+ Alternatively, you can specify C:\sunjavajdk and C:\sunjavajre.
+ NOTE: You cannot combine the location for the JDK and the JRE, as the JRE
+ install removes most of the binaries and libraries installed by the JDK
+ install.
+
+Java Tools:
+ The Apache-ANT requires the ANT_HOME environment variable to be set before
+ attempting to build:
+ i.e. set ANT_HOME=c:\ant
+
+ The ant-contrib.jar file should be installed in the %ANT_HOME%\lib
+ directory.
+
+ The XMLBeans, requires the XMLBEANS_HOME environment variable to be set
+ before attempting to build:
+ i.e. set XMLBEANS_HOME=C:\XMLBEANS
+
+ The saxon8.jar file should be copied to the %XMLBEANS_HOME%\lib directory.
+
+ The Ant and XMLBean tools are required to be in the path.
+ MS system example:
+ set PATH=%PATH%;%ANT_HOME%\bin;%XMLBEANS_HOME%\bin
+ Linux/OS X bash shell example:
+ export PATH=$PATH:${ANT_HOME}/bin:${XMLBEANS_HOME}/bin
+
+-------------------------------------------------------------------------------
+Quick Start
+-----------
+Edit the text file, tools_def.txt, located in the Tools/Conf directory. This
+file contains the names of the compiler tool chains and the location of the
+compiler binaries. It has been pre-populated with the standard location for
+the Microsoft tool chains and includes the standard location of the Intel C
+Compiler for EFI Byte Code (EBC)
+
+Follow the instructions at https://edk2.tianocore.org/servlets/ProjectSource to
+checkout the entire EDK 2.0 source tree.
+
+In a command window, change to the top level directory of the Edk 2.0 sources.
+ Set the WORKSPACE environment variable, e.g.:
+
+ c:\> set WORKSPACE=C:\MyWork\Edk2.0
+
+To test your tool chain setup and to build the Supplied Tools, execute:
+ c:\MyWork\Edk2.0\> edksetup
+
+(This command will be referred to as the setup command throughout the rest of
+this document.)
+ NOTE: You should run the setup command at the start of every session.
+ This configures the environment to include the TianoTools and the
+ Java applications and libraries.
+
+Once this is completed, you are ready to test the Build, by executing:
+ c:\MyWork\Edk2.0\> ant
+
+This command builds all of the packages, including the NT32 reference platform.
+
+-------------------------
+Individual Package Builds
+-------------------------
+After running the setup command, you can build individual packages.
+ In the command window, cd to the package that you want to build, and just
+ type:
+ c:\MyWork\Edk2.0\EdkNt32Pkg\> ant
+
+The EdkNt32Pkg has a special target; "run" that will execute the Nt32 emulation
+platform under Microsoft Windows.
+
+------------------------
+Individual Module Builds
+------------------------
+After running the setup command, you can build individual modules.
+ In the command window, cd to the module that you want to build, and just
+ type:
+ c:\MyWork\Edk2.0\MdePkg\Library\BaseLib\> ant
+
+-------------------------------------------------------------------------------
+A Word on Apache-ANT
+--------------------
+The Apache-ANT program is a build tool that uses XML-based project files.
+Similar to Makefiles, these project files may contain multiple targets. Most
+build.xml files in Edk2.0 are auto-generated; any edits performed on the
+build.xml files will be overwritten the next time ant is executed.
+
+Pre-defined targets in the build.xml files include:
+ all - This target builds binaries for defined architectures
+ clean - This target removes object files generated by commands
+ cleanall - This target removes all generated files and directories.
+
+A Word on GCC tool chain
+------------------------
+You will find a script in the tree that will download, configure, compile, and
+install a gcc 4.0.2 tool chain for development. It has support for the ia32
+architecture. It can be built and run on Cygwin, Linux, and many other POSIX
+compliant host environments. There are a few tools that you will need on your
+host computer in order to compile the tool chain. Among them are bash, gcc,
+gmake, curl (or wget).
+
+-------------------------------------------------------------------------------
+
+General Information:
+===============================================================
+Mechanisms:
+----------
+A quick understanding:
+
+A) Surface Area Package Description (SPD) file contains information about the
+modules that the package contains, including the location of all MSA files, and
+public library names and headers that might be provided by a module in the
+package. Packages are defined by SPD files. (Found in the root of the Package
+subdirectory (i.e. EdkNt32Pkg)) The SPD is further explained in the "Build
+Packaging Specification" document.
+
+B) Module Surface Area Definition (MSA) files. A description of a module's
+surface area, with all module specific default flags and features specified.
+Refer to the "Module Surface Area Architecture Specification" for additional
+details. The MSA is further explained in the "Build Packaging Specification"
+document.
+
+C) Module Build Description (MDB). The "as-built" definition file that contains
+only the changes to the default flags defined in the MSA. The MSA and MDB are
+further explained in the "Build Packaging Specification" document.
+
+D) Platform Configuration Database (PCD). A platform database which contains a
+variety of current platform settings or directives by which a driver or
+application can interact with. The PCD is defined by the PCD_Protocol (This is
+further explained in the "Platform Configuration Database Infrastructure
+Description" document.
+
+E) Library Class. A library class is a logical grouping of similar functions.
+When developing components, the module surface area declares the class of
+libraries that can be used by the component. The MBD file specifies the
+instance(s) of the library that will be used during compilation/linking. All
+library type modules must include header files in their distribution package,
+as well as their surface area and module build description files. Components,
+on the other hand, need only provide the binary and build description files
+when distributing BINARY packages. The Library Classes are further explained
+in the "Build Packaging Specification" document.
+
+=========================================================================
+The common operations by developers of new modules are:
+-------------------------------------------------------
+
+1) How to manually create a new module in a package:
+ - The module source code must first be created in an appropriate directory
+ (under the package the module is to be a part of.)
+ - An MSA file must be created, spelling out all aspects of the module.
+ - The MSA must be added to the SPD for the package to include the module.
+
+-----------------------------------------
+2) Add/Remove module(s) to/from a package:
+
+ - Setup environment as Build
+ - Add a module to a package
+ * Generate the module SurfaceArea description file and build description
+ file
+ * Run GenBuildFile.bat under <PackageDir> to generate an entrance
+ build.xml for the module
+ * Add a new <MsaFile> element under <MsaFiles> into
+ <PackageDir>\<PackageName>.spd, using relative path to package
+ * Add a new <ModuleSA> entry under each <TianoImage> into
+ <PackageDir>\<PackageName>.fpd file
+
+ - Remove a module from a package
+ * Comment out or remove corresponding <MsaFile> element under <MsaFiles>
+ from <PackageDir>\<PackageName>.spd
+ * Comment out or remove corresponding <ModuleSA> entry under each
+ <TianoImage> from <PackageDir>\<PackageName>.fpd
+
+-----------------------------------
+3) How to manually create a package:
+ - Identify the modules that are to be members of the project.
+ - Identify the Variables and Guids required in and of the Package (including
+ consumption/production information).
+ - Create an SPD file defining these modules and calling out their MSA files.
+
+--------------------------------------
+4) Declare a new Protocol in a package:
+ - This release requires manual editing of the SPD file, adding the protocol
+ to the ProtocolDeclarations section of the file.
+ - Add the Protocol .h file to the Include\Protocol directory.
+ - Add an entry to the Protocol.info file
+ * Each line contains Protocol base name then the global variable name and
+ then the hex value of the Protocol GUID.
+
+Example Protocol.info file (2 lines):
+UnicodeCollation gEfiUnicodeCollationProtocolGuid
+ { 0x1d85cd7f, 0xf43d, 0x11d2, 0x9a, 0xc, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d }
+UsbHc gEfiUsbHcProtocolGuid
+ { 0xf5089266, 0x1aa0, 0x4953, 0x97, 0xd8, 0x56, 0x2f, 0x8a, 0x73, 0xb5, 0x19 }
+
+---------------------------------
+5) Declare a new PPI in a package:
+ - This release requires manual editing of the SPD file
+ - Add the PPI .h file to the Include\Ppi directory.
+ - Add an entry to the Ppi.info file
+ * Each line contains PPI base name then the global variable name and then
+ the hex value of the PPI GUID.
+
+Example Ppi.info file (2 lines):
+NtPeiLoadFile gNtPeiLoadFilePpiGuid
+ { 0xfd0c65eb, 0x405, 0x4cd2, 0x8a, 0xee, 0xf4, 0x0, 0xef, 0x13, 0xba, 0xc2 }
+NtThunk gPeiNtThunkPpiGuid
+ { 0x98c281e5, 0xf906, 0x43dd, 0xa9, 0x2b, 0xb0, 0x3, 0xbf, 0x27, 0x65, 0xda }
+
+----------------------------------
+6) Declare a new GUID in a package:
+ - This release requires manual editing of the SPD file to include the new
+ Guid.
+
+---------------------------------------
+7) Declare a new PCD entry in a package:
+ - This release requires manual editing of the SPD file to include the new
+ PCD.
+
+------------------------------
+8) Declare a new Library Class:
+ - This release requires manual editing of the SPD file to include the new
+ Library Class.
+
+--------------------------------------
+9) Add a library instance to a package:
+ - This requires manual MSA and MBD file.
+
+-----------------------------
+10) Add a module to a package:
+ - This requires manual MSA and MBD editing
+
+
+=======================================================
+Notes:
+------
+The EDK 2.0 represents significant changes in the structure of the EDK.
+Therefore it is very difficult to isolate all of the changes of this version of
+the EDK with the previous (EDK 1.0) version.
+
+Of particular note:
+
+1) EDK 2.0 contains new hardware feature support for the ICH SMBUS Libraries.
+ These libraries are provided to make Memory Reference Code (MRC) development
+ easier.
+2) The MDE Libraries - The MDE libraries resent significant changes in source
+ (with only limited changes in functionality.) These new libraries conform
+ to the "MDE Library Specification".
+3) The Fat Binary and the EDK Shell Binary Packages are functionally identical
+ to the EDK 1.0 version.
+4) The EDK tools directory has been expanded to include more tools and more
+ tool functionality.
+5) The EDK NT32 section has been ported to the new build process, but
+ functionally remains the same as the EDK 1.0 version.
+6) The Application "HelloWorld" has been ported to EDK 2.0 as well.
+
+=======================================================
+Virus scanned by McAfee VirusScan Enterprise 8.0.0, Virus Definitions 4718, no
+virus detected.
+
|