]> code.delx.au - refind/commitdiff
New CSM/BIOS/legacy support for UEFI PCs.
authorsrs5694 <srs5694@users.sourceforge.net>
Wed, 28 Aug 2013 08:00:51 +0000 (04:00 -0400)
committersrs5694 <srs5694@users.sourceforge.net>
Wed, 28 Aug 2013 08:00:51 +0000 (04:00 -0400)
BUILDING.txt
EfiLib/Make.tiano
refind/main.c

index f1a2e63f66a22313993cd572582c198f56721cf2..917a66a1e171cdaccbf8d547cf7b26d1f27090c8 100644 (file)
@@ -103,40 +103,40 @@ is a bit unclear about others. Here's how I installed the toolkit:
 
 3) Type "cd /usr/local/UDK2010".
 
-3) Unzip the downloaded file (UDK2010.SR1.UP1.P1.Complete.MyWorkSpace.zip)
+4) Unzip the downloaded file (UDK2010.SR1.UP1.P1.Complete.MyWorkSpace.zip)
    in the current directory (/usr/local/UDK2010). This creates a handful of
    files, including a tarball and a couple of .zip files.
 
-4) Type "unzip UDK2010.SR1.UP1.MyWorkSpace.zip". This extracts the
+5) Type "unzip UDK2010.SR1.UP1.MyWorkSpace.zip". This extracts the
    platform-neutral portion of the development kit.
 
-5) Type "cd MyWorkSpace".
+6) Type "cd MyWorkSpace".
 
-6) Type "tar xvf ../BaseTools\(Unix\).tar". This extracts the
+7) Type "tar xvf ../BaseTools\(Unix\).tar". This extracts the
    Linux/Unix-specific portions of the toolkit.
 
-7) Follow the build instructions at
+8) Follow the build instructions at
    https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Using_EDK_II_with_Native_GCC_4.4;
    however, a few changes are required, as detailed below....
 
-8) Type "source edksetup.sh BaseTools". This sets up some environment
+9) Type "source edksetup.sh BaseTools". This sets up some environment
    variables, so subsequent steps (NOT including compiling the rEFInd EFI
    drivers) must be typed in the shell you use for this step.
 
-9) Edit Conf/target.txt and change the following:
-   - ACTIVE_PLATFORM = MdePkg/MdePkg.dsc
-   - TARGET = RELEASE (DEBUG might work, but I've not tested it).
-   - TARGET_ARCH = X64 (on x86-64; leave this as IA32 on x86). If you plan
-     to build both architectures on an x86-64 system, you can set this to
-     "IA32 X64".
-   - TOOL_CHAIN_TAG = GCC46 (or other value depending on your GCC version;
-     type "gcc -v" to learn your GCC version number). Note that GCC 4.7
-     and 4.8 don't have their own entries, so use GCC46 for them.
-   The TianoCore Makefiles read some of these variables from this file
-   and use them when accessing directories, so be sure to type these
-   entries in the case specified.
-
-10) The documentation refers to editing Conf/tools_def.txt in addition to
+10) Edit Conf/target.txt and change the following:
+    - ACTIVE_PLATFORM = MdePkg/MdePkg.dsc
+    - TARGET = RELEASE (DEBUG might work, but I've not tested it).
+    - TARGET_ARCH = X64 (on x86-64; leave this as IA32 on x86). If you plan
+      to build both architectures on an x86-64 system, you can set this to
+      "IA32 X64".
+    - TOOL_CHAIN_TAG = GCC46 (or other value depending on your GCC version;
+      type "gcc -v" to learn your GCC version number). Note that GCC 4.7
+      and 4.8 don't have their own entries, so use GCC46 for them.
+    The TianoCore Makefiles read some of these variables from this file
+    and use them when accessing directories, so be sure to type these
+    entries in the case specified.
+
+11) The documentation refers to editing Conf/tools_def.txt in addition to
     Conf/target.txt, but doesn't specify what to change in
     Conf/tools_def.txt. I haven't found it necessary to make any changes in
     Conf/tools_def.txt EXCEPT when using GCC 4.7 on a Fedora 17 system.
@@ -147,11 +147,11 @@ is a bit unclear about others. Here's how I installed the toolkit:
     to:
     *_GCC46_X64_ASM_FLAGS            = DEF(GCC46_ASM_FLAGS) -m64
 
-11) Type "make -C /usr/local/UDK2010/MyWorkSpace/BaseTools/Source/C".
+12) Type "make -C /usr/local/UDK2010/MyWorkSpace/BaseTools/Source/C".
     (This step is not documented on the EDK Web page.) Note that this
     requires the g++ compiler and UUID development libraries.
     
-10) Type "build" to build the main set of EDK2 files. This process is
+13) Type "build" to build the main set of EDK2 files. This process is
     likely to take a few minutes.
 
 If you installed in a location other than the one I've specified, you must
index 66dd9ee95f990640ae25f5d9ab7290055a705c3a..5c44d75bf9167adfb1b192f1fc7d91e37a25c8e5 100644 (file)
@@ -5,7 +5,7 @@
 
 include ../Make.tiano
 
-SOURCE_NAMES     = BdsConnect BmLib Console DevicePath BdsHelper BdsTianoCore
+SOURCE_NAMES     = legacy BdsConnect BmLib Console DevicePath BdsHelper BdsTianoCore
 OBJS             = $(SOURCE_NAMES:=.obj)
 #DRIVERNAME      = ext2
 #BUILDME          = $(DRIVERNAME)_$(FILENAME_CODE).efi
index 21803bc886bb16a5822c64dfe635f5a51ab72f28..699cb682026b6a71e50f4577c696b31dc54c02f2 100644 (file)
@@ -59,6 +59,7 @@
 #define EFI_SECURITY_VIOLATION    EFIERR (26)
 #else
 #include "../EfiLib/BdsHelper.h"
+#include "../EfiLib/legacy.h"
 #endif // __MAKEWITH_GNUEFI
 
 #ifndef EFI_OS_INDICATIONS_BOOT_TO_FW_UI
@@ -152,7 +153,7 @@ static VOID AboutrEFInd(VOID)
 {
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.4.1");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.4.2");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2013 Roderick W. Smith");
@@ -1628,6 +1629,10 @@ static VOID StartLegacyUEFI(IN LEGACY_ENTRY *Entry)
 {
     BeginExternalScreen(TRUE, L"Booting Legacy OS (UEFI mode)");
 
+    BdsDeleteAllInvalidLegacyBootOptions();
+    BdsAddNonExistingLegacyBootOptions();
+//    BdsUpdateLegacyDevOrder();
+
     BdsLibConnectDevicePath (Entry->BdsOption->DevicePath);
     BdsLibDoLegacyBoot(Entry->BdsOption);