Author: imp
Date: Wed Oct 14 01:47:00 2020
New Revision: 366691
URL: https://svnweb.freebsd.org/changeset/base/366691

Log:
  MFS12: r366422 r366588
  
  r366588: fixes video display heuristic that prevented byhve and vmware
  from detecting dual consoles.
  
  r366422: Report the kernel console on the boot screen
  Report what console the boot loader is telling the kernel to use and allow
  toggling between them.
  
  Approved by:  re@ (gjb)

Modified:
  releng/12.2/stand/efi/loader/main.c
  releng/12.2/stand/lua/core.lua
  releng/12.2/stand/lua/menu.lua
Directory Properties:
  releng/12.2/   (props changed)

Modified: releng/12.2/stand/efi/loader/main.c
==============================================================================
--- releng/12.2/stand/efi/loader/main.c Wed Oct 14 00:01:17 2020        
(r366690)
+++ releng/12.2/stand/efi/loader/main.c Wed Oct 14 01:47:00 2020        
(r366691)
@@ -717,6 +717,10 @@ parse_uefi_con_out(void)
        ep = buf + sz;
        node = (EFI_DEVICE_PATH *)buf;
        while ((char *)node < ep) {
+               if (IsDevicePathEndType(node)) {
+                       if (pci_pending && vid_seen == 0)
+                               vid_seen = ++seen;
+               }
                pci_pending = false;
                if (DevicePathType(node) == ACPI_DEVICE_PATH &&
                    DevicePathSubType(node) == ACPI_DP) {
@@ -749,8 +753,6 @@ parse_uefi_con_out(void)
                }
                node = NextDevicePathNode(node); /* Skip the end node */
        }
-       if (pci_pending && vid_seen == 0)
-               vid_seen = ++seen;
 
        /*
         * Truth table for RB_MULTIPLE | RB_SERIAL

Modified: releng/12.2/stand/lua/core.lua
==============================================================================
--- releng/12.2/stand/lua/core.lua      Wed Oct 14 00:01:17 2020        
(r366690)
+++ releng/12.2/stand/lua/core.lua      Wed Oct 14 01:47:00 2020        
(r366691)
@@ -410,6 +410,40 @@ function core.popFrontTable(tbl)
        return first_value, new_tbl
 end
 
+function core.getConsoleName()
+       if loader.getenv("boot_multicons") ~= nil then
+               if loader.getenv("boot_serial") ~= nil then
+                       return "Dual (Serial primary)"
+               else
+                       return "Dual (Video primary)"
+               end
+       else
+               if loader.getenv("boot_serial") ~= nil then
+                       return "Serial"
+               else
+                       return "Video"
+               end
+       end
+end
+
+function core.nextConsoleChoice()
+       if loader.getenv("boot_multicons") ~= nil then
+               if loader.getenv("boot_serial") ~= nil then
+                       loader.unsetenv("boot_serial")
+               else
+                       loader.unsetenv("boot_multicons")
+                       loader.setenv("boot_serial", "YES")
+               end
+       else
+               if loader.getenv("boot_serial") ~= nil then
+                       loader.unsetenv("boot_serial")
+               else
+                       loader.setenv("boot_multicons", "YES")
+                       loader.setenv("boot_serial", "YES")
+               end
+       end
+end
+
 recordDefaults()
 hook.register("config.reloaded", core.clearCachedKernels)
 return core

Modified: releng/12.2/stand/lua/menu.lua
==============================================================================
--- releng/12.2/stand/lua/menu.lua      Wed Oct 14 00:01:17 2020        
(r366690)
+++ releng/12.2/stand/lua/menu.lua      Wed Oct 14 01:47:00 2020        
(r366691)
@@ -241,6 +241,7 @@ menu.welcome = {
                        boot_entry_2,
                        menu_entries.prompt,
                        menu_entries.reboot,
+                       menu_entries.console,
                        {
                                entry_type = core.MENU_SEPARATOR,
                        },
@@ -279,6 +280,16 @@ menu.welcome = {
                                core.boot()
                        end,
                        alias = {"s", "S"},
+               },
+               console = {
+                       entry_type = core.MENU_ENTRY,
+                       name = function()
+                               return color.highlight("C") .. "ons: " .. 
core.getConsoleName()
+                       end,
+                       func = function()
+                               core.nextConsoleChoice()
+                       end,
+                       alias = {"c", "C"},
                },
                prompt = {
                        entry_type = core.MENU_RETURN,
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to