Original range calculation in GetNextFile() is incorrect.
[mirror_edk2.git] / BuildNotes.txt
index d88684421ee4db28a114eb8a7d8e1bb95b0229b2..ca9473d71adecf93b400ff98a6ced8a3b1e30aca 100644 (file)
@@ -21,6 +21,8 @@ Package Contents
   EdkFatBinPkg   - Binary DXE drivers for the Fat 32 file system\r
   EdkShellBinPkg - Binary Shell applications and commands\r
   EdkNt32Pkg     - NT32 Emulation platform reference\r
   EdkFatBinPkg   - Binary DXE drivers for the Fat 32 file system\r
   EdkShellBinPkg - Binary Shell applications and commands\r
   EdkNt32Pkg     - NT32 Emulation platform reference\r
+  EdkUnixPkg     - Posix/Unix Emulation platform reference (Currently this\r
+                   builds only on ia32 Linux, but is meant to be portable.)\r
 \r
 Note: MDE and MDK that appear in other documentation refer to the MdePkg and\r
 Tools packages, respectively.  While, these two packages are the minimum \r
 \r
 Note: MDE and MDK that appear in other documentation refer to the MdePkg and\r
 Tools packages, respectively.  While, these two packages are the minimum \r
@@ -95,6 +97,25 @@ Compiler Tool Chains:
     Microsoft ACPI Source Language Assembler, Version 1.0.13NT or later\r
     Intel ACPI Component Architecture, version 20060113\r
 \r
     Microsoft ACPI Source Language Assembler, Version 1.0.13NT or later\r
     Intel ACPI Component Architecture, version 20060113\r
 \r
+Python\r
+\r
+    There are several tools implemented in Python and wxPython Widgets in the\r
+    Tools/Python directory. These are optional tools, and are not necessary in\r
+    order to use or build the edk2 code.  In order to use them you must\r
+    install Python 2.4.x and wxWidgets 2.8.x for your platform.  The tools\r
+    have been tested and work correctly on OS X, Linux and Windows.\r
+\r
+    There is a script called Install_Python_OSX.sh that will download and\r
+    install the correct versions for OS X. For other platforms, please find\r
+    the installers for your platform at the following sites:\r
+\r
+    - http://www.python.org/download/releases/2.4.4/ (Python interpreter)\r
+    - http://www.wxpython.org/download.php#binaries  (Python GUI extensions)\r
+\r
+    Your linux distribution may contain packages of python and wxPython, which\r
+    should work, provided they are are compatible with the above specified\r
+    versions.\r
+\r
 -----------------------------------------------\r
 Notes on Required Tools (Source Control System)\r
 -----------------------------------------------\r
 -----------------------------------------------\r
 Notes on Required Tools (Source Control System)\r
 -----------------------------------------------\r
@@ -194,10 +215,10 @@ Cygwin, Linux, and many other POSIX-compliant host operating environments. To
 compile the custom gcc tool chain, you need the following tools on your host\r
 computer: bash, gcc, gmake, curl (or wget).\r
 \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
+Only the MdePkg, EdkModulePkg and EdkUnixPkg are currently supported by gcc\r
+builds. Other builds, such as the EdkNt32Pkg, will not compile with gcc. By\r
+default, the edk2 will try to build the NT32.fpd, which is not supported by\r
+gcc. So, you need to 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
 \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
@@ -299,8 +320,37 @@ not support the EFIAPI calling convention the x64 tools do not support generatin
 PE32+ image.  The EFIAPI calling convention is very similar to the Microsoft x64 \r
 calling convention.\r
 \r
 PE32+ image.  The EFIAPI calling convention is very similar to the Microsoft x64 \r
 calling convention.\r
 \r
+We have added prelinary support for the MinGW64 Tool chain. This gcc tool\r
+chain is ported to follow the Microsft X64 ABI, and therefore is compatible\r
+with the EFI specification.\r
+\r
 On Itanium?Processors the gcc compiler does not support generating a PE32+ image.\r
 \r
 On Itanium?Processors the gcc compiler does not support generating a PE32+ image.\r
 \r
+----------------------------------------\r
+A Word on EdkUnixPkg -- The Unix simulator\r
+----------------------------------------\r
+\r
+A unix port of the Nt32 simulator has been added to the project. It currently\r
+builds and runs on 32 bit Linux, but should be portable to other Unix\r
+variants. In order to build it, you should use the ELFGCC tool chain defintion\r
+in tools_def.txt, which is set in target.txt. These are two settings to make\r
+in Tools/Conf/target.txt:\r
+\r
+ACTIVE_PLATFORM       = EdkUnixPkg/Unix.fpd\r
+TOOL_CHAIN_TAG        = ELFGCC\r
+\r
+Once that is setup, type build, and then you will end up with the simulator in\r
+Build/Unix/DEBUG_ELFGCC/IA32/SecMain.exe. \r
+\r
+In order to use the gdb debugger with the simulator, you may need to load the\r
+correct symbol file for the various modules that are loaded. For example,\r
+\r
+add-symbol-file EdkModulePkg/Bus/Pci/PciBus/Dxe/PciBus/DEBUG/./PciBus.dll\r
+0x45dc6000\r
+\r
+You can see the names of the symbol files (they are in ELF format even though\r
+the extension is .dll) printed on the screen as the simulator comes up.\r
+\r
 -----------------------\r
 Notes on Documentation\r
 -----------------------\r
 -----------------------\r
 Notes on Documentation\r
 -----------------------\r
@@ -354,7 +404,7 @@ This command builds the active platform specified in text file target.txt. If
 the active platform is not specified target.txt, you must execute the build \r
 command from the sub-directory that contains FPD files. For more information \r
 about the active platform policy, see the \93EDK II Build and Packaging \r
 the active platform is not specified target.txt, you must execute the build \r
 command from the sub-directory that contains FPD files. For more information \r
 about the active platform policy, see the \93EDK II Build and Packaging \r
-Architecture Specification.?
+Architecture Specification.?\r
 \r
 -------------------------------------------------------------------------------\r
 Detailed Starting Instructions\r
 \r
 -------------------------------------------------------------------------------\r
 Detailed Starting Instructions\r
@@ -415,7 +465,7 @@ This command builds the active platform specified in text file target.txt. If
 the active platform is not specified, go to the sub-directory that contains FPD \r
 files and execute the build command. For more information about the active \r
 platform policy, see the \93EDK II Build and Packaging Architecture \r
 the active platform is not specified, go to the sub-directory that contains FPD \r
 files and execute the build command. For more information about the active \r
 platform policy, see the \93EDK II Build and Packaging Architecture \r
-Specification.?
+Specification.?\r
 \r
 --------------------------\r
 Individual Platform Builds\r
 \r
 --------------------------\r
 Individual Platform Builds\r
@@ -480,7 +530,7 @@ 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\r
 package.  Packages are defined by SPD files.  (Found in the root of the Package\r
 subdirectory (i.e. EdkNt32Pkg).) The SPD file is further explained in \93EDK II \r
 and 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 file is further explained in \93EDK II \r
-Build and Packaging Architecture Specification.?
+Build and Packaging Architecture Specification.?\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
  \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
@@ -667,3 +717,5 @@ Of particular note:
 =======================================================\r
 Virus scanned by McAfee VirusScan Enterprise 8.0.0, Virus Definitions 4890, no\r
 virus detected.\r
 =======================================================\r
 Virus scanned by McAfee VirusScan Enterprise 8.0.0, Virus Definitions 4890, no\r
 virus detected.\r
+\r
+vim:tw=78:ts=2:com=fb\:- :ai\r