Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Oct 2020 01:47:00 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org
Subject:   svn commit: r366691 - in releng/12.2/stand: efi/loader lua
Message-ID:  <202010140147.09E1l0tb027661@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202010140147.09E1l0tb027661>