]> code.delx.au - refind/commitdiff
Split off fwupx64.efi file from main loaders into second-row loaders;
authorsrs5694 <srs5694@users.sourceforge.net>
Sun, 24 Apr 2016 17:47:51 +0000 (13:47 -0400)
committersrs5694 <srs5694@users.sourceforge.net>
Sun, 24 Apr 2016 17:47:51 +0000 (13:47 -0400)
also added "(Legacy)" to descriptions of all BIOS/CSM/legacy-mode
loaders on Macs.

19 files changed:
Makefile
NEWS.txt
debian/changelog
debian/copyright
docs/man/mkrlconf.8
docs/man/mvrefind.8
docs/man/refind-install.8
docs/refind/configfile.html
filesystems/fsw_efi.c
icons/README
refind-install
refind.conf-sample
refind.spec
refind/config.c
refind/global.h
refind/icns.c
refind/icns.h
refind/lib.c
refind/main.c

index d1158efd0e03a6c36dff4e7d6a104404ac58742a..bc6e84f0089b031246787da1b178845574d5a7a2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ MOK_DIR=mok
 GPTSYNC_DIR=gptsync
 EFILIB_DIR=EfiLib
 export EDK2BASE=/usr/local/UDK2014/MyWorkSpace
-export REFIND_VERSION='L"0.10.2.1"'
+export REFIND_VERSION='L"0.10.3"'
 
 # The "all" target builds with the TianoCore library if possible, but falls
 # back on the more easily-installed GNU-EFI library if TianoCore isn't
index 9beb316455cfd9aaacccf7eb13c794b0ff0e98d0..1d26c579061c8c27e1c13af1570e0b12ab78fe1f 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,18 @@
-0.10.3 (?/??/2016):
+0.10.3 (4/24/2016):
 -------------------
 
+- Changed description of BIOS/CSM/legacy OS loaders on Macs to include the
+  string "(Legacy)", so as to more easily identify BIOS/CSM/legacy-mode OSes
+  in the rEFInd main menu.
+
+- Added recognition of the fwupx64.efi file as a firmware update tool.
+  This filename is excluded from the first-row launchers, and is instead
+  presented on the second row, controlled by the "fwupdate" item on the
+  "showtools" option line. It's enabled by default. Note that it's still a
+  bit unclear to me how this tool is supposed to be used. rEFInd launches it
+  with no options, but if it should take options, this will have to be
+  changed in the future.
+
 - Tightened exclusion of shell binary filenames from boot loader scan.
   Previously, any filename containing the substring "shell" was excluded
   from scans. Now it's tighter; only files matching one of the filenames in
index 0775aa7d1557f6d94faaa1c7b442ada46fe28f74..02561842e7f34febf3464528cf3b7193ceddf796 100644 (file)
@@ -1,3 +1,9 @@
+refind (0.10.3-0ppa1) wily; urgency=medium
+
+  * Version bump
+
+ -- Roderick Smith <rodsmith@rodsbooks.com>  Sun, 24 Apr 2016 11:51:14 -0400
+
 refind (0.10.2-0ppa1) wily; urgency=medium
 
   * Version bump
index d1f0300bb223948664fca5933749f9f44dbf0419..7247a08f4bd7b34fb37a7232122f1b9b1c202d64 100644 (file)
@@ -339,6 +339,7 @@ Files: icons/boot_win.png
        icons/os_refit.png
        icons/os_win.png
        icons/tool_apple_rescue.png
+       icons/tool_fwupdate.png
        icons/tool_memtest.png
        icons/tool_rescue.png
        icons/transparent.png
index d6b1328080aada556becfc1cbfc800a374aa1e32..7cf38b7a4b7f9b02c8a0d34b3be78f0068a7dc81 100644 (file)
@@ -1,7 +1,7 @@
 .\" Copyright 2015-2016 Roderick W. Smith (rodsmith@rodsbooks.com)
 .\" May be distributed under the GNU Free Documentation License version 1.3 or
 any later version
