]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ReleaseNotes.txt
Add definition for FB DIMM.
[mirror_edk2.git] / ReleaseNotes.txt
index de392458bb5187e4ff494ab88ebf95a9a90e3104..bb2c923c5fe95678e6efbc8dea40607f2a95488e 100644 (file)
@@ -182,21 +182,67 @@ Pre-defined targets in the build.xml file include:
 ----------------------------\r
 A Word on the GCC Tool Chain\r
 ----------------------------\r
+\r
 EDK II will not compile with a standard Linux gcc tool chain. While Linux\r
-distributions are usually based on ELF, EDK II requires a version of gcc \r
-that is configured to produce PE-COFF images. You will find a script in \r
-edk2/Tools/gcc that will download, configure, compile, and install a gcc \r
-4.X cross-compile tool chain for EDK II development. This custom tool chain \r
-supports the IA-32 architecture. It can be built and run on Cygwin, Linux, and \r
-many other POSIX-compliant host operating environments. To compile the custom \r
-gcc tool chain, you need the following tools on your host computer: bash, gcc, \r
-gmake, curl (or wget).\r
+distributions are usually based on ELF, EDK II requires a version of gcc that\r
+is configured to produce PE-COFF images. You will find a script in <Root of\r
+EDK2 tree>/Tools/gcc/tianoCross-gcc-4.1 that will download, configure, compile,\r
+and install a gcc 4.1 cross-compile tool chain for EDK II development. This\r
+custom tool chain supports the IA-32 architecture. It can be built and run on\r
+Cygwin, Linux, and many other POSIX-compliant host operating environments. To\r
+compile the custom gcc tool chain, you need the following tools on your host\r
+computer: bash, gcc, gmake, curl (or wget).\r
 \r
 Only the MdePkg and EdkModulePkg are currently supported by gcc builds. Other\r
 builds, such as the EdkNt32Pkg, will not compile with gcc. By default, the edk2\r
 will try to build the NT32.fpd, which is not supported by gcc. So, you need to\r
 change the Tools/Conf/target.txt.\r
 \r
+The cross-compile build script has been tested on Cygwin, OS X and Linux. You\r
+should expect to hack on these scripts to make them work on your system. You\r
+may need to install additional tools on your system to make the scripts work.\r
+\r
+You will need\r
+\r
+  A recent version (3.0 or later should be fine) of gcc that is able to produce\r
+    executables for the machine that you want to run this compiler on (the host\r
+    machine).\r
+  wget or curl (which enables the download of the gcc compiler source code)\r
+  tar\r
+  bzip\r
+  gzip\r
+  bash\r
+  and possibly others\r
+\r
+CYGWIN Notes\r
+\r
+You should setup cygwin to use binmode on all mounts. When you initially\r
+install cygwin it gives you the choice of Unix file mode (recommended) or DOS\r
+file mode. Unix mode will cause all the cygwin directories to be mounted in\r
+binmode, while DOS will mount the dirs in textmode. Here is an example of a\r
+cygwin install where the dirs are (properly) mounted in binmode.\r
+To view mount information, type: \r
+    mount\r
+\r
+C:\cygwin\bin on /usr/bin type user (binmode)\r
+C:\cygwin\lib on /usr/lib type user (binmode)\r
+c:\workspace on /workspace type system (binmode)\r
+C:\cygwin on / type user (binmode)\r
+\r
+If you use textmode, it is likely that the build will fail in a way that is\r
+hard to debug.  Textmode is required to retain or add the DOS ^M characters\r
+in DOS batch files during file editing sessions.\r
+\r
+You can switch from textmode to binmode for compilation by executing the \r
+following:\r
+    mount -b --change-cygdrive-prefix cygdrive\r
+\r
+Cygwin is pretty slow, so it is not recommended for large builds.\r
+\r
+\r
+\r
+\r
+\r
 The platform to be built is identified by the Tools/Conf/target.txt file:\r
 \r
 #\r
@@ -231,21 +277,29 @@ A Word on compiling under Cygwin with gcc
 -----------------------------------------\r
 \r
 Cygwin is a POSIX style operating environment for Windows. It is possible to\r
-compile the EDK 2 using gcc and cygwin. There are a few extra steps necessary\r
-to make this happen. There is a JNI (Java Native Interface) library in the\r
-Tools.  In order to compile this under Cygwin, the 'linux' java headers must be\r
-installed to the $JAVA_HOME dir on the windows system. To accomplish this, you\r
-must install the JDK on a linux system, and then copy\r
-linux:$JAVA_HOME/include/linux/ to windows:$JAVA_HOME/include. These are really\r
-typedefs needed by gcc.\r
-\r
-Compiling under cygwin is slow, because the underlying file accesses are slow\r
-in cygwin. For this reason, we do not encourage the use of cygwin. A true unix\r
-system will be a superior choice for those wishing to compile with gcc.\r
+compile the EDK 2 using gcc and cygwin. Compiling under cygwin is slow, because \r
+the underlying file accesses are slow in cygwin. For this reason, we do not \r
+encourage the use of cygwin. A true unix system will be a superior choice for \r
+those wishing to compile with gcc.\r
 \r
 Make sure that you select the e2fsprogs development package when you install\r
 cygwin. It is necessary for the GenFvImage tool.\r
 \r