-.TH "MKRLCONF" "8" "0.10.2" "Roderick W. Smith" "rEFInd Manual"
+.TH "MKRLCONF" "8" "0.10.3" "Roderick W. Smith" "rEFInd Manual"
 .SH "NAME"
 mkrlconf \- Create a Linux kernel configuration file for rEFInd
 .SH "SYNOPSIS"
index 606d8747f912ab8f88e9a66266168af3bb2961f3..dc04d9d8a3cf169f2c8a12dc7ee29eb823c57f91 100644 (file)
@@ -1,7 +1,7 @@
 .\" Copyright 2015-2016 Roderick W. Smith (rodsmith@rodsbooks.com)
 .\" May be distributed under the GNU Free Documentation License version 1.3 or
 any later version
-.TH "MVREFIND" "8" "0.10.2" "Roderick W. Smith" "rEFInd Manual"
+.TH "MVREFIND" "8" "0.10.3" "Roderick W. Smith" "rEFInd Manual"
 .SH "NAME"
 mvrefind \- Move a rEFInd installation from one location to another
 .SH "SYNOPSIS"
index 7acb60fc2fbc18b643d9f0afd20bdf88bee8c6c4..857c3a06f4b028831102e4dd8edc54c91ae382b2 100644 (file)
@@ -1,7 +1,7 @@
 .\" Copyright 2015-2016 Roderick W. Smith (rodsmith@rodsbooks.com)
 .\" May be distributed under the GNU Free Documentation License version 1.3 or
 any later version
-.TH "REFIND-INSTALL" "8" "0.10.2" "Roderick W. Smith" "rEFInd Manual"
+.TH "REFIND-INSTALL" "8" "0.10.3" "Roderick W. Smith" "rEFInd Manual"
 .SH "NAME"
 refind-install \- Install rEFInd to the ESP and create an NVRAM entry
 .SH "SYNOPSIS"
index 94905c09f1fd1fa67b71403c93965e1e8a3e93e8..71918086850fcbab70afdbf097703110d070895d 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-1/26/2016, referencing rEFInd 0.10.2</p>
+4/24/2016, referencing rEFInd 0.10.3</p>
 
 
 <p>This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
@@ -286,8 +286,8 @@ timeout 20
 </tr>
 <tr>
    <td><tt>showtools</tt></td>
-   <td><tt>shell</tt>, <tt>memtest</tt>, <tt>gdisk</tt>, <tt>gptsync</tt>, <tt>apple_recovery</tt>, <tt>csr_rotate</tt>, <tt>mok_tool</tt>, <tt>netboot</tt>, <tt>about</tt>, <tt>exit</tt>, <tt>shutdown</tt>, <tt>reboot</tt>, and <tt>firmware</tt></td>
-   <td>Specifies which tool tags to display on the second row. <tt>shell</tt> launches an EFI shell, <tt>memtest</tt> (or <tt>memtest86</tt>) launches the <a href="http://www.memtest86.com/download.htm">Memtest86</a> program, <tt>gdisk</tt> launches the partitioning tool of the same name, <tt>gptsync</tt> launches a tool that creates a hybrid MBR, <tt>apple_recovery</tt> boots the OS X Recovery HD, <tt>csr_rotate</tt> rotates through System Integrity Protection (SIP) values specified by <tt>csr_values</tt>, <tt>windows_recovery</tt> boots a Windows recovery tool, <tt>mok_tool</tt> launches a tool to manage Machine Owner Keys (MOKs) on systems with Secure Boot active, <tt>netboot</tt> launches the network boot tool (iPXE), <tt>about</tt> displays information about rEFInd, <tt>exit</tt> terminates rEFInd, <tt>shutdown</tt> shuts down the computer (or reboots it, on some UEFI PCs), <tt>reboot</tt> reboots the computer, and <tt>firmware</tt> reboots the computer into the computer's own setup utility. The tags appear in the order in which you specify them. The default is <tt>shell, memtest, gdisk, apple_recovery, mok_tool, about, shutdown, reboot, firmware</tt>. Note that the <tt>shell</tt>, <tt>memtest</tt>, <tt>apple_recovery</tt>, and <tt>mok_tool</tt> options all require the presence of programs not included with rEFInd. The <tt>gptsync</tt> option requires use of a like-named program which, although it ships with rEFInd 0.6.9 and later, is not installed by default except under OS X. See the <a href="installing.html#addons">"Installing Additional Components"</a> section of the <a href="installing.html">Installing rEFInd</a> page for pointers to the shell, Memtest86, and <tt>gptsync</tt> programs. The <tt>apple_recovery</tt> option will appear only if you've got an Apple Recovery HD partition (which has a boot loader called <tt>com.apple.recovery.boot/boot.efi</tt>). The <tt>firmware</tt> option works only on computers that support this option; on other computers, the option is quietly ignored. See the <a href="secureboot.html">Secure Boot</a> page for information on Secure Boot and MOK management.</td>
+   <td><tt>shell</tt>, <tt>memtest</tt>, <tt>gdisk</tt>, <tt>gptsync</tt>, <tt>apple_recovery</tt>, <tt>csr_rotate</tt>, <tt>mok_tool</tt>, <tt>fwupdate</tt>, <tt>netboot</tt>, <tt>about</tt>, <tt>exit</tt>, <tt>shutdown</tt>, <tt>reboot</tt>, and <tt>firmware</tt></td>
+   <td>Specifies which tool tags to display on the second row. <tt>shell</tt> launches an EFI shell, <tt>memtest</tt> (or <tt>memtest86</tt>) launches the <a href="http://www.memtest86.com/download.htm">Memtest86</a> program, <tt>gdisk</tt> launches the partitioning tool of the same name, <tt>gptsync</tt> launches a tool that creates a hybrid MBR, <tt>apple_recovery</tt> boots the OS X Recovery HD, <tt>csr_rotate</tt> rotates through System Integrity Protection (SIP) values specified by <tt>csr_values</tt>, <tt>windows_recovery</tt> boots a Windows recovery tool, <tt>mok_tool</tt> launches a tool to manage Machine Owner Keys (MOKs) on systems with Secure Boot active, <tt>fwupdate</tt> launches a firmware-update tool, <tt>netboot</tt> launches the network boot tool (iPXE), <tt>about</tt> displays information about rEFInd, <tt>exit</tt> terminates rEFInd, <tt>shutdown</tt> shuts down the computer (or reboots it, on some UEFI PCs), <tt>reboot</tt> reboots the computer, and <tt>firmware</tt> reboots the computer into the computer's own setup utility. The tags appear in the order in which you specify them. The default is <tt>shell, memtest, gdisk, apple_recovery, mok_tool, about, shutdown, reboot, firmware</tt>. Note that the <tt>shell</tt>, <tt>memtest</tt>, <tt>apple_recovery</tt>, and <tt>mok_tool</tt> options all require the presence of programs not included with rEFInd. The <tt>gptsync</tt> option requires use of a like-named program which, although it ships with rEFInd 0.6.9 and later, is not installed by default except under OS X. See the <a href="installing.html#addons">"Installing Additional Components"</a> section of the <a href="installing.html">Installing rEFInd</a> page for pointers to the shell, Memtest86, and <tt>gptsync</tt> programs. The <tt>apple_recovery</tt> option will appear only if you've got an Apple Recovery HD partition (which has a boot loader called <tt>com.apple.recovery.boot/boot.efi</tt>). The <tt>firmware</tt> option works only on computers that support this option; on other computers, the option is quietly ignored. See the <a href="secureboot.html">Secure Boot</a> page for information on Secure Boot and MOK management.</td>
 </tr>
 <tr>
    <td><tt>font</tt></td>