+----------------------------------------\r
+A Word on gcc for Processor Architectures\r
+----------------------------------------\r
+\r
+Currently gcc support is limited to IA-32 builds, generating IA-32 PE32 images. \r
+\r
+The X64 bit (Intel 64, etc.) support under the gcc compiler does not support the EFIAPI \r
+calling convention (as defined in the UEFI 2.0 specification Chapter 2), so it is not \r
+possible to build a working EFI image for an X64 environment.  Since the x64 gcc does \r
+not support the EFIAPI calling convention the x64 tools do not support generating a \r
+PE32+ image.  The EFIAPI calling convention is very similar to the Microsoft x64 \r
+calling convention.\r
+\r
+On ItaniumĀ® Processors the gcc compiler does not support generating a PE32+ image.\r
+\r
 -----------------------\r
 Notes on Documentation\r
 -----------------------\r
@@ -270,7 +324,7 @@ check out the entire EDK II source tree.
 In a command window, change to the top-level directory of the EDK II source.\r
 \r
 To test your tool chain setup and to build the supplied tools, execute:\r
-    c:\MyWork\edkii\> edksetup ForceBuild\r
+    c:\MyWork\edk2\> edksetup ForceRebuild\r
 \r
 (The edksetup script is referred to as the setup command throughout the \r
 rest of this document.)\r
@@ -283,7 +337,7 @@ script (without any arguments), any time you want to build.
 \r
   Set the WORKSPACE environment variable, e.g.:\r
 \r
-    c:\> set WORKSPACE=C:\MyWork\edkii\r
+    c:\> set WORKSPACE=C:\MyWork\edk2\r
 \r
 You may need to edit the text files Tools/Conf/target.txt and\r
 Tools/Conf/tools_def.txt (created by edksetup) using your favorite \r
@@ -293,7 +347,7 @@ paths (as per the default installation of the tools), so a customized
 install may require this manual process.\r
 \r
 Once this is completed, you are ready to test the build, by executing:\r
-    c:\MyWork\edkii\> build\r
+    c:\MyWork\edk2\> build\r
 \r
 This command builds the active platform specified in text file target.txt. If \r
 the active platform is not specified target.txt, you must execute the build \r
@@ -315,13 +369,20 @@ environment variable, TOOL_CHAIN to "gcc" before running the
 edksetup script.  Example: export TOOL_CHAIN=gcc\r
 \r
 To test your tool chain setup and to build the supplied tools, execute:\r
-    c:\MyWork\edkii\> edksetup ForceBuild\r
+    c:\MyWork\edk2\> edksetup ForceRebuild\r
 \r
 On Linux systems, you must source the edksetup.sh file to load the correct\r
 settings into your shell.\r
 \r
     . edksetup.sh # Note the dot.\r
 \r
+If you have recently updated your code from subversion, the tools will need to\r
+be rebuilt if there were any code changes made to them. You can request that\r
+the tools get rebuilt by typing:\r
+\r
+    . edksetup.sh Rebuild # Unix-like systems\r
+    edksetup.bat Rebuild  # Windows\r
+\r
 The edksetup script is referred to as the setup command throughout the \r
 rest of this document.\r
       NOTE: You should run the setup command at the start of every session.\r
@@ -330,14 +391,14 @@ rest of this document.
 \r
 Any changes to the tool source code or XML Schema documents require that\r
 you execute the following:\r
-   c:\MyWork\edkii\> edksetup ForceBuild\r
+   c:\MyWork\edk2\> edksetup ForceRebuild\r
 \r
 You must set the WORKSPACE environment variable, or run the edksetup\r
 script (without any arguments), any time you want to build.\r
 \r
   Set the WORKSPACE environment variable, e.g.:\r
 \r
-    c:\> set WORKSPACE=C:\MyWork\edkii\r
+    c:\> set WORKSPACE=C:\MyWork\edk2\r
 \r
 You may need to edit the text files Tools/Conf/target.txt and\r
 Tools/Conf/tools_def.txt (created by edksetup) using your favorite \r
@@ -347,7 +408,7 @@ paths (as per the default installation of the tools), so a customized
 tool installation may require this manual process.\r
 \r
 Once this is completed, you are ready to test the build, by executing:\r
-    c:\MyWork\edkii\> build\r
+    c:\MyWork\edk2\> build\r
 \r
 This command builds the active platform specified in text file target.txt. If \r
 the active platform is not specified, go to the sub-directory that contains FPD \r
@@ -364,7 +425,7 @@ In the command window:
     c:\<directory>\> build\r
 or\r
   cd to the platform (FPD file) that you want to build and execute this command:\r
-    c:\MyWork\edkii\EdkNt32Pkg\> build\r
+    c:\MyWork\edk2\EdkNt32Pkg\> build\r
 \r
   Note that the active platform specified in target.txt overrides the platform \r
   specified by any FPD file in the current directory. For more   information \r
@@ -401,7 +462,7 @@ Individual Module Builds
 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\r
   execute the build command:\r
-    c:\MyWork\edkii\MdePkg\Library\BaseLib\> build\r
+    c:\MyWork\edk2\MdePkg\Library\BaseLib\> build\r
 \r
   You must set the active platform in target.txt for individual module builds. \r
 \r