index 897dddeffe11a73ed7d927acb29390da7fe43f66..3ec649455e9a040738c3c7475d8fac31c71f4d85 100644 (file)
@@ -78,7 +78,7 @@ EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid = EFI_FILE_SYSTEM_VOLUME_LABEL_INFO
 /** Helper macro for stringification. */
 #define FSW_EFI_STRINGIFY(x) #x
 /** Expands to the EFI driver name given the file system type name. */
-#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.10.1 " FSW_EFI_STRINGIFY(t) L" File System Driver"
+#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.10.3 " FSW_EFI_STRINGIFY(t) L" File System Driver"
 
 // function prototypes
 
index e7950dffe28d55e8ff599dc11433e99729d7ef62..a26be942ba04e31940d05fc30f6c7c26c4f23c08 100644 (file)
@@ -108,6 +108,7 @@ os_refind.png
 os_refit.png
 os_win.png
 tool_apple_rescue.png
+tool_fwupdate.png
 tool_memtest.png
 tool_rescue.png
 transparent.png
index 68ab959cf9b3d455e20257e9b7c0f627b182c2b5..b28a79eb01f77a749f8c13878b984b41ded07860 100755 (executable)
@@ -794,7 +794,7 @@ SetupMacHfs() {
         <key>ProductName</key>
         <string>rEFInd</string>
         <key>ProductVersion</key>
-        <string>0.10.2</string>
+        <string>0.10.3</string>
 </dict>
 </plist>
 ENDOFHERE
index a1c57b55703d755ec6d710afa3243fc7adc47c7d..bbdc90487446096dccc7006565e82ac7fa724047 100644 (file)
@@ -180,10 +180,12 @@ timeout 20
 #  reboot           - a tag to reboot the computer
 #  firmware         - a tag to reboot the computer into the firmware's
 #                     user interface (ignored on older computers)
+#  fwupdate         - a tag to update the firmware; launches the fwupx64.efi
+#                     (or similar) program
 #  netboot          - launch the ipxe.efi tool for network (PXE) booting
-# Default is shell,memtest,gdisk,apple_recovery,windows_recovery,mok_tool,about,shutdown,reboot,firmware
+# Default is shell,memtest,gdisk,apple_recovery,windows_recovery,mok_tool,about,shutdown,reboot,firmware,fwupdate
 #
-#showtools shell, gdisk, memtest, mok_tool, apple_recovery, windows_recovery, about, reboot, exit, firmware
+#showtools shell, gdisk, memtest, mok_tool, apple_recovery, windows_recovery, about, reboot, exit, firmware, fwupdate
 
 # Boot loaders that can launch a Windows restore or emergency system.
 # These tend to be OEM-specific.
index 29bbd8440c1e87c4370a23c55b30a3c5b21240e4..0121b4dabcc8c16079ec8a0a70035e01099f6838 100644 (file)
@@ -1,6 +1,6 @@
 Summary: EFI boot manager software
 Name: refind
-Version: 0.10.2
+Version: 0.10.3
 Release: 1%{?dist}
 Summary: EFI boot manager software
 License: GPLv3
@@ -181,6 +181,8 @@ fi
 # thus wiping out the just-updated files.
 
 %changelog
+* Sun Apr 24 2016 R Smith <rodsmith@rodsbooks.com> - 0.10.3
+- Updated spec file for 0.10.3
 * Tue Jan 26 2016 R Smith <rodsmith@rodsbooks.com> - 0.10.2
 - Updated spec file for 0.10.2
 * Sat Dec 12 2015 R Smith <rodsmith@rodsbooks.com> - 0.10.1
index 8aa2850183157005b02457688a28d6da8a248538..658f8ebc818d8bccafc65bf24a9985dc9972b4d6 100644 (file)
@@ -524,6 +524,7 @@ VOID ReadConfig(CHAR16 *FileName)
        MyFreePool(GlobalConfig.DontScanFiles);
        GlobalConfig.DontScanFiles = StrDuplicate(DONT_SCAN_FILES);
        MergeStrings(&(GlobalConfig.DontScanFiles), MOK_NAMES, L',');
+       MergeStrings(&(GlobalConfig.DontScanFiles), FWUPDATE_NAMES, L',');
        MyFreePool(GlobalConfig.DontScanVolumes);
        GlobalConfig.DontScanVolumes = StrDuplicate(DONT_SCAN_VOLUMES);
        GlobalConfig.WindowsRecoveryFiles = StrDuplicate(WINDOWS_RECOVERY_FILES);
@@ -649,6 +650,8 @@ VOID ReadConfig(CHAR16 *FileName)
                    GlobalConfig.ShowTools[i - 1] = TAG_WINDOWS_RECOVERY;
                 } else if (MyStriCmp(FlagName, L"mok_tool")) {
                    GlobalConfig.ShowTools[i - 1] = TAG_MOK_TOOL;
+                } else if (MyStriCmp(FlagName, L"fwupdate")) {
+                   GlobalConfig.ShowTools[i - 1] = TAG_FWUPDATE_TOOL;
                 } else if (MyStriCmp(FlagName, L"csr_rotate")) {
                    GlobalConfig.ShowTools[i - 1] = TAG_CSR_ROTATE;
                 } else if (MyStriCmp(FlagName, L"firmware")) {
index d35f9b0677ae9572273218690ec449ea55f7ceaa..ad8e17234239e2b42a9791f86a690b7bfd9423e9 100644 (file)
@@ -76,7 +76,8 @@
 #define TAG_GDISK            (16)
 #define TAG_NETBOOT          (17)
 #define TAG_CSR_ROTATE       (18)
-#define NUM_TOOLS            (19)
+#define TAG_FWUPDATE_TOOL    (19)
+#define NUM_TOOLS            (20)
 
 #define NUM_SCAN_OPTIONS 10
 
 
 // Names of binaries that can manage MOKs....
 #define MOK_NAMES               L"MokManager.efi,HashTool.efi,HashTool-signed.efi,KeyTool.efi,KeyTool-signed.efi"
+// Names of binaries that can update firmware....
+#if defined (EFIX64)
+#define FWUPDATE_NAMES          L"fwupx64.efi"
+#elif defined(EFI32)
+#define FWUPDATE_NAMES          L"fwupia32.efi"
+#elif defined(EFIAARCH64)
+#define FWUPDATE_NAMES          L"fwupaa64.efi"
+#else
+#define FWUPDATE_NAMES          L"fwup.efi"
+#endif
 // Directories to search for these MOK-managing programs. Note that SelfDir is
 // searched in addition to these locations....
 #define MOK_LOCATIONS           L"\\,EFI\\tools,EFI\\fedora,EFI\\redhat,EFI\\ubuntu,EFI\\suse,EFI\\opensuse,EFI\\altlinux"
index 5e74bb285c68e9250d9d61a29d2738fc0aa03e89..f29d551bc64a94e82448185437a75c8a310cf692 100644 (file)
@@ -64,6 +64,7 @@ BUILTIN_ICON BuiltinIconTable[BUILTIN_ICON_COUNT] = {
    { NULL, L"tool_apple_rescue", ICON_SIZE_SMALL },
    { NULL, L"tool_windows_rescue", ICON_SIZE_SMALL },
    { NULL, L"tool_mok_tool", ICON_SIZE_SMALL },
+   { NULL, L"tool_fwupdate", ICON_SIZE_SMALL },
    { NULL, L"tool_memtest", ICON_SIZE_SMALL },
    { NULL, L"tool_netboot", ICON_SIZE_SMALL },
    { NULL, L"vol_internal", ICON_SIZE_BADGE },
index 2a6f92bdec5eb8018b8cf1558759e3459691fca0..60342ea4d809fcf20fae0c6f2fa1b543f6b8aa70 100644 (file)
@@ -67,13 +67,14 @@ EG_IMAGE * BuiltinIcon(IN UINTN Id);
 #define BUILTIN_ICON_TOOL_APPLE_RESCUE     (9)
 #define BUILTIN_ICON_TOOL_WINDOWS_RESCUE   (10)
 #define BUILTIN_ICON_TOOL_MOK_TOOL         (11)
-#define BUILTIN_ICON_TOOL_MEMTEST          (12)
-#define BUILTIN_ICON_TOOL_NETBOOT          (13)
-#define BUILTIN_ICON_VOL_INTERNAL          (14)
-#define BUILTIN_ICON_VOL_EXTERNAL          (15)
-#define BUILTIN_ICON_VOL_OPTICAL           (16)
-#define BUILTIN_ICON_VOL_NET               (17)
-#define BUILTIN_ICON_COUNT                 (18)
+#define BUILTIN_ICON_TOOL_FWUPDATE         (12)
+#define BUILTIN_ICON_TOOL_MEMTEST          (13)
+#define BUILTIN_ICON_TOOL_NETBOOT          (14)
+#define BUILTIN_ICON_VOL_INTERNAL          (15)
+#define BUILTIN_ICON_VOL_EXTERNAL          (16)
+#define BUILTIN_ICON_VOL_OPTICAL           (17)
+#define BUILTIN_ICON_VOL_NET               (18)
+#define BUILTIN_ICON_COUNT                 (19)
 
 #endif
 
index f38ac64d2706618077c519efe218757a999ea2da..c60615bca1c06f4fdbedb1aec292e9d4ae01ed05 100644 (file)
@@ -607,12 +607,12 @@ static VOID ScanVolumeBootcode(REFIT_VOLUME *Volume, BOOLEAN *Bootable)
             FindMem(Buffer, SECTOR_SIZE, "ISOLINUX", 8) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"linux";
-            Volume->OSName = L"Linux";
+            Volume->OSName = L"Linux (Legacy)";
 
         } else if (FindMem(Buffer, 512, "Geom\0Hard Disk\0Read\0 Error", 26) >= 0) {   // GRUB
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"grub,linux";
-            Volume->OSName = L"Linux";
+            Volume->OSName = L"Linux (Legacy)";
 
         } else if ((*((UINT32 *)(Buffer + 502)) == 0 &&
                     *((UINT32 *)(Buffer + 506)) == 50000 &&
@@ -620,7 +620,7 @@ static VOID ScanVolumeBootcode(REFIT_VOLUME *Volume, BOOLEAN *Bootable)
                     FindMem(Buffer, SECTOR_SIZE, "Starting the BTX loader", 23) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"freebsd";
-            Volume->OSName = L"FreeBSD";
+            Volume->OSName = L"FreeBSD (Legacy)";
 
         // If more differentiation needed, also search for
         // "Invalid partition table" &/or "Missing boot loader".
@@ -629,59 +629,59 @@ static VOID ScanVolumeBootcode(REFIT_VOLUME *Volume, BOOLEAN *Bootable)
                    (FindMem(Buffer, SECTOR_SIZE, "I/O error loading boot loader", 29) >= 0))  {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"freebsd";
-            Volume->OSName = L"FreeBSD";
+            Volume->OSName = L"FreeBSD (Legacy)";
 
         } else if (FindMem(Buffer, 512, "!Loading", 8) >= 0 ||
                    FindMem(Buffer, SECTOR_SIZE, "/cdboot\0/CDBOOT\0", 16) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"openbsd";
-            Volume->OSName = L"OpenBSD";
+            Volume->OSName = L"OpenBSD (Legacy)";
 
         } else if (FindMem(Buffer, 512, "Not a bootxx image", 18) >= 0 ||
                    *((UINT32 *)(Buffer + 1028)) == 0x7886b6d1) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"netbsd";
-            Volume->OSName = L"NetBSD";
+            Volume->OSName = L"NetBSD (Legacy)";
 
         // Windows NT/200x/XP
         } else if (FindMem(Buffer, SECTOR_SIZE, "NTLDR", 5) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"win";
-            Volume->OSName = L"Windows";
+            Volume->OSName = L"Windows (Legacy)";
 
         // Windows Vista/7/8
         } else if (FindMem(Buffer, SECTOR_SIZE, "BOOTMGR", 7) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"win8,win";
-            Volume->OSName = L"Windows";
+            Volume->OSName = L"Windows (Legacy)";
 
         } else if (FindMem(Buffer, 512, "CPUBOOT SYS", 11) >= 0 ||
                    FindMem(Buffer, 512, "KERNEL  SYS", 11) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"freedos";
-            Volume->OSName = L"FreeDOS";
+            Volume->OSName = L"FreeDOS (Legacy)";
 
         } else if (FindMem(Buffer, 512, "OS2LDR", 6) >= 0 ||
                    FindMem(Buffer, 512, "OS2BOOT", 7) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"ecomstation";
-            Volume->OSName = L"eComStation";
+            Volume->OSName = L"eComStation (Legacy)";
 
         } else if (FindMem(Buffer, 512, "Be Boot Loader", 14) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"beos";
-            Volume->OSName = L"BeOS";
+            Volume->OSName = L"BeOS (Legacy)";
 
         } else if (FindMem(Buffer, 512, "yT Boot Loader", 14) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"zeta,beos";
-            Volume->OSName = L"ZETA";
+            Volume->OSName = L"ZETA (Legacy)";
 
         } else if (FindMem(Buffer, 512, "\x04" "beos\x06" "system\x05" "zbeos", 18) >= 0 ||
                    FindMem(Buffer, 512, "\x06" "system\x0c" "haiku_loader", 20) >= 0) {
             Volume->HasBootCode = TRUE;
             Volume->OSIconName = L"haiku,beos";
-            Volume->OSName = L"Haiku";
+            Volume->OSName = L"Haiku (Legacy)";
 
         }
 
index 0cbf538b6c25aaeb02f4abd84a952efaf7173bf8..f10fb6f35db0d4595439bef434d7ec3369c7715d 100644 (file)
@@ -166,7 +166,7 @@ REFIT_CONFIG GlobalConfig = { FALSE, TRUE, FALSE, FALSE, TRUE, 0, 0, 0, DONT_CHA
                               BANNER_NOSCALE, NULL, NULL, NULL, NULL, CONFIG_FILE_NAME, NULL, NULL, NULL, NULL,
                               NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                               { TAG_SHELL, TAG_MEMTEST, TAG_GDISK, TAG_APPLE_RECOVERY, TAG_WINDOWS_RECOVERY,
-                                TAG_MOK_TOOL, TAG_ABOUT, TAG_SHUTDOWN, TAG_REBOOT, TAG_FIRMWARE,
+                                TAG_MOK_TOOL, TAG_ABOUT, TAG_SHUTDOWN, TAG_REBOOT, TAG_FIRMWARE, TAG_FWUPDATE_TOOL,
                                 0, 0, 0, 0, 0, 0, 0, 0 }
                             };
 
@@ -1921,6 +1921,10 @@ static VOID ScanForTools(VOID) {
                 FindTool(MokLocations, MOK_NAMES, L"MOK utility", BUILTIN_ICON_TOOL_MOK_TOOL);
                 break;
 
+            case TAG_FWUPDATE_TOOL:
+                FindTool(MokLocations, FWUPDATE_NAMES, L"firmware update utility", BUILTIN_ICON_TOOL_FWUPDATE);
+                break;
+
             case TAG_CSR_ROTATE:
                 if ((GetCsrStatus(&CsrValue) == EFI_SUCCESS) && (GlobalConfig.CsrValues)) {
                     TempMenuEntry = CopyMenuEntry(&MenuEntryRotateCsr